書名: Linux服務器項目實訓教程作者名: 杜艷明本章字數: 2578字更新時間: 2020-01-07 17:12:03
1.3 RPM軟件包管理
1.3.1 軟件包管理器簡介
當前有數以百計的Linux發行版本,它們使用的軟件包管理器基本上只有兩種,分別是Red Hat Package Manager(RPM)與Debian的Dpkg。Dpkg包管理機制最早是由Debian Linux社群所開發的,透過Dpkg的機制,Debian提供的軟件就能夠簡單地安裝起來,同時還能提供安裝后的軟件相關元數據資訊,非常不錯。只要是衍生Debian的其他Linux發行版大多使用Dpkg工具來管理軟件,包括B2D、Ubuntu等。RPM包管理機制最早是由Red Hat公司開發的,很多Linux發行版都使用這個包管理工具來作為軟件安裝的管理方式。包括Fedora、CentOS、SuSE等。這些軟件包管理器提供了組織各種實用的應用程序的標準的管理方法。CentOS使用RPM包管理工具。
1)軟件包的平臺名稱
RPM適用在不同的操作平臺上,不同的平臺配置的參數是有所差異的,只有針對比較高階的CPU來進行優化參數的配置,才能夠使用高階CPU所帶來的硬件加速功能。所以就有所謂的i386、i686、x86_64與noarch等文件名稱。
表1-3 RPM包管理的平臺標記

