天天看点

yum

yum是管理工具,用于解决软件包安装时软件包依赖关系。yum底层依然是rpm包。yum有两层:一层yum仓库,里面都是rpm软件包;一层是元数据---repodate(createrepo工具可以生成repodate元数据),yum本身是无法创建yum仓库和repodate的,在A端建立yum仓库和repodate的情况下使用createrepo生成repodate元数据,接着在B端配置文件/etc/yum.repos.d/*.repo,最后B端yum工具可以通过*.repo文件的baseurl获得一个A端的location,这时候yum download repodate数据到本地,解压,获得一个如同书籍索引一样的东西,这样安装rpm包的时候就可以自动的解决rpm包依赖关系。yum使用的协议一般有三种:远程服务器协议类:ftp和http,本地端协议:file协议

引用参考:

      yum的工作原理以及如何建立yum仓库

      https://blog.51cto.com/chenshengsheng/2106956

A.服务端

将所有需要用到的rpm包存放于某个目录之下,该目录可以是远程的(采用ftp和http协议),也可以是本地的(采用file协议)。

目录建立好了之后,使用createrpo命令来提取目录下所有rpm包的元数据和依赖关系,生成一些xml格式的文件,这些xml文件会

存放在repodata目录下,至此,服务器端的repository就建立好了。注意repodata所在的位置,就是yum仓库的位(主要针对红帽6,

红帽5的repository会分成4个目录,每个目录下都有一个repodata)。

B. 客户端

客户端的配置非常简单,只需要使用yum及其子命令install、reinstall或remove即可。不过使用yum及其子命令之前, 需要编辑配置文件,以告知yum命令仓库repository在什么地方。这个配置文件为:/etc/yum.conf。此外/etc/yum.repos.d/*.repo 都被视为/etc/yum/conf的组成部分。

阿里CentOS 8 yum源:

yum

yum源B端位置:/etc/yum.repos.d/ 同时yum源以.repo文件结尾,所以需要将上面的CentOS-8.repo文件放置在/etc/yum.repos.d/目录下。这就是获取A端rpm包和repodate的location。

当你download CentOS-8.repo的时候,就可以通过yum clean all 清除缓存,再yum makecache建立缓存,最后可以直接安装了,只要A端的rpm包够全。这实质上是A端的配置完全由第三方提供好了配置,拿来主义。

A端配置:

yum

createrepo -v /softwore在目录/softwore下建立repodate元数据,同时rpm包只有teamviewer一个,这时候的repodate里面的依赖关系等等仅仅是teamviewer这一个包的依赖关系。

yum

这里就是配置B端的/etc/yum.repos.d/*.repo文件,baseurl指向本地目录/softwore,因为前期在/softwore目下createrepo生成了teamviewer的repodate依赖关系,这里因为yum库(/softwore)缺少相应的teamviewer依赖包,所以这里安装提示缺少依赖包。

如果A端有足够的rpm包,就可以建立repodate,再将A端配置成一个web服务器,这样只要在遥远地方的B端能访问到A端,就完全可以在B端配置repo文件指向A端,获取rpm包

yum

yum list  显示已经安装和可以安装的所有软件包(即yum仓库的rpm包)

yum

rpm -qa查询系统未安装xz工具,yum list 却显示出现了xz软件包

yum

yum list installed 显示已安装的软件包

yum list updates  显示可升级软件包

yum

然后yum update coreutils-8.30-8 指定升级coreutils到指定版本,如果不指定则升级到最新版本

yum

yum history 显示安装历史

yum

yum history info package 显示所有关于软件包package 安装卸载信息

yum

yum history info 11 则仅仅显示id 11安装卸载信息

yum

yum info package 显示安装包信息

yum

yum provides package  显示该文件是从来自哪一个工具

yum

rm命令是从coreutils软件包里安装过来的,如果rm -vf /usr/bin/rm 怎么办?可以yum install core。。。重新安装

yum

yum是基于rpm底层的。

继续阅读