rpm命令是RPM軟件包的管理工具。rpm原本是Red Hat Linux發行版專門用來管理Linux各項套件的程序,由于它遵循GPL規則且功能強大方便,因而廣受歡迎。逐漸受到其他發行版的采用。RPM套件管理方式的出現,讓Linux易于安裝,升級,間接提升了Linux的適用度。接下來聊一聊如何安裝、卸載、查詢、檢驗rpm類的軟件。
安裝:
rpm [-i|–install][install-options] 軟件包名
-v 顯示詳細信息
-h 以#來表示安裝進度
–test 測試安裝,不執行真正的安裝過程
–nodeps 忽略依賴關系(能安裝成功,但不一定能運行成功)
–force 強制安裝
–replacepkgs 重裝并覆蓋原有文件
安裝時常用組合:-ivh
升級:
rpm [-U|–upgrade][install-options] 軟件包名
-U 升級或安裝
-F 升級
-Uvh 當有舊版本的安裝包時,則卸載舊包再裝新包,如沒有舊包,直接裝新包。
-Fvh 當有舊版本的安裝包時,卸載舊包裝新包,無舊包時,什么都不做
–test: 測試安裝,但不真正執行安裝,即dry run模式
–nodeps:忽略依賴關系
–oldpackage 降級 已有新包,裝舊包。
–force 強制安裝。
【溫馨提示】
(1) 不要對內核做升級操作;Linux支持多內核版本并存,因此可以直接安裝多個版本內核
(2) 如果原程序包的配置文件安裝后曾被修改,升級時,新版本的提供的同一個配置文件并不會直接覆蓋老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)后保留
查詢:
rpm [-q|–query][select-options][query-options] 軟件包名
-q 查詢某軟件包是否安裝
-qa 查詢已經安裝的所有軟件包
-qf 查詢某文件由哪個軟件包生成
-qp 查詢未安裝的軟件包
-qi 查詢某軟件包的詳細信息
-ql 查詢軟件包安裝生成的文件列表
-qc 查詢軟件包的配置文件(不是所有包都有配置文件)
-qd 查詢軟件包的幫助文檔
-qR 查詢實現自身的功能需要什么能力
-q –changelog 版本更新日志
-q –scripts 查詢軟件包自帶的腳本
-q –provides 查詢自身提供的capabilities
-q –requires 查詢自身所依賴的capabilities
卸載:
rpm -e 軟件包名
–nodeps 忽略依賴性關系,強制卸載
–test 測試卸載,即dry-run模式
–allmatches 如果一個程序包同時安裝多個版本,則此選項可以一次全部卸載。
【溫馨提示】
如果程序包的配置文件安裝后曾被修改,卸載時,此文件通常不會被刪除,而是被重命名(FILENAME.rpmsave)后留存
驗證:
rpm -V 軟件包名
-V 查詢軟件包安裝之后生成的文件是否發生了改變
-K 驗證軟件包的完整性和rpm簽名是否合法
–nosignature: 不檢查來源合法性
–nodigest:不檢查包完整性
–noscripts:不執行程序包腳本
%pre: 安裝前腳本; –nopre
%post: 安裝后腳本; –nopost
%preun: 卸載前腳本; –nopreun
%postun: 卸載后腳本; –nopostun
最后來兩道練習題吧:
1.統計光盤中Packages下,各種架構的rpm包的數量。
由于安裝包很多,所以這里也沒有具體截圖,給大家展示一下最后顯示的結果,方法很多種,關鍵看你怎么用,能達到簡單、快速、高效的結果(還記得rev是什么功能么?沒錯就是逆序輸出內容。這里用rev取個巧)
2.查詢命令java來自于哪個rpm包
這里呢執行一次,截了一次圖,別問為什么,就是這么任性。當然了主要還是為了能讓你們能夠清晰直觀的閱讀,想知道java這個命令來自哪個包,當然得知道什么是java啦(第一張圖示)然后 在接下來一步一步找,你會發現查了一步是鏈接,再查還是鏈接,有沒有覺得很好玩,一層套一層,層層鏈接終于找到它。(當初實驗的時候可是花費了很久才找到,找到了發現原來它就在這。這叫眾里尋他千百度,驀然回首,它就在java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64里
)好了,以上就是今天的分享了,謝謝大家
原創文章,作者:吼吼哈嘿,如若轉載,請注明出處:http://www.www58058.com/84908