YUM工具
YUM工作原理
YUM工具的出现就是为了解决rpm工具不能够自动解决软件包之间的依赖关系这一难题的。它的工作原理大致如下:
YUM透过分析RPM的标头资料,根据各软件的相关性找出软件所依赖的软件列表,然后去下载速度最快的yum仓库中下载所有相关RPM软件包,然后完成相应软件的安装。同时yum工具和rpm工具一样,也可以提供对软件包的查询,安装、升级和卸载操作。
YUM工具的使用
前面已经说过,yum工具是需要用到yum仓库的,那里面保存的有各种rpm包文件,rpm包软件之间的依赖关系等相关信息。所以,我们首先从建立yum仓库开始。
建立yum仓库
-
查看系统已有的yum仓库情况
[root@test1 packages]# yum repolist Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * c7-media: repo id repo name status c7-media CentOS-7 - Media 9,007 repolist: 9,007
以上显示的仅是系统中已经启用的yum仓库,只有一个repo id为c7-media的仓库, 使用yum repolist all
则可以查看系统中配置的所有yum仓库,包含未启用的, 如下所示:
[root@test1 packages]# yum repolist all Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * c7-media: repo id repo name status C7.1.1503-updates/x86_64 CentOS-7.1.1503 - Updates disabled base-debuginfo/x86_64 CentOS-7 - Debuginfo disabled base-source/7 CentOS-7 - Base Sources disabled c7-media CentOS-7 - Media enabled: 9,007 repolist: 9,007 (输出有省略)
-
修改系统中yum客户端的配置文件建立自定义的yum仓库
大多数情况下,CentOS7自带的yum客户端配置文件中定义的各个仓库,在中国网络环境中连接都非常慢,所以这里我直接将其配置文件/etc/yum.repo.d/CentOS-Base.repo
文件中的baseurl
分别修改成了对应不同仓库的URL。这里使用的是国内阿里云的开源镜像站点作为URL。要使用repodata
这一目录所在的位置作为baseurl。
[base] #代表yum仓库的名字,一定要有中括号括起来,不能有相同的两个仓库名字 name=CentOS-$releasever - Base #说明这个软件仓库的主机名称,意义不大 #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #mirrorlist是yum自动去探测的,可以不用管 baseurl=http://mirrors.aliyun.com/centos/7.2.1511/os/x86_64/ #这里就是repodata目录所在的位置,可以是http,ftp,本地文件都 可以 enable=1 #配置是否启用这一yum仓库,1表示启用,0gf表示不启用,默认为1 gpgcheck=1 #指定是否检查rpm软件包中的数字签名,1表示检查,0表示不检查 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #指定数字签名公钥文件所在的位置 #released updates [updates] name=CentOS-$releasever - Updates #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra baseurl=http://mirrors.aliyun.com/centos/7.2.1511/updates/x86_64/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra baseurl=http://mirrors.aliyun.com/centos/7.2.1511/extras/x86_64/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
在完成 以上修改系后,可以进行一次本地yum缓存数据的清理工作,以便可以正常使用yum进行软件更新等操作,清理本地yum缓存的指令:yum clean all
,将会清理掉之前yum所下载的全部rpm软件包及文件头信息。
-
使用系统光盘建立本地yum仓库
创建yum仓库,我们也可以在/etc/yum.repo.d/
下新建一个名为:reponame.repo的文件,reponame为自定义的仓库配置文件名。
使用系统光盘(iso镜像文件)建立本地yum仓库的方法:
将光盘镜像挂载至系统某目录下
[root@test1 yum.repos.d]# mkdir /media/cdrom/ [root@test1 yum.repos.d]# mount /dev/cdrom /media/cdrom mount: /dev/sr0 is write-protected, mounting read-only [root@test1 yum.repos.d]# df -h Filesystem Size Used Avail Use% Mounted on ... /dev/sr0 7.3G 7.3G 0 100% /media/cdrom [root@test1 yum.repos.d]# ls -F /media/cdrom CentOS_BuildTag EFI/ EULA GPL images/ isolinux/ LiveOS/ Packages/ repodata/ RPM-GPG-KEY-CentOS-7 RPM-GPG-KEY-CentOS-Testing-7 TRANS.TBL
配置文件(CentOS-Media.repo)在CentOS 7自带的即有,只需要启用它即可,配置文件中还介绍了直接通过指令禁用其它仓库而只启用这一仓库的方法:yum --disablerepo=* --enablerepo=c7-media COMMAND
[root@test1 yum.repos.d]# cat /etc/yum.repos.d/CentOS-Media.repo # CentOS-Media.repo # # This repo can be used with mounted DVD media, verify the mount point for # CentOS-7. You can use this repo and yum to install items directly off the # DVD ISO that we release. # # To use this repo, put in your DVD and use it with the other repos too: # yum --enablerepo=c7-media [command] # # or for ONLY the media repo, do this: # # yum --disablerepo=\* --enablerepo=c7-media [command] [c7-media] name=CentOS-$releasever - Media baseurl=file:///media/CentOS/ file:///media/cdrom/ #此即为光盘yum仓库的URL file:///media/cdrecorder/ gpgcheck=1 enabled=1 #启用这一yum仓库。 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS7
验证光盘yum仓库的可用性
默认情况下,系统会先去找base这一配置中的仓库,而且当其连接不上时,不会继续查找c7-media这个仓库,所以需要人为干预将base 中的repo禁用,只启用c7-media这一仓库。使用指令:yum --disablerepo=* --enablerepo=c7-media install tftp
后面还可以跟上-y
这一选项,让其自动确认是否安装。安装过程中即可看到tftp软件包是从c7-media这个仓库中获取的。yum --disablerepo=* --enablerepo=c7-media
这一指令也适用于要从指定的yum仓库安装某特定软件的情况。
YUM工具的使用
-
查询
指令:yum [list|info|search|provides|whatprovides] [关键字]
list
list后面需要跟上软件名称作为关键字,查询其安装情况,不跟关键字列出当前各仓库的所有软件包,类似于rpm -qa
。info
info后面同样需要跟上软件名称作为关键字,查询软件包的详细信息,不跟关键字列出当前仓库的所有软件包的详细信息。类似 于rpm -qai
。search
search后面跟上任意关键字,查找yum仓库中所有包含此关键字的软件包的信息,介绍软件包的大致功能。provides|whatprovides
根据后面跟的文件名,查找yum仓库中哪些软件包可以提供此功能。类似 于rpm -qf
。 -
安装、升级
指令:yum [install|update] 软件名
install
install后面跟上需要安装的软件名称即可安装相应的软件。update
update后面跟上需要升级的软件,如果不跟上需要升级的软件名称,会将整个系统都进行升级。 -
卸载
指令:yum remove 软件名
软件卸载的过程中,yum会自动解决好依赖软件的卸载工作。
总结
yum工具能够自动解决软件间的依赖关系,比rpm工具更好用,但rpm工具的使用是软件包管理的基础,在极端情况下,可能还是需要使用rpm工具去逐个安装有依赖关系的软件。
原创文章,作者:N24_lantian,如若转载,请注明出处:http://www.178linux.com/64918