目前x86平臺上的新版CPU都能夠運行舊版CPU所支持的軟件,即硬件方面是向下兼容的,因此最低等級的i386軟件可以安裝在所有的x86硬件平臺上面,不論是32位還是64位。但是反過來說就不行了。如舊主機Pentiun Ⅲ/Pentiun Ⅳ32位機器上面,就不能夠安裝x86_64的軟件。
根據上面的說明,我們只要選擇i386版本安裝在x86硬件上面就肯定沒問題。但是如果強調效能的話,建議還是選擇搭配硬件的RPM文件,畢竟只有該軟件針對CPU硬件平臺進行過參數優化編譯。
2)RPM的優點
RPM是通過將程序、數據預先編譯并打包成為RPM文件格式后,再加以安裝的一種方式,并且還能夠進行數據庫的記載。所以RPM有以下的優點:
①RPM內含已經編譯過的程序與配置文檔等數據,可以讓使用者免除重新編譯的困擾。
②RPM在被安裝之前,會先檢查系統的硬盤容量、操作系統版本等,可避免文件被錯誤安裝。
③RPM文件本身提供軟件版本資訊、相容屬性軟件名稱、軟件用途說明、軟件所含文件等資訊,便于了解軟件。
④RPM管理的方式是使用數據庫記錄RPM文件的相關參數,以便于升級、移除、查詢與驗證。
1.3.2 RPM命令工具基本應用
1)軟件包查詢
#rpm -q setup //發現已安裝的程序包的版本 #rpm-qi setup //能查詢setup有關的匯總信息 #rpm-qf/etc/passwd //能標識擁有passwd配置文件的RPM程序包 #rpm -ql setup //列出setup RPM包中包含的文件,該信息能幫助用戶理解 升級時哪些文件面臨風險
2)本地軟件包的安裝
#rpm-ivhvsftpd //-i安裝參數/-v查看詳細安裝信息/-顯示安裝 進度 #yum localinstallzip-3.0-1. el6. i686. rpm //解決安裝出現的依賴問題 #rpm-ivhzip-3.0-1. el6. i686. rpm-test //測試當前安裝的軟件依賴問題
3)軟件包卸載
#rpm-e vsftpd //卸載系統里已經安裝的vsftpd軟件包
1.3.3 yum管理工具的配置文件
yum,是Yellow dog Updater, Modified的簡稱,是杜克大學為了提高RPM軟件包安裝便利性而開發的一種軟件包管理器。Yellow dog初期的發行版的開發者是Terra Soft, yum那時還叫作yup(Yellow Dog Updater),后經杜克大學的Linux@Duke開發團隊改進,遂有此名。yum的宗旨是自動化地升級、安裝、刪除RPM包,收集RPM包的相關信息,檢查依賴性并自動提示用戶解決。yum的關鍵之處是要有可靠的repository,顧名思義,respository是軟件的倉庫,它可以是http或ftp站點,也可以是本地軟件池,但必須包含RPM的header,而header包括了RPM包的各種信息,包括描述、功能、提供的文件、依賴性等。正是收集了這些header并加以分析,才能自動化地完成安裝等相關任務。
yum的理念是使用一個中心倉庫管理一部分甚至一個發行版本的應用程序的相互關系,根據計算出來的軟件依賴關系進行相關的升級、安裝、刪除等操作,減少了Linux用戶一直頭痛的依賴性的問題。這一點上,yum和apt相同。
yum主要功能是更方便地添加、刪除、更新RPM包,自動解決RPM包的依賴性問題,便于管理大量系統軟件包的更新問題。yum可以同時配置多個資源庫,有簡潔的配置文件(/etc/yum.conf),可自動解決增加或刪除RPM包遇到的依賴性問題,保持與RPM數據庫的一致性。
yum的配置文件分為兩部分:main和repository。main部分定義了全局配置選項,整個yum配置文件應該只有一個main,常位于/etc/yum.conf中。repository部分定義了每個源服務器的具體配置,可以有一到多個。常位于/etc/yum.repo.d目錄下的各文件中。
1)/etc/yum.conf配置文件說明:
[main] cachedir=/var/cache/yum //yum下載的RPM包的緩存目錄 keepcache=0 //緩存是否保存,1保存,0不保存 debuglevel=2 //調試級別(0~10),默認為2 logfile=/var/log/yum. log //yum的日志文件所在的位置 gpgcheck=1 //是否檢查GPG(GNU Private Guard),一種密鑰簽名 plugins=1 //是否允許使用插件,默認是0不允許 installonly limit=3 //允許保留多少個內核包 retries=6 //網絡連接發生錯誤后的重試次數,默認值為6 exactarch=1 //更新時允許更新不同架構的RPM包,如i386更新i686的RPM obsoletes=1 //允許不同版本之間的升級
2)/etc/yum.repos.d/中的文件
[root@~]#cd/etc/yum. repos. d/ [root@.. ]#ls CentOS-Base. repo CentOS-Debuginfo. repo CentOS-Sources. repo CentOS-Vault. repo
若需要修改基于網絡的yum源,需要修改CentOS-Base.repo文件,主要是修改“baseurl”參數,指定需要的網絡鏡像軟件資源。再在終端執行yum clean all和yum makecache兩行命令,重新創建本地軟件包目錄緩存。
3)yum工具安裝
CentOS默認安裝了yum工具,若需要自行安裝,yum的基礎安裝包包括:
yum //RPM格式包的安裝與更新 yum-fastestmirror //yum插件選擇最快的鏡像軟件倉庫t yum-metadata-parser //yum的元數據分析
以上3個基礎工具,其他安裝包根據自己需要安裝。
1.3.4 yum源的配置實踐
1)以CentOS7配置163鏡像源為例,具體實踐如何配置
[root@~]# vim /etc/yum. repos. d/CentOS-Base. repo //編輯CentOS-Base. repo [base] name=CentOS-$releasever-Base-163.com baseurl=http://mirrors.163.com/centos/7.0.1406/updates/x86_64/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 [updates] name=CentOS-$releasever-Updates-163.com baseurl=http://mirrors.163.com/centos/7.0.1406/updates/x86_64/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 ......
這里具體列出了[base]和[updates]節的參數,主要是修改“baseurl”參數,其他節如[addons]和[extras]等類似修改未做介紹。具體內容請參考CentOS-Base.repo配置文件。編輯好該文件后注意保存結果,然后執行以下命令:
[root@~]#yum clean all [root@~]#yummakecache [root@~]# yum repolist //測試配置的源,若能顯示出用戶添加的163源,就可以了
2)添加第三方yum源
CentOS由于很追求穩定性,所以官方源中自帶的軟件不多,因而需要一些第三方源,比如EPEL、ATrpms、ELRepo、NuxDextop、RepoForge等。為了盡可能保證系統的穩定性,這里大型第三方源只添加EPEL源和ELRepo源。
EPEL即Extra Packages for Enterprise Linux,為CentOS提供了額外的10000多個軟件包,而且在不替換系統組件方面下了很多功夫,因而可以放心使用。執行以下命令完成EPEL源的安裝:
[root@~]#yum install epel-release
執行完該命令后,在/etc/yum.repos.d目錄下會多一個epel.repo文件。
ELRepo包含了一些硬件相關的驅動程序,比如顯卡、聲卡驅動。執行以下命令完成ELRepo源的安裝:
#rpm-import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org #rpm-Uvh http://www.elrepo.org/elrepo-release-7.0-2. el7. elrepo. noarch. rpm
完成該命令后,在/etc/yum.repos.d目錄下會多一個elrepo.repo文件。
yum-axelget是EPEL提供的一個yum插件。使用該插件后用yum安裝軟件時可以并行下載,大大提高了軟件的下載速度,減少了下載的等待時間,執行以下命令完成yum-axelget的安裝:
#yum install yum-axelget
安裝該插件的同時會安裝另一個軟件axel。axel是一個并行下載工具,在下載http、ftp等簡單協議的文件時非常好用。
第一次全面更新,先把系統已經安裝的軟件包都升級到最新版:
#yum update
要更新的軟件包有些多,可能需要一段時間。不過有了yum-axelget插件,速度已經快了很多。
3)yum命令的基本運用
[root@~]#yum search vsftpd //查詢vsftpd包是否安裝 [root@~]#yum install vsftpd //安裝vsftpd軟件包 [root@~]#yum remove vsftpd //卸載vsftpd軟件包,也可以使用force參數