標籤:原始碼 yum rpm linux程式
本文主要介紹linux軟體包的rpm、yum與源碼包的安裝、卸載、配置命令及參數。
一、RPM包管理機制
RPM為RPM Package Manager的遞迴縮寫,是常用於Redhat、CentOS和S.uS.E等系統的軟體包管理機制。為了方便使用者安裝配置,一些第三方機構或者程式原始碼的開發人員會將原始碼程式的相關功能製作成RPM包格式。一個源碼程式普遍來說會開發出一個主包和若干個子包,且相互間可能會有依賴關係。
1、RPM包的命名格式
普遍為:包名-原始碼發行號-rpm包發行號.適用硬體平台.rpm
例如:httpd-2.2.15-39.el6.centos.x86_64.rpm
包名:httpd
原始碼發行號:2.2.15
rpm包發行號:39
適用硬體平台:el6.centos.x86_64
2、擷取RPM包的途徑
安裝光碟片:系統安裝光碟片會攜帶大量的rpm安裝程式包
站台伺服器:http://mirrors.163.com
http://mirrors.sohu.com
http://mirrors.opencas.cn
項目官網:程式的官網可能會提供原始碼與rpm包兩種格式
第三方:某些第三方機構或個人會發布許多rpm包
http://rpmfind.net
http://rpm.pbone.net
3、RPM包的合法性
為了保證rpm包來源的合法性與完整性,包製作者製作完成後會附加數位簽章於包上,普遍採用私密金鑰加密,公開金鑰解密的安全機制
4、RPM包安裝命令
-i:安裝程式包,需跟完整的包格式檔案名稱
-h:顯示安裝進度
-v:顯示詳細資料
-vv:顯示更多詳細資料
-vvv:顯示非常詳細的資訊
--test:測試安裝,但不會真正安裝
--nodeps:忽略依賴關係
--replacepkgs:重新安裝,且並不一定會替換原安裝設定檔
組合選項,例:rpm -ivh httpd-2.2.15-39.el6.centos.x86_64.rpm
5、RPM包卸載及升級
-e:卸載,僅需跟包名。例,rpm -e httpd
--nodeps:忽略依賴關係,且卸載後,某些依賴於此包的程式可能會運行不正常
-U:升級或安裝,包未安裝則安裝,已安裝則升級包版本
-F:升級安裝包,若包未裝則不安裝
--force:強制升級,忽略升級後會導致的版本衝突問題
6、RPM包查詢操作
-q:跟安裝包名,查詢此包是否安裝。例,rpm -q httpd
-qa:查詢所有已安裝包
-qi:查詢包的詳細資料
-ql:查看安裝包產生了哪些檔案
-qc:查看安裝包產生了哪些設定檔
-qd:查看安裝包產生了哪些協助檔案
-q --scripts:查詢安裝包的相關指令碼
-V:檢查安裝包產生的檔案屬性是否發生變化
-qf:跟檔案路徑,查詢該檔案由哪個包安裝產生
例:rpm -qf /etc/httpd/conf/httpd.conf
-qpi:跟完整路徑下的完整包名,查詢此包詳細資料
例:rpm -qpi /dev/cdrom/Packages/httpd-2.2.15-39.el6.centos.x86_64.rpm
-qpl:跟完整路徑下的完整包名,查詢此包安裝後將要產生哪些檔案
-qpc:跟完整路徑下的完整包名,查詢此包安裝後將要產生哪些設定檔
-qpd:跟完整路徑下的完整包名,查詢此包安裝後將要產生哪些協助檔案
7、RPM包資料庫
在CentOS6中,rpm包安裝後資訊會儲存到/var/lib/rpm資料庫目錄中
rpm --initdb:初始化資料庫。如果沒有庫,則建立庫;如果有,則不建立
rpm --rebuilddb:重建資料庫,並覆蓋原有的資料庫
二、yum軟體包管理器
yum全稱Yellow dog Updater,Modified,用於RedHat及CentOS系統。依賴於軟體倉庫,基於RPM包管理機制,能夠解決RPM包安裝過程中繁雜的依賴關係,並一次安裝所有依賴的軟體包。
1、yum安裝流程
執行安裝操作後,首先yum會分析緩衝於本地的中繼資料倉庫(/var/cache/yum/),結合本地系統內容已經安裝的包,去聯絡yum倉庫,下載需要安裝的程式包於本地,下載完成後一併安裝。
2、常見yum倉庫
base庫:通常為系統發行版所提供的程式包庫
updates庫:系統發行版所提供的程式包的升級庫
extra庫:系統發行版所提供的額外程式包庫
epel庫:通常與fedora的yum倉庫項目一致,是一個高品質的附加軟體包項目
每一個yum倉庫必須有repodata目錄及相關rpm軟體包
3、yum用戶端設定檔
主設定檔:預設為/etc/yum.conf檔案
倉庫設定檔:位於/etc/yum.repos.d/目錄中,以.repo結尾的檔案
[base]#yum倉庫的serverid,用於區別其它的yum倉庫,必須獨一無二name=CentOS-$releasever - Base#yum倉庫名,用於描述該倉庫baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/ ftp://192.168.1.20/centos/6/os/x86_64 nfs://192.168.1.21/centos/6/os/x86_64 file:///media/cdrom #yum倉庫地址,支援http、ftp、nfs和本地等倉庫地址enabled=1#啟用yum倉庫,0為不啟用 gpgcheck=1#啟用gpg校正,以確定rpm包的來源是有效和安全的,0為不啟用gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6#gpg校正地址
4、yum命令
yum repolist {enabled|disabled|all}:列出所有{啟用|未用|所有}repo,預設為列出啟用
yum list {all|installed|available}:列出{所有|已安裝|可安裝}軟體包,預設為列出所有
yum info 包名:查看包的描述資訊
yum grouplist:列出所有包組
yum groupinfo 包組名:顯示包組資訊及其包含的程式包列表
yum clean all:清除yum緩衝
yum install 包名:安裝包
-y install 包名:無需提示,直接安裝軟體包
yum reinstall 包名:重新安裝軟體包
yum check-update 包名:檢查軟體包是否有可升級包
yum update 包名:升級軟體包
yum remove|erase 包名:卸載軟體包
yum groupinstall 包組名:安裝軟體包包組
yum groupremove 包組名:卸載包組
5、建立yum倉庫
建立yum倉庫依賴於createrepo軟體包,安裝完createrepo後,直接對軟體包目錄執行createrepo命令,會產生repodata目的,即建立yum倉庫成功
例:createrepo /var/www/pub/
三、源碼包安裝方式
無論是rpm命令或yum命令安裝的rpm包,其都限制於製作rpm包作者的思想,導致功能選擇不如源碼包靈活,甚至在rpm包中缺少我們所需的某種功能,且rpm包因為製作難度較高,其更新速度要遠遠慢於源碼包的更新。而源碼編譯安裝,可以在編譯過程中自己定義我們所需的功能,更加適合自己的系統,也更加穩定高效。
1、編譯安裝依賴開發包
源碼安裝需要對程式進行編譯,所以依賴於系統的開發環境gcc、gcc-c++等包,這些包普遍存在於“Development tools”和“Server Platform Development”軟體包組中
2、源碼包擷取方式
所需程式的官網一般都會提供者的源碼包,或者在一些代碼託管機構,例如SourceForge、github.com和code.google.com等下載
3、來源程式編譯安裝步驟
解壓:下載的源碼包一般為tar包的壓縮檔,解壓後進入安裝包目錄
配置:./configure
./configure --help擷取協助資訊,可擷取到配置所需要的選項參數
較通用的參數例如--prefix=安裝路徑,可以指定軟體安裝路徑
編譯:make
安裝:make install
4、執行個體安裝nginx
詳見本人另一篇部落格:http://princepar.blog.51cto.com/1448665/1636026
本文出自 “曉洋” 部落格,請務必保留此出處http://princepar.blog.51cto.com/1448665/1658511
linux程式包管理