1、包命名規則
使用rpm命令安裝包的時候,需要先弄清楚包命名的規則。
舉例:Httpd-2.4.6-80.el7.centos.x86_64.rpm
- Httpd:軟件包包名;
- 2.4.6:軟件版本;
- 80:軟件發布的次數;
- el7.centos:適合的Linux平臺;
- x86_64:適合的硬件平臺 x86表示32位系統 64表示64位系統 noarch 表示任何硬件平臺都可以安裝;
- rpm:rpm包擴展名(rpm后綴名是一個約定,用來給系統管理員看的);
在系統安裝源文件中,有Packages文件夾,查看里面的包均是此命名規則。如下圖所示:
注意:Httpd-2.4.6-80.el7.centos.x86_64.rpm為包全名,Httpd是包名。包名和包全名是有區別的,Linux系統命令是區分這兩個名稱的。
2、RPM包依賴性
2.1、樹形依賴
解決樹形依賴:按照安裝提示說明,逐個安裝包。即要想安裝包A,先安裝包B和包C,要想安裝包C先安裝包D和包E。
2.2、環形依賴
解決環形依賴:同時安裝包A、包B、包C。
2.3、模塊依賴
有時候在安裝包的時候會報錯“.so.數字”的依賴性錯誤,此錯誤為模塊依賴錯誤。
這時候,我們需要先知道此模式是屬于哪個RPM包的。
可以進入 http://www.rpmfind.net 網站,查詢某個模塊屬于哪個包。
3、安裝、升級與卸載
在安裝升級軟件包時候,要是用包全名。而且要注意路徑,必須能夠訪問到包的的安裝源文件才可以。
在操作軟件包或者卸載軟件包的時候,可以使用包名。
3.1、安裝命令
命令格式:rpm -ivh 包全名
參數說明:
- i 安裝;
- v 顯示詳細安裝信息;
- h 顯示進度;
例如執行命令安裝Httpd包,此時要使用包全名。
rpm -ivh Httpd-2.4.6-80.el7.centos.x86_64.rpm
3.2、升級命令
命令格式:rpm -Uvh 包全名
參數說明:
- -U 升級
3.3、卸載命令
命令格式: rpm -e 包名
參數說明:
- -e 卸載;
4、RPM包查詢
4.1、查詢指定包名是否安裝
命令格式:rpm -q 包名
查詢是否安裝了zip包,執行命令:
rpm -q zip
4.2、查詢所有安裝的包
執行命令:
rpm -qa
4.3、查詢所有含有關鍵字的包
命令格式:rpm -qa | grep [關鍵字]
查詢zip相關的包,執行命令:
rpm -qa | grep zip
如下圖所示:
4.4、查詢軟件包詳細信息
執行命令:
rpm -qi 包名
參數說明:
- -i 查詢軟件信息;
- -p 查詢未安裝包信息;
例如查詢zip包的軟件詳細信息,如下圖所示:
4.5、查詢包文件安裝位置
執行命令:
rpm -ql 包名
參數說明:
- -l 列表;
- -p 查詢未安裝包信息;
4.6、查詢文件屬于哪個RPM包
執行命令:
rpm -qf 系統文件名
查詢/usr/share/man/man1/zip.1.gz文件是屬于哪個包的,查詢結果:zip-3.0-23.el8.x86_64。
4.7、查詢軟件包的依賴性
rpm -qR 包名
5、RPM包校驗
rpm -V 已安裝的包名
校驗一下zip的RPM包,如下圖所示:
沒有任何信息,表示沒有任何更改。
我們編輯一下 /usr/share/doc/zip/README 文件,保存后重新校驗RPM包,如下圖所示:
S.5....T. d /usr/share/doc/zip/README
返回的信息包含三個部分:
第一部分 S.5....T.
驗證文件8個信息:
- S:文件大小是否改變;
- M:文件的類型或文件的權限(rwx)是否被改變;
- 5:文件MD5校驗和是否改變,MD5是進行文件完整性驗證的;
- D:設備的中,從代碼是否改變;
- L:文件路徑是否改變;
- U:文件的所有者是否改變;
- G:文件的所屬組是否改變;
- T:文件的修改時間是否改變;
第二部分 d
文件類型:
- c:配置文件;
- d:普通文檔;
- g:“鬼”文件,很少見,就是該文件不應該被這個RPM包包含;
- l:授權文件;
- r:描述文件;
第三部分 /usr/share/doc/zip/README
文件具體路徑