隨筆-153  評(píng)論-235  文章-19  trackbacks-0

          轉(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)行本地編譯,所以通常可以在不同系統(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的一般格式:

           rpm [選項(xiàng)] [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

          評(píng)論:
          # re: rpm 命令 2011-11-21 23:50 | dpc27149
          不錯(cuò),最近頻繁用到這些命令  回復(fù)  更多評(píng)論
            

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 穆棱市| 茂名市| 泰兴市| 瑞昌市| 静安区| 梓潼县| 和政县| 和龙市| 永州市| 湘乡市| 绥阳县| 泽州县| 安远县| 镇江市| 永善县| 依安县| 梧州市| 凌海市| 贡觉县| 宁国市| 留坝县| 武城县| 江华| 临安市| 贵州省| 淄博市| 曲周县| 江北区| 军事| 清丰县| 边坝县| 甘泉县| 威远县| 滦平县| 右玉县| 孟连| 平山县| 双江| 会东县| 临湘市| 漯河市|