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.www58058.com/64918