Linux 中 RPM 指令參數使用詳解 在Linux作業系統中,有一個系統軟體包,它的功能類似于Windows裡面的“添加/删除程式”,但是功能又比“添加/删除程式”強很多,它就是 Red Hat Package Manager(簡稱RPM)。此工具包最先是由Red Hat公司推出的,後來被其他Linux開發商所借用。由于它為Linux使用者省去了很多時間,是以被廣泛應用于在Linux下安裝、删除軟體。下面就給大家介紹一下它的具體使用方法。
1.我們得到一個新軟體,在安裝之前,一般都要先檢視一下這個 軟體包裡有什麼内容,假設這個檔案是:Linux-1.4-6.i368.rpm,我們可以用這條指令檢視:
rpm -qpi Linux-1.4-6.i368.rpm
系統将會列出這個軟體包的詳細資料,包括含有多少個檔案、各檔案名稱、檔案大小、建立時間、編譯日期等資訊。
2.上面列出的所有檔案在安裝時不一定全部安裝,就像Windows下程式的安裝方式分為典型、完全、自定義一樣,Linux也會讓你選擇安裝方式,此時我們可以用下面這條指令檢視軟體包将會在系統裡安裝哪些部分,以友善我們的選擇:
rpm -qpl Linux-1.4-6.i368.rpm
3.選擇安裝方式後,開始安裝。我們可以用rpm-ivh Linux-1.4-6.i368.rpm指令安裝此軟體。在安裝過程中,若系統提示此軟體已安裝過或因其他原因無法繼續安裝,但若我們确實想執行安裝指令,可以在 -ivh後加一參數“-replacepkgs”:
rpm -ivh -replacepkgs Linux-1.4-6.i368.rpm
4.有時我們解除安裝某個安裝過的軟體,隻需執行rpm-e <檔案名>指令即可。
5.對低版本軟體進行更新是提高其功能的好辦法,這樣可以省去我們解除安裝後再安裝新軟體的麻煩,要更新某個軟體,隻須執行如下指令:rpm -uvh <檔案名>,注意:此時的檔案名必須是要更新軟體的更新更新檔
6.另外一個安裝軟體的方法可謂是Linux的獨到之處,同時也是RMP強大功能的一個表現:通過FTP站點直接線上安裝軟體。當找到含有你所需軟體的站點并與此網站連接配接後,執行下面的指令即可實作線上安裝,譬如線上安裝Linux-1.4-6.i368.rpm,可以用指令:
rpm -i [url]ftp://ftp.pht.com/pub/linux/redhat/...-1.4-6.i368.rpm[/url]
7.在我們使用電腦過程中,難免會有誤操作,若我們誤删了幾個檔案而影響了系統的性能時,怎樣查找到底少了哪些檔案呢?RPM軟體包提供了一個查找損壞檔案的功能,執行此指令:rpm -Va即可,Linux将為你列出所有損壞的檔案。你可以通過Linux的安裝CD光牒進行修複。
8.Linux系統中檔案繁多,在使用過程中,難免會碰到我們不認識的檔案,在Windows下我們可以用“開始/查找”菜單快速判斷某個檔案屬于哪個檔案夾,在Linux中,下面這條指令行可以幫助我們快速判定某個檔案屬于哪個軟體包:
rpm -qf <檔案名>
9.當每個軟體包安裝在Linux系統後,安裝檔案都會到RPM資料庫中“報到”,是以,我們要查詢某個已安裝軟體的屬性時,隻需到此資料庫中查找即可。注意:此時的查詢指令不同于1和8介紹的查詢,這種方法隻适用于已安裝過的軟體包!指令格式:
rpm -參數 <檔案名>
當用RPM進行軟體安裝,系統提示“軟體關聯性出錯”的時候,可以加“nodeps”參數強行安裝,例如:
例如: rpm -Uvh gcc-2.96-112.7.2.i386.rpm --nodeps
系統提示: preparing ################### [100%]
1、gcc ################### [100%]
可能存在的問題是:
1、加了“NODEPS”參數不保證可以成功安裝
2、即使安裝成功了,不一定能正常使用 使用rpm指令查詢軟體包:
1、查詢系統中安裝的所有RPM包
$ rpm -qa
查詢目前linux系統中已經安裝的軟體包。
例:$ rpm -qa | grep -i x11 | head -3 察看系統中包含x11字元串的前3行軟體包。
2、查詢軟體包是否安裝
$ rpm –q rpm包名稱 察看系統中指定軟體包是否安。
例: $ rpm -q bash 察看系統中bash軟體包是否安裝。
"rpm -q"指令中指定的軟體包名稱需要準确的拼寫,該指令不會在軟體包的名稱中進行局部比對的查詢。
3、查詢已安裝軟體包詳細資訊
$ rpm –qi RPM包名稱 查詢linux系統中指定名稱軟體包的詳細資訊。
例:$ rpm -qi bash 察看bash軟體包的詳細資訊。
"rpm -qi"指令的執行結果中包含較詳細的資訊,包括:軟體名稱,版本資訊,包大小,描述,等。
4、查詢已安裝軟體包中的檔案清單
$ rpm –ql RPM包名稱 查詢已安裝軟體包在目前系統中安裝了哪些檔案。
例:$ rpm -ql bash | head -3 檢視bash軟體在系統中已安裝檔案的前3行檔案清單。
$ rpm -ql bash | grep bin 用過濾方式察看bash中包含bin字元串的檔案清單。
5、查詢系統中檔案所屬的軟體包
$ rpm –qf 檔案名稱 查詢linux系統中指定檔案所屬的軟體包。
例:$ rpm -qf /bin/bash 察看bash檔案所屬的軟體包。
bash-3.0-19.2 顯示結果。
6、查詢RPM安裝封包件中的資訊
$ rpm –qpi RPM封包件名 察看RPM包未安裝前的詳細資訊。
$ rpm –qpl RPM封包件名 察看RPM包未安裝前的檔案清單。
"rpm -qpi和rpm -qpl 這兩條指令可作為在安裝軟體包之前對其的了解。
7、rpm指令查詢執行個體
$ which mount 獲得mount指令的可執行檔案路徑。
$ rpm –qf /bin/mount 查詢/bin/mount所屬的軟體包。
$ rpm –qi util-linux 查詢/bin/mount所屬軟體包的詳細資訊。
$ rpm –qf util-linux | grep mount 查詢/bin/mount所屬軟體包中包括mount相關所有檔案。 使用rpm指令安裝軟體包:
1、rpm軟體包地基本安裝
$ rpm –i rpm安裝封包件名 安裝該軟體包中的檔案到目前系統,安裝過程不提示任何資訊。
2、在安裝軟體包的同時顯示詳細資訊
$ rpm –ivh rpm安裝封包件 安裝該軟體包中的檔案到目前系統,安裝過程會以百分比的形式顯示安裝的進度和一些其他資訊。
3、RPM軟體包安裝的依賴關系
強制安裝:$ rpm --force –i rpm封包件名
注:要先滿足軟體包的依賴關系後再進行軟體包的安裝,使用強制安裝指令安裝不能保證軟體安裝到系統後一定能
正常運作,是以建議慎重使用 使用rpm指令解除安裝軟體包:
1、RPM軟體包的解除安裝
$ rpm -e 軟體包名稱
軟體包的解除安裝,在解除安裝時不顯示任何資訊。
注:RPM軟體包的解除安裝同樣存在依賴關系,隻有在沒有依賴關系存在時才能對其進行解除安裝。
2、rpm軟體包解除安裝的依賴關系
在使用RPM指令進行解除安裝時,RPM指令會分析要解除安裝的軟體包的依賴關系,當存在依賴關系時會自動停止,并顯由
哪個軟體造成的解除安裝失敗。根據RPM提示的錯誤資訊,确定先解除安裝的軟體包,再解除安裝被依賴的軟體包 使用rpm指令更新軟體包:
$ rpm - U rpm安裝封包件名
注:"rpm -u"指令中使用的更新軟體封包件最好使用RED HAT公司針對目前的linux版本官方推出的更新檔案,建議不要使用第三方提供的更新包。
應用程式編譯
開放源代碼應用程式的編譯安裝 1.安裝一個包
# rpm -ivh
2.更新一個包
# rpm -Uvh
3.移走一個包
# rpm -e
4.安裝參數
--force 即使覆寫屬于其它包的檔案也強迫安裝
--nodeps 如果該RPM包的安裝依賴其它包,即使其它包沒裝,也強迫安裝。
5.查詢一個包是否被安裝
# rpm -q < rpm package name>
6.得到被安裝的包的資訊
# rpm -qi < rpm package name>
7.列出該包中有哪些檔案
# rpm -ql < rpm package name>
8.列出伺服器上的一個檔案屬于哪一個RPM包
#rpm -qf
9.可綜合好幾個參數一起用
# rpm -qil < rpm package name>
10.列出所有被安裝的rpm package
# rpm -qa
11.列出一個未被安裝進系統的RPM封包件中包含有哪些檔案?
# rpm -qilp < rpm package name>
轉載于:https://blog.51cto.com/liujia/119405