RPM 的使用
2024-07-26 00:31:31
供稿:網(wǎng)友
RPM簡述
RPM是Redhat Package Manager的縮寫,是由RedHat公司開發(fā)的軟件包安裝和管理程序,同Windows平臺上
的Uninstaller比較類似。使用RPM,用戶可以自行安裝和管理linux上的應(yīng)用程序和系統(tǒng)工具。
RPM可以讓用戶直接以binary方式安裝軟件包,并且可替用戶查詢是否已經(jīng)安裝了有關(guān)的庫文件;在用RPM刪
除程序時(shí),它又會聰明地詢問用戶是否要?jiǎng)h除有關(guān)的程序。如果使用RPM來升級軟件,RPM會保留原先的配置
文件,這樣用戶就不用重新配置新的軟件了。RPM保留一個(gè)數(shù)據(jù)庫,這個(gè)數(shù)據(jù)庫中包含了所有的軟件包的資料,
通過這個(gè)數(shù)據(jù)庫,用戶可以進(jìn)行軟件包的查詢。RPM雖然是為Linux而設(shè)計(jì)的,但是它已經(jīng)移值到SunOS、
Solaris、AIX、Irix等其它UNIX系統(tǒng)上了。RPM遵循GPL版權(quán)協(xié)議,用戶可以在符合GPL協(xié)議的條件下自由
使用及傳播RPM。
使用RPM
RPM共有10種基本的模式:它們是安裝、查詢、驗(yàn)證、刪除等。
安裝模式: rpm –i [安裝選項(xiàng)] <軟件包>
查詢模式: rpm –q [查詢選項(xiàng)]
驗(yàn)證模式: rpm –V 或 –verify [驗(yàn)證選項(xiàng)]
刪除模式: rpm –e <軟件包>
使用RPM的一般選項(xiàng)
一般選項(xiàng)可以用于所有的模式。
-v 顯示信息
-h 用“#”顯示完成的進(jìn)度
--keep-temps 保留臨時(shí)文件,臨時(shí)文件通常位于/tmp/rpm-*,這個(gè)選項(xiàng)要用于debug。
--quiet 安靜工作,只有當(dāng)出現(xiàn)錯(cuò)誤時(shí)才給出提示信息
--help 顯示幫助
--version 顯示當(dāng)前使用的RPM版本
安裝和升級的選項(xiàng)
使用RPM來安裝的一般格式為: rpm –i [安裝選項(xiàng)] <軟件包>
使用RPM來升級的一般格式為: rpm –U [安裝選項(xiàng)] <軟件包>
比如,要安裝一個(gè)新的軟件包,它的名字為xosvies-1.6.3-5.i386.rpm,使用下面的命令就可以把它安裝到系統(tǒng)上:
# rpm -i xosvies-1.6.3-5.i386.rpm
升級同安裝是一樣的,只不過升級會把原來低版本的文件刪除掉。RPM可以使用FTP安裝,這時(shí)要指定FTP的完整
路徑。使用FTP方式安裝時(shí),RPM會先下載所需的軟件包,然后再安裝。
--force
同--replacepkgs,--replacefiles,--oldpackage一樣,當(dāng)安裝的軟件版本已經(jīng)安裝在系統(tǒng)上,或者是系統(tǒng)
上現(xiàn)有的版本比要安裝的版本高,系統(tǒng)就會發(fā)出警告。這時(shí),用戶如果堅(jiān)持安裝的話,可以用--force選項(xiàng)。
--nodeps
使用RPM安裝前,RPM會檢查該軟件包的依賴關(guān)系,即正確運(yùn)行該軟件包所需的其它軟件包是否已經(jīng)安裝。如果沒有
安裝的話,系統(tǒng)會給出警告。這時(shí),用戶如果要強(qiáng)行安裝的話,可以使用這個(gè)選項(xiàng)。但是作者并不推薦這種做法,
因?yàn)檫@樣安裝的軟件十有八九是不能運(yùn)行的。
--test
不實(shí)際安裝,只是檢查并顯示可能存在的沖突。
查詢選項(xiàng)
查詢的命令格式如下: rpm –q [查詢選項(xiàng)]
這里的選項(xiàng)包括兩大類:軟件包選項(xiàng)和信息選項(xiàng)。
軟件包選項(xiàng):
<軟件包名字>
查詢系統(tǒng)上是否已經(jīng)安裝這個(gè)軟件包,軟件包的名字是<軟件包名字>
-a 查詢所有安裝的軟件包
--whatrequires <功能>
查詢所有需要<功能>才能正常運(yùn)行的軟件包。
--whatPRovides <功能>
查詢所有能提供<功能>的軟件包
-f <文件>
查詢擁有<文件>的軟件包,也就是說,是哪一個(gè)軟件包安裝的<文件>。
--requiredby <軟件包>
查詢所有安裝<軟件包>所需要的其它軟件包。
-p <軟件包名字>
查詢未安裝的軟件包<軟件包名字>。這個(gè)軟件包可以指定為FTP路徑,這時(shí),RPM會下載它的頭部信息并查詢。
信息選項(xiàng)
-i 顯示軟件包的信息,包括名稱、版本、描述信息。
-R 顯示這個(gè)軟件包所依賴的軟件包。 同--requires。
--provides 顯示這個(gè)軟件包所提供的功能
-l 列出這個(gè)軟件包內(nèi)所包含的文件。
-s 顯示這個(gè)軟件包的狀態(tài),狀態(tài)是指“normal”“not installed”“replaced”
驗(yàn)證選項(xiàng)
驗(yàn)證的一般格式為: rpm –V|--verify [驗(yàn)證選項(xiàng)]
驗(yàn)證會把軟件包所安裝的軟件與原先數(shù)據(jù)庫中存儲的軟件信息做一個(gè)比較。用戶可以用RPM來驗(yàn)證已經(jīng)安裝的軟件包,
RPM可以驗(yàn)證文件的大小,md5校驗(yàn)碼,文件權(quán)限,類型,屬主等信息。對于特定軟件的選項(xiàng)同查詢的選項(xiàng)。
驗(yàn)證輸出的格式是一個(gè)包括8個(gè)字符的字符串,這8個(gè)字符中每個(gè)字符都代表同數(shù)據(jù)庫中信息所比較的結(jié)果。如是結(jié)果
是“.”,就代表沒有問題。下面是相應(yīng)字符的意義:
5 MD5校驗(yàn)錯(cuò) D 設(shè)備文件錯(cuò)
U 用戶名錯(cuò) G 組名錯(cuò)
S 文件大小錯(cuò) L 符號鏈接錯(cuò)
T 文件修改時(shí)間錯(cuò) M 屬性錯(cuò)(包括讀寫權(quán)限和文件類型)
刪除選項(xiàng)
刪除的一般格式為: rpm –e <軟件名>
注意:這里只能是軟件名,而不是軟件包。
--allmatches
刪除<軟件包>所指定的所有版本的軟件,如果有多個(gè)版本存在的話,一般會給出錯(cuò)誤碼信息。
--nodeps
如果要?jiǎng)h除的軟件包是別的軟件所必需的,在刪除時(shí)用戶會得到警告。這時(shí),如果確認(rèn)要強(qiáng)行刪除,可以使用
--nodeps這個(gè)選項(xiàng)。這樣一來,相關(guān)的軟件就不能運(yùn)行了。
--test 不真正刪除,只是測試。
RPM使用范例
軟件安裝
如果用戶手頭上有一個(gè)RPM軟件包,可以使用命令:
# rpm –ivh xanim-27064-3.i386.rpm
安裝時(shí)出現(xiàn)的錯(cuò)誤信息
1.該軟件包已經(jīng)安裝
假如用戶安裝的軟件包已經(jīng)安裝,再安裝的話會出現(xiàn)下列的錯(cuò)誤信息:
# rpm –ivh xanim-27064-3.i386.rpm
foo package xanim-27064-3.i386.rpm is already installed
error: xanim-27064-3.i386.rpm cannot be installed
如果用戶一定要安裝,可以使用:
# rpm –ivh xanim-27064-3.i386.rpm --force
2.軟件包之間有沖突
假如用戶要安裝的軟件包里的某些文件,先前已經(jīng)有其它的軟件包安裝過,即各種軟件包之間有沖突,則會
出現(xiàn)以下的錯(cuò)誤信息:
# rpm –ihv foo-1.0-1.i386.rpm
foo /usr/bin/foo confilicts with file from bar-1.0-1
error: foo-1.0-1.i386.rpm cannot be installed
3.缺少相關(guān)的文件
有時(shí)安裝的RPM軟件包需要其它的部件才能安裝成功。這時(shí)安裝時(shí)有下面的錯(cuò)誤信息:
# rpm –ihv bar-1.0-1.i386.rpm
failed dependencies: foo is needed by bar-1.0-1
如果用戶要強(qiáng)行安裝,可以使用命令:
# rpm –ivh bar-1.0-1.i386.rpm --nodeps
刪除軟件
要?jiǎng)h除軟件非常簡單,只要執(zhí)行下面的命令就行:
# rpm –e xanim
這時(shí),用戶要注意使用的是軟件的名稱xanim,而不是軟件包的名稱xanim-27.64-3.i386.rpm。
如果要?jiǎng)h除的軟件是其它軟件所需要的,用戶會得到類似下面的錯(cuò)誤信息:
# rpm –e xanim
error: xanim is needed by mtv-1.0-1
這表明如果用戶刪除了xanim,則mtv就不能運(yùn)行了,因?yàn)閤anim里的一些軟件是mtv運(yùn)行所需要的。
若用戶一定要?jiǎng)h除,可以使用下面的命令:
# rpm –e xanim --nodeps
升級軟件
如果用戶以前安裝過xanim-27063-1.i386.rpm,現(xiàn)在又得到了xanim-27064-1.i386.rpm,則使用下面
的命令可以升級這個(gè)軟件包:
# rpm –Uhv xanim-27064-1.i386.rpm
實(shí)際上,-U參數(shù)是告訴RPM先刪除原先的版本,再安裝新的版本。所以不管以前是否安裝過這個(gè)軟件包,用戶
都可以使用rpm –Uhv命令來安裝軟件?!?
查詢軟件包
如果用戶想要查詢某個(gè)軟件是屬于哪個(gè)軟件包安裝的,可以使用命令:
# rpm –qf xanim
xanim-27.64-3
如果用戶得到一個(gè)軟件包,卻不知道它里面有哪些內(nèi)容,可以使用命令:
# rpm –qpi xanim-27064-3.i386.rpm
如果用戶想知道它會在系統(tǒng)上安裝哪些內(nèi)容,可以使用命令:
# rpm –qpl xanim-27064-3.i386.rpm
如果用戶在Internet上遇到一個(gè)軟件包,想要知道它里邊的內(nèi)容時(shí),可以使用命令:
# rpm –qpl ftp://ftp.redhat.com/redhat/RPMS/xanim-27064-3.i386.rom
較驗(yàn)
如果用戶不小心刪除了幾個(gè)文件,卻又不知道到底刪除了哪些文件,可以使用下面的命令對系統(tǒng)進(jìn)行校驗(yàn):
# rpm –Va
i386.rpm與src.rpm的不同
在Internet上,用戶經(jīng)常會看到這樣的目錄:RPMS/和SRPMS/。目錄RPMS/下面存放的就是一般的RPM軟件包,
這些軟件包是由軟件的原代碼編譯成可執(zhí)行文件,再包裝成RPM軟件包的。而SRPMS/目錄下存放的都是以
.src.rpm結(jié)尾的文件,這些文件是由軟件的源代碼包裝而成的,用戶要安裝這類RPM軟件包,必須使用命令:
# rpm --recompile vim-4.6-4.src.rpm
這個(gè)命令會把源代碼解包并編譯、安裝它,如果用戶使用命令:
# rpm --rebuild vim-4.6-4.src.rpm
那么,在安裝完成后,還會把編譯生成的可執(zhí)行文件重新包裝成i386.rpm的RPM軟件包。
GnoRPM的使用
GnoRPM是GNU組織開發(fā)的RPM軟件包管理程序,它是RPM程序的前端程序,是在X Window下運(yùn)行的圖形化的
RPM管理程序。只要用戶熟悉了RPM的使用,那么也就會使用GnoRPM了,不過GnoRPM比RPM程序更好用!
GnoRPM的安裝
BluePoint Linux和TurboLinux內(nèi)沒有安裝GnoRPM,紅旗Linux與RedHat Linux內(nèi)自動(dòng)安裝的就有。
對于前兩種用戶要自己安裝。在http://www.gnome.org下載gnorpm-0.8-5.i386.rpm。注意GnoRPM需要
rpm 3.0版本,如果是rpm 2.5 版本的話(TurboLinux 4.0是rpm 2.5),要先升級到3.0,BluePiont
Linux里的rpm就是3.0版本,用戶可以直接安裝。
# rpm –ihv gnorpm-0.8-5.i386.rpm
然后,在shell提示符下輸入gnorpm 就能運(yùn)行g(shù)norpm。
GnoRPM的使用
gnorpm的主窗口如下所示,它有安裝、升級、刪除、查詢、驗(yàn)證、尋找等功能。
安裝
點(diǎn)按“Install”后,出現(xiàn)安裝的窗口,如下圖示:
按“Add”,出現(xiàn)選擇窗口:
這時(shí),選擇想要安裝的軟件包后,按“Add”按鈕,回到安裝的窗口,這時(shí)用戶可以選擇“Query”來查詢
這個(gè)軟件包,也可以選擇“Install”來安裝它。升級軟件同安裝軟件類似。
刪除軟件
gnorpm把系統(tǒng)上的軟件歸為幾個(gè)大類,如應(yīng)用程序(applications)、開發(fā)(Development)、文檔
(Documentation)等。用戶只要在相應(yīng)類別中找到要?jiǎng)h除的軟件,然后再點(diǎn)按“Uninstall”按鈕,
針對彈出對話框:
如果用戶確認(rèn)要?jiǎng)h除的話,按“OK”就可以了。
尋找
用戶在gnorpm主菜單上按“Find”后,會出現(xiàn):
這時(shí),只要選擇適當(dāng)?shù)膶ふ覙?biāo)準(zhǔn),gnorpm提供的標(biāo)準(zhǔn)有:“contain file”(包含文件),“are in
the group ”(在類別……里),“provide”(提供……功能),“require”(需要……),“conflict with”
(同……沖突),“match label”(標(biāo)簽為)。如上圖示,在選擇標(biāo)準(zhǔn)“match label”,并在用戶輸入信息
“gedit”后,按“Find”,它會開始尋找用戶需要的軟件,在找到之后,用戶可以查詢它,可以刪除它,
也可以驗(yàn)證它。
當(dāng)然,上面提到的僅僅是一丁點(diǎn)參考而已,用戶要在實(shí)際中不斷探索才能提高。
李景超