轉(zhuǎn)載: http://www.math.ecnu.edu.cn/~jypan/linux/command/rpm.htm
RPM 命令
一、RPM介紹
1.什么是rpm ?
rpm 即RedHat Package Management,是RedHat的發(fā)明之一
2.為什么需要rpm ?
在一個(gè)操作系統(tǒng)下,需要安裝實(shí)現(xiàn)各種功能的軟件包。這些軟件包一般都有各自的程序,
但是同時(shí)也有錯(cuò)綜復(fù)雜的依賴關(guān)系。同時(shí)還需要 解決軟件包的版本,以及安裝,配置,
卸載的自動(dòng)化問(wèn)題。為了解決 這些問(wèn)題,RedHat針對(duì)自己的系統(tǒng)提出了一個(gè)較好的辦法
來(lái)管理成千 上百的軟件。這就是RPM管理系統(tǒng)。在系統(tǒng)中安裝了rpm管理系統(tǒng)以后,
只要是符合rpm文件標(biāo)準(zhǔn)的打包程序都可以方便地安裝、升級(jí)、卸載。
3.是不是所有的linux都使用rpm ?
任何系統(tǒng)都需要包管理系統(tǒng),因此很多l(xiāng)inux都使用rpm系統(tǒng)。 rpm系統(tǒng)是Redhat Linux和
Fedora Core的軟件包管理器,但是Mandriva、SuSE等Linux發(fā)行版也都使用rpm。由于rpm
的源程序可以在別的系統(tǒng)上進(jìn)行編譯,所以有可能在別的系統(tǒng)上也使用rpm。除了rpm,
其他一些系統(tǒng)也有自己的軟件包管理程序, 例如 debian的deb包。
4.rpm包的文件名為什么那么長(zhǎng) ?
rpm包的文件名中包含了這個(gè)軟件包的版本信息,操作系統(tǒng)信息,硬件要求等等。
比如mypackage-1.1-2RH.i386.rpm,其中mypackage是在系統(tǒng)中登記的軟件包的名字1.1
是軟件的版本號(hào),2是發(fā)行號(hào),RH表示用于RH操作系統(tǒng)。i386表示用于intel x86平臺(tái)。
5.軟件包文件名中的i386,i686是什么意思
rpm軟件包的文件名中,不僅包含了軟件名稱,版本信息,還包括了適用的硬件架構(gòu)的信息。
i386指這個(gè)軟件包適用于intel 80386以上的x86架構(gòu)的計(jì)算機(jī)(AI32)
i686指這個(gè)軟件包適用于intel 80686以上(奔騰pro以上)的x86架構(gòu)的計(jì)算機(jī)(IA32)
noarch指這個(gè)軟件包與硬件架構(gòu)無(wú)關(guān),可以通用。
i686軟件包通常針對(duì)CPU進(jìn)行了優(yōu)化,現(xiàn)在通常配置的機(jī)器都可以使用i686軟件包。
6.不同操作系統(tǒng)發(fā)行的rpm包可否混用?
對(duì)于已經(jīng)編譯成二進(jìn)制的rpm包,由于操作系統(tǒng)環(huán)境不同,一般不能混用。
對(duì)于以src.rpm發(fā)行的軟件包,由于需要安裝時(shí)進(jìn)行本地編譯,所以通??梢栽诓煌到y(tǒng)下安裝。
二、RPM包管理的用途
1、可以安裝、刪除、升級(jí)和管理以rpm包形式發(fā)布的軟件;
2、可以查詢某個(gè)rpm包中包含哪些文件,以及某個(gè)指定文件屬于哪個(gè)rpm包;
3、可以在查詢系統(tǒng)中的某個(gè)rpm包是否已安裝以及其版本;
4、作為開(kāi)發(fā)者可以把自己開(kāi)發(fā)的軟件打成rpm包發(fā)布;
5、依賴性的檢查,查詢安裝某個(gè)rpm包時(shí),需要哪些其它的rpm包。
注:RPM軟件的安裝、刪除、更新只有root權(quán)限才能使用;
對(duì)于查詢功能任何用戶都可以操作。
三、rpm 的一點(diǎn)簡(jiǎn)單用法
rpm的一般格式:
1、初始化rpm 數(shù)據(jù)庫(kù)(可以省略)
rpm --initdb
rpm --rebuilddb % 注:這個(gè)要花好長(zhǎng)時(shí)間
%注:有時(shí)rpm 系統(tǒng)出了問(wèn)題,不能安裝和查詢,大多是這里出了問(wèn)題。
2、RPM軟件包管理的查詢功能:
rpm -q [select-options] [query-options]
RPM的查詢功能是極為強(qiáng)大,是極為重要的功能之一;這里舉幾個(gè)常用的例子,更為詳細(xì)的具體的,請(qǐng)參考 man rpm
對(duì)系統(tǒng)中已安裝軟件的查詢
1)查詢系統(tǒng)已安裝的軟件
語(yǔ)法:rpm -q 軟件名
例:rpm -q mplayer
% -q就是 --query,此選項(xiàng)表示詢問(wèn)系統(tǒng)是不是安裝了gaim軟件包;
% 如果已安裝會(huì)有信息輸出;如果沒(méi)有安裝,會(huì)輸出gaim 沒(méi)有安裝的信息;
%查看系統(tǒng)中所有已經(jīng)安裝的包,要加 -a 參數(shù)
rpm -qa
% 如果分頁(yè)查看,再加一個(gè)管道 |和more命令
rpm -qa |more
% 如果要查找某個(gè)軟件包,可以用 grep 抽取出來(lái)
rpm -qa |grep mplayer
2)查詢一個(gè)已經(jīng)安裝的文件屬于哪個(gè)軟件包;
語(yǔ)法: rpm -qf 文件名
注:文件名所在的絕對(duì)路徑要指出
例:rpm -qf /usr/lib/libacl.la
3)查詢已安裝軟件包都安裝到何處;
語(yǔ)法:rpm -ql 軟件包名
例:rpm -ql mplayer
4)查詢一個(gè)已安裝軟件包的信息
語(yǔ)法: rpm -qi 軟件包名
例:rpm -qi mplayer
5)查看一下已安裝軟件的配置文件;
語(yǔ)法格式:rpm -qc 軟件名
例:rpm -qc mplayer
6)查看一個(gè)已經(jīng)安裝軟件的文檔安裝位置:
語(yǔ)法格式: rpm -qd 軟件名
例:rpm -qd mplayer
7)查看一下已安裝軟件所依賴的軟件包及文件;
語(yǔ)法格式: rpm -qR 軟件名
例:rpm -qR mplayer
注:可以把幾個(gè)參數(shù)組合起來(lái)用,如 rpm -qil mplayer
對(duì)于未安裝的軟件包的查看 :查看的前提是當(dāng)前目錄下已存在一個(gè).rpm文件。
1)查看一個(gè)軟件包的用途、版本等信息;
語(yǔ)法: rpm -qpi file.rpm
例:rpm -qpi mplayer-1.0pre7try2-2.i386.rpm
2)查看一件軟件包所包含的文件;
語(yǔ)法: rpm -qpl file.rpm
例:rpm -qpl mplayer-1.0pre7try2-2.i386.rpm
3)查看軟件包的文檔所在的位置;
語(yǔ)法: rpm -qpd file.rpm
例:rpm -qpd mplayer-1.0pre7try2-2.i386.rpm
4)查看一個(gè)軟件包的配置文件;
語(yǔ)法: rpm -qpc file.rpm
例:rpm -qpc mplayer-1.0pre7try2-2.i386.rpm
5)查看一個(gè)軟件包的依賴關(guān)系
語(yǔ)法: rpm -qpR file.rpm
例:rpm -qpR mplayer-1.0pre7try2-2.i386.rpm
3、軟件包的安裝、升級(jí)、刪除等; 安裝和升級(jí)一個(gè)rpm 包
語(yǔ)法:
rpm -ivh file.rpm % 這個(gè)是用來(lái)安裝一個(gè)新的rpm 包
rpm -Uvh file.rpm % 這是用來(lái)升級(jí)一個(gè)rpm 包
% 如果有依賴關(guān)系的,需解決依賴關(guān)系。
% 如果找不到依賴關(guān)系的包,可以用下面的命令強(qiáng)制安裝:
rpm -ivh --nodeps --force file.rpm
rpm -Uvh --nodeps --force file.rpm
例:
rpm -ivh --test mplayer-1.0pre7try2-2.i386.rpm
% --test表示測(cè)試,并不真正安裝。
rpm -ivh --relocate /=/usr/local/mplayer mplayer-1.0pre7try2-2.i386.rpm
% 為軟件包指定安裝目錄:要加 --relocate 參數(shù)
% 安裝在指定目錄中的程序如何調(diào)用呢?
% 通常可執(zhí)行程序都放在安裝目錄下的bin或者sbin目錄中。
刪除一個(gè)rpm 包
首先查出需要?jiǎng)h除的rpm包,然后用下面的命令來(lái)卸載:
rpm -e 軟件包名
例:rpm -e mplayer % 卸載mplayer
% 如果有其它的rpm依賴于該rpm包,系統(tǒng)會(huì)出現(xiàn)警告。
% 如果一定要卸載,可以用選項(xiàng) --nodeps 忽略依賴關(guān)系。但最好不要這么做。
四、RPM管理包管理器支持網(wǎng)絡(luò)安裝和查詢
rpm [選項(xiàng)] rpm包的http或者ftp的地址
比如我們想通過(guò) Fedora Core 4.0 的一個(gè)鏡像查詢、安裝軟件包。
rpm -qpi http://mirrors.kernel.org/.../RPMS/rsh-0.17-29.rpm
% 查詢
rpm -ivh http://mirrors.kernel.org/.../RPMS/rsh-0.17-29.rpm
% 安裝
五、對(duì)已安裝rpm包查詢的一點(diǎn)補(bǔ)充
可以用 locate來(lái)查詢一些軟件的安裝位置,可能需要先運(yùn)行updatedb來(lái)更新已安裝軟件庫(kù)
六、從rpm軟件包抽取文件
rpm2cpio xxx.rpm | cpio -idmv
% i 表示提取文件,v 表示指示執(zhí)行進(jìn)程
% d 表示根據(jù)包中文件原來(lái)的路徑建立目錄
% m 表示保持文件的更新時(shí)間
posted on 2008-03-24 14:17
流浪汗 閱讀(2379)
評(píng)論(1) 編輯 收藏 所屬分類:
linux