學習下軟件包管理工具:RPM、YUM
既然我們學習RPM,那什麼是RPM呢?
RPM(RedHat Package Manager),最早由RedHat公司提出的軟件包標准,後來隨著rpm的不斷發 而又增加許多功能,逐漸的成為linux公認的軟件包管理標准。
所以簡單的理解就是將你所需要安裝的軟件包以一種形式安裝到你的Linux系統上的一套軟件包管理軟件。
- RPM軟件安裝的原理:
- 源代碼程序->編譯->對應平台匯編語言->鏈接->運行
- 所以我們安裝的rpm軟件包是經過編譯並通過一些底層共享庫實現轉換成二進制代碼程序。
- 下面我們就來說下經過編譯過的RPM的優點和缺點:
- 優點:安裝方面,不需要編譯即可安裝,而且方面查詢、升級等功能
- 缺點:只能安裝在和源碼編譯代碼所使用的平台一致時方可安裝,那意思就是說平台和編譯平台不一致時是不可以安裝rpm包的。
- 注:(以上理解均為自己理解,如理解有誤歡迎提出,達到共同學習、進步)
- # rpm -qa
- 用於查看系統中已安裝的所有的rpm包
- # rpm -q PACKAGE_name
- 查詢軟件包是否安裝,如果所查詢的軟件包已安裝,會顯示完整包名名稱
- rpm -ivh /PATH/TO/PACKAGE_FILE
- 安裝軟件包並顯示安裝過程。i:安裝 、v:可視化安裝、h:安裝進度
- # rpm -qi
- 指定軟件包的說明信息
- # rpm -ql
- 查詢軟件包安裝時所安裝的路徑
- # rpm -qf FILE_name
- 查詢指定文件是由哪個軟件包安裝所生成的文件
- # rpm -qc PACEAGE_NEME:查詢指定包安裝的配置文件
- # rpm -qd PACKAGE_NAME: 查詢指定包安裝的幫助文件
- # rpm -qd vsftpd 查詢vsftpd軟件包安裝所產生的幫助文件
- # rpm -q --scripts PACKAGE_NAME: 查詢指定包中包含的腳本
- 如果某rpm包尚未安裝,我們需查詢其說明信息、安裝以後會生成的文件;
- # rpm -qpi /PATH/TO/PACKAGE_FILE 顯示某個軟件包的信息
- # rpm -qpl 查詢某個軟件包安裝時所安裝的路徑
- # rpm -e RPM包名 用於卸載軟件包(而且軟件包不能有依賴關系)
- # rpm -e --nodeps 包名 用於刪除存在依存關系的軟件包,該命令可以將和該包存在依存關系的所有的軟件包統統刪除。
- # rpm -Uvh RPM包名(新版本軟件包) :如果系統安裝老版本則升級,否則安裝軟件包
- # rpm -Fvh RPM包名(新版本軟件包) :如果有老版本則升級新版本,否則退出
- # rpm --oldpackage: 降級軟件包版本
- RPM軟件包管理器不能安裝帶有依賴的軟件包,如果強制安裝則會出現一定的軟件故障,所以我們常用YUM來安裝解決包依賴情況
- 常用於軟件包的安裝、卸載、查詢、更新等軟件包
- 下面介紹下yum倉庫中的元數據文件:
- primary.xml.gz
- 所有RPM包的列表;
- 依賴關系;
- 每個RPM安裝生成的文件列表;
- filelists.xml.gz
- 當前倉庫中所有RPM包的所有文件列表;
- other.xml.gz
- 額外信息,RPM包的修改日志;
- repomd.xml
- 記錄上面三個文件的時間戳和校驗和;