Linux軟體管理之RPM

來源:互聯網
上載者:User

標籤:linux rpm

1.概述

對於一個軟體安裝到LINUX後,一般而言,需要注意安裝後的一些位置,比如可執行二進位程式,設定檔,協助檔案,庫檔案都分別存放在哪裡,因為這些是應用程式運行所必須的。以前學習過LINUX的FHS結構,知道/etc用於存放設定檔;/lib,/usr/lib,/usr/local/lib用於存放庫檔案;/usr/share/,/usr/local/share/用於存放協助文檔;/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin用於存放可執行二進位程式。RPM,即redhat package manage,軟體包管理器。RPM可以用於製作軟體,安裝軟體,卸載軟體,升級軟體,校正軟體等功能。


2. RPM命名規範

舉例如下:

bind-9.7.1-el5-i586.rpm


bind即包名,包分為主包和子包,比如bind(主包) , bind-lib(子包)

9.7.1即版本號碼

el5即發行版號,明確說明用於REDHAT企業版5   相當於是系統平台

i586即平台架構,i586/i686都是32位平台  x64/x86_64是64位平台   相當於是物理平台


RPM有兩種格式:

二進位格式:已經編譯成二進位了,直接安裝即可,方便簡單

源碼格式:需要進行編譯,有點麻煩。但是可以最大化利用主機的硬體效能



3. 安裝RPM

rpm -i  PATH_RPM

    -h  可以顯示安裝進度,一個#表示2%進度

    -v  顯示詳細資料

    -vv

    -vvv

    --nodeps  忽略依賴關係,強制安裝【可能導致,軟體安裝後無法使用】

    --replacepkgs 重新安裝 覆蓋以前版本    

    --force 強制安裝【可能覆蓋,可能降級】

    --test 並不安裝,僅僅測試下


對於安裝RPM,其實我們常用的就是:

rpm -ivh PATH_RPM



4. 查詢RPM

我們知道,對於WINDOWS,如果安裝了應用程式的話,有什麼註冊表啦,什麼菜單,什麼控制台等等可以尋找到安裝的應用程式。但是LINUX並沒有這些概念,那麼我們如何查詢安裝了哪些RPM,安裝在哪裡?


rpm -q packagename  查詢是否安裝指定名稱的packagename包

rpm -qa   查詢所有已經安裝的RPM包  後面可以跟上進行通配

rpm -qi   packagename 查詢更加詳細的資訊

rpm -ql   packagename  查詢這個RPM到底安裝在哪裡,定位下安裝後的檔案清單

rpm -qf   FILEPATH   查詢指定路徑的檔案是由哪個RPM安裝的

rpm -qc   packagename  查詢指定包名稱的設定檔在哪裡configfiles

rpm -qd   packagename   文檔說明在哪裡  docfiles 

rpm -q --scripts packagename 查看安裝前(pre) ,安裝後(post) ,卸載前,卸載後  所要執行的指令碼。



如果一個RPM包並未安裝的話,那麼我想

查詢更加詳細的資訊  rpm -qpi PATH_RPM

查詢這個RPM到底安裝在哪裡,定位下安裝後的檔案清單 rpm -qpl PATH_RPM

查詢指定包名稱的設定檔在哪裡configfiles  rpm -qpc PATH_RPM

文檔說明在哪裡  docfiles   rpm -qpd PATH_RPM

查看安裝前(pre) ,安裝後(post) ,卸載前,卸載後  所要執行的指令碼。 rpm -qp --scripts PATH_RPM

和上面的一樣,只不過加入-p選項即可,並且後跟RPM包路徑即可。 



注意了,有時候,我們需要使用RPM的包名,有時候我們需要提供RPM的路徑。如果RPM已經安裝完畢,那麼實際上在RPM的資料庫(/var/rpm/lib)中已經進行了記錄,所以查詢直接使用RPM的包名即可。如果未安裝,顯然需要使用RPM的路徑。


[[email protected] rpm]# rpm -qa a*attr-2.4.32-1.1avahi-0.6.16-1.el5automake14-1.4p6-13autoconf-2.59-12automake-1.9.6-2.1[[email protected] rpm]# rpm -qi aprName        : apr                          Relocations: (not relocatable)Version     : 1.2.7                             Vendor: Red Hat, Inc.Release     : 11                            Build Date: Wed 17 Jan 2007 08:36:50 AM PSTInstall Date: Fri 27 Jun 2014 09:40:03 AM PDT      Build Host: ls20-bc2-14.build.redhat.comGroup       : System Environment/Libraries   Source RPM: apr-1.2.7-11.src.rpmSize        : 267135                           License: Apache Software LicenseSignature   : DSA/SHA1, Wed 17 Jan 2007 12:29:27 PM PST, Key ID 5326810137017186Packager    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>URL         : http://apr.apache.org/Summary     : Apache Portable Runtime libraryDescription :The mission of the Apache Portable Runtime (APR) is to provide afree library of C data structures and routines, forming a systemportability layer to as many operating systems as possible,including Unices, MS Win32, BeOS and OS/2.[[email protected] rpm]# rpm -qf  /usr/lib/libapr-1.so.0apr-1.2.7-11[[email protected] rpm]# [[email protected] rpm]# rpm -qc apr[[email protected] rpm]# man rpm[[email protected] rpm]# rpm -qd apr/usr/share/doc/apr-1.2.7/CHANGES/usr/share/doc/apr-1.2.7/LICENSE/usr/share/doc/apr-1.2.7/NOTICE



5.升級RPM

rpm -Uvh PATH_NEW_PACKAGE  如果系統上本身裝有老版本的,升級,否則安裝。

rpm -Fvh PATH_NEW_PACKAGE  如果系統上本身裝有老版本的,升級,否則退出。

rpm -Uvh --oldpackage  就是要降級安裝【比如我們軟體升級後,發現不好使了】

指定新版本的RPM包位置即可。


6.卸載RPM

卸載:

rpm -e PACKAGENAME

注意,如果這個軟體包是其他軟體包的依賴的話,卸載時會阻止你,當然你可以進行強制卸載--nodeps。


7.校正RPM

由於我們所下載的RPM是來自互連網的,這個檔案有沒有被改過呢?怎麼判斷呢?必須有一種機制來進行校正。

rpm -V packagename

也就是在我們完成安裝RPM後,即可使用校正機制。

 S file Size differs

 M Mode differs (includes permissions and file type)

 5 MD5 sum differs

 D Device major/minor number mismatch

 L readLink(2) path mismatch

 U User ownership differs

 G Group ownership differs

 T mTime differs

用上述8個位來進行表示變化。



其他說明:

檢查來源合法性,及軟體完整性:

首先,這個軟體包的作者或者公司,會公布一個密鑰,就是一個檔案

我們應匯入它:

rpm --import  xxxfile

然後進行校正

rpm -k package_path



8.關於RPM資料庫

rpm --rebuilddb  一定會重建立立

rpm --initdb  初始化資料庫,沒有則建立。有,不做處理。


本文出自 “我想超越自我” 部落格,請務必保留此出處http://zhangfengzhe.blog.51cto.com/8855103/1440478

Linux軟體管理之RPM

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.