隨筆-153  評論-235  文章-19  trackbacks-0

          轉載: http://www.math.ecnu.edu.cn/~jypan/linux/command/rpm.htm

           

          RPM 命令

          一、RPM介紹

          1.什么是rpm ?

          rpm 即RedHat Package Management,是RedHat的發明之一 

          2.為什么需要rpm ?

          在一個操作系統下,需要安裝實現各種功能的軟件包。這些軟件包一般都有各自的程序,
          但是同時也有錯綜復雜的依賴關系。同時還需要 解決軟件包的版本,以及安裝,配置,
          卸載的自動化問題。為了解決 這些問題,RedHat針對自己的系統提出了一個較好的辦法
          來管理成千 上百的軟件。這就是RPM管理系統。在系統中安裝了rpm管理系統以后, 
          只要是符合rpm文件標準的打包程序都可以方便地安裝、升級、卸載。

          3.是不是所有的linux都使用rpm ?

          任何系統都需要包管理系統,因此很多linux都使用rpm系統。 rpm系統是Redhat Linux和
          Fedora Core的軟件包管理器,但是Mandriva、SuSE等Linux發行版也都使用rpm。由于rpm
          的源程序可以在別的系統上進行編譯,所以有可能在別的系統上也使用rpm。除了rpm,
          其他一些系統也有自己的軟件包管理程序, 例如 debian的deb包。 

          4.rpm包的文件名為什么那么長 ?

          rpm包的文件名中包含了這個軟件包的版本信息,操作系統信息,硬件要求等等。
          比如mypackage-1.1-2RH.i386.rpm,其中mypackage是在系統中登記的軟件包的名字1.1
          是軟件的版本號,2是發行號,RH表示用于RH操作系統。i386表示用于intel x86平臺。 

          5.軟件包文件名中的i386,i686是什么意思

          rpm軟件包的文件名中,不僅包含了軟件名稱,版本信息,還包括了適用的硬件架構的信息。 
           
          i386指這個軟件包適用于intel 80386以上的x86架構的計算機(AI32) 
          i686指這個軟件包適用于intel 80686以上(奔騰pro以上)的x86架構的計算機(IA32) 
          noarch指這個軟件包與硬件架構無關,可以通用。 
           
          i686軟件包通常針對CPU進行了優化,現在通常配置的機器都可以使用i686軟件包。 

          6.不同操作系統發行的rpm包可否混用?

          對于已經編譯成二進制的rpm包,由于操作系統環境不同,一般不能混用。 
          對于以src.rpm發行的軟件包,由于需要安裝時進行本地編譯,所以通常可以在不同系統下安裝。 

          二、RPM包管理的用途

          1、可以安裝、刪除、升級和管理以rpm包形式發布的軟件;
          2、可以查詢某個rpm包中包含哪些文件,以及某個指定文件屬于哪個rpm包;
          3、可以在查詢系統中的某個rpm包是否已安裝以及其版本;
          4、作為開發者可以把自己開發的軟件打成rpm包發布;
          5、依賴性的檢查,查詢安裝某個rpm包時,需要哪些其它的rpm包。 
           
          注:RPM軟件的安裝、刪除、更新只有root權限才能使用;
              對于查詢功能任何用戶都可以操作。

          三、rpm 的一點簡單用法

          rpm的一般格式:

           rpm [選項] [rpm軟件包]

          1、初始化rpm 數據庫(可以省略)

          rpm --initdb
          rpm --rebuilddb % 注:這個要花好長時間
           
          %注:有時rpm 系統出了問題,不能安裝和查詢,大多是這里出了問題。

          2、RPM軟件包管理的查詢功能:

          rpm -q [select-options] [query-options]

          RPM的查詢功能是極為強大,是極為重要的功能之一;這里舉幾個常用的例子,更為詳細的具體的,請參考 man rpm

          對系統中已安裝軟件的查詢

          1)查詢系統已安裝的軟件
           
          語法:rpm -q 軟件名
           
          例:rpm -q mplayer
          % -q就是 --query,此選項表示詢問系統是不是安裝了gaim軟件包;
          % 如果已安裝會有信息輸出;如果沒有安裝,會輸出gaim 沒有安裝的信息;
           
          %查看系統中所有已經安裝的包,要加 -a 參數
          rpm -qa
           
          % 如果分頁查看,再加一個管道 |和more命令
          rpm -qa |more
           
          % 如果要查找某個軟件包,可以用 grep 抽取出來
          rpm -qa |grep mplayer
          2)查詢一個已經安裝的文件屬于哪個軟件包;
           
          語法: rpm -qf 文件名
           
          注:文件名所在的絕對路徑要指出
           
          例:rpm -qf /usr/lib/libacl.la
          3)查詢已安裝軟件包都安裝到何處;
           
          語法:rpm -ql 軟件包名 
           
          例:rpm -ql mplayer
          4)查詢一個已安裝軟件包的信息 
           
          語法: rpm -qi 軟件包名
           
          例:rpm -qi mplayer
          5)查看一下已安裝軟件的配置文件;
           
          語法格式:rpm -qc 軟件名
           
          例:rpm -qc mplayer
          6)查看一個已經安裝軟件的文檔安裝位置:
           
          語法格式: rpm -qd 軟件名
           
          例:rpm -qd mplayer
          7)查看一下已安裝軟件所依賴的軟件包及文件;
           
          語法格式: rpm -qR 軟件名
           
          例:rpm -qR mplayer
           
          :可以把幾個參數組合起來用,如 rpm -qil mplayer

          對于未安裝的軟件包的查看 :查看的前提是當前目錄下已存在一個.rpm文件。

          1)查看一個軟件包的用途、版本等信息;
           
          語法: rpm -qpi file.rpm
           
          例:rpm -qpi mplayer-1.0pre7try2-2.i386.rpm
          2)查看一件軟件包所包含的文件;
           
          語法: rpm -qpl file.rpm
           
          例:rpm -qpl mplayer-1.0pre7try2-2.i386.rpm
          3)查看軟件包的文檔所在的位置;
           
          語法: rpm -qpd file.rpm
           
          例:rpm -qpd mplayer-1.0pre7try2-2.i386.rpm
          4)查看一個軟件包的配置文件;
           
          語法: rpm -qpc file.rpm
           
          例:rpm -qpc mplayer-1.0pre7try2-2.i386.rpm
          5)查看一個軟件包的依賴關系
           
          語法: rpm -qpR file.rpm
           
          例:rpm -qpR mplayer-1.0pre7try2-2.i386.rpm

          3、軟件包的安裝、升級、刪除等; 安裝和升級一個rpm 包

          語法: 
            rpm -ivh file.rpm   % 這個是用來安裝一個新的rpm 包
           rpm -Uvh file.rpm   % 這是用來升級一個rpm 包
           
          % 如果有依賴關系的,需解決依賴關系。
          % 如果找不到依賴關系的包,可以用下面的命令強制安裝:
           
           rpm -ivh --nodeps --force file.rpm 
            rpm -Uvh --nodeps --force file.rpm
           
          例:
          rpm -ivh --test mplayer-1.0pre7try2-2.i386.rpm
          % --test表示測試,并不真正安裝。
           
          rpm -ivh --relocate /=/usr/local/mplayer mplayer-1.0pre7try2-2.i386.rpm
          % 為軟件包指定安裝目錄:要加 --relocate 參數
          % 安裝在指定目錄中的程序如何調用呢?
          % 通常可執行程序都放在安裝目錄下的bin或者sbin目錄中。

          刪除一個rpm 包

          首先查出需要刪除的rpm包,然后用下面的命令來卸載:
           
          rpm -e 軟件包名 
           
          例:rpm -e mplayer   % 卸載mplayer
          % 如果有其它的rpm依賴于該rpm包,系統會出現警告。
          % 如果一定要卸載,可以用選項 --nodeps 忽略依賴關系。但最好不要這么做。

          四、RPM管理包管理器支持網絡安裝和查詢

          rpm [選項] rpm包的http或者ftp的地址
           
          比如我們想通過 Fedora Core 4.0 的一個鏡像查詢、安裝軟件包。
           
          rpm -qpi http://mirrors.kernel.org/.../RPMS/rsh-0.17-29.rpm
          % 查詢
           
          rpm -ivh http://mirrors.kernel.org/.../RPMS/rsh-0.17-29.rpm
          % 安裝

          五、對已安裝rpm包查詢的一點補充

          可以用 locate來查詢一些軟件的安裝位置,可能需要先運行updatedb來更新已安裝軟件庫

          六、從rpm軟件包抽取文件

          rpm2cpio xxx.rpm | cpio -idmv
          % i 表示提取文件,v 表示指示執行進程
          % d 表示根據包中文件原來的路徑建立目錄 
          % m 表示保持文件的更新時間
          posted on 2008-03-24 14:17 流浪汗 閱讀(2379) 評論(1)  編輯  收藏 所屬分類: linux

          評論:
          # re: rpm 命令 2011-11-21 23:50 | dpc27149
          不錯,最近頻繁用到這些命令  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 临清市| 辉县市| 莎车县| 集安市| 宣武区| 册亨县| 金门县| 公主岭市| 会同县| 墨玉县| 新化县| 都昌县| 泰顺县| 蚌埠市| 龙江县| 浦城县| 营口市| 海宁市| 台东县| 阿勒泰市| 阿拉尔市| 平塘县| 章丘市| 道真| 获嘉县| 措勤县| 华容县| 安图县| 双牌县| 泾阳县| 宜春市| 淅川县| 延安市| 桓仁| 晋江市| 石门县| 荔浦县| 贺州市| 武胜县| 葫芦岛市| 齐齐哈尔市|