Linux程序包管理之RPM

前言


Linux平臺上常見的軟件包格式主要有三種,分別是源碼格式包、通用二進制格式包和rpm格式包本文主要講解rpm格式包安裝及管理。RPM是Redhat Package Manager的縮寫,是由Redhat公司開發的Linux軟件包管理具,因其便捷的管理方式與開源思想,逐漸被其他Linux發行商所采用,現已成Linux平臺下通用的軟件包管理方式。

rpm包的命名格式


name-version-release.arch.rpm

name:軟件包名字

version:由主版本號.次版本號.發行號組成(同源代碼包)

主版本號改變:重大改進

次版本號改變:某個子功能發生重大變化

發行號改變:修正了部分bug,調整了一點功能

release:rpm自身的發行號,與程序源碼的發行號無關,僅用于標識對rpm包不同制作的修訂;同時,release還包含此包適用的OS

arch:適用硬件平臺

例如:httpd-2.2.15-39.el6.x86_64.rpm

一個程序有20個功能:常用功能有8個,特殊A:3個,特殊B:6個,二次開發相關功能:3個,而rpm包可能只包含其中的幾個,所以如果有需要還需手動編譯,在此略提一下。

分包機制


核心包,主包命名方式與源程序一致:

例如:httpd-2.2.15-39.el6.x86_64.rpm

子包:httpd-tools-2.2.15-39.el6.x86_64.rpm

OS Vendor: 系統發行商提供的包

獲取rpm包的途徑

1、發行的光盤或站點服務器

鏡像:

http://mirrors.163.com

http://mirrors.sohu.com

2、項目的官網

源代碼

rpm包

3、第三方機構或個人制作并公開發布的rpm包

http://rpmfind.net

http://rpm.pbone.net

可靠的途徑:EPEL

Fedora-EPEL

rpm包的合法性驗正


包的制作者使用單向加密提取原始數據的特征碼,而后使用自己的私鑰加密這段特性碼,附加原始數據后面。通過驗證可得知:rpm包來源合法性和完整性。

驗正過程:

前提:必須通過可靠途徑獲取到包制作者的公鑰。

1、使用制作者的公鑰解密加密的特征碼,能解密則意味著來源合法。

2、使用與制作者同樣的單向加密算法提取原始數據的特征碼,并與解密出來的特征作比對,相同,則意味著軟件包完整。

導入:
rpm --import /path/to/key_file  #導入公鑰
rpm -qa gpg-pubkey*             #顯示所有已經導入的gpg格式的公鑰
rpm -qi gpg-pubkey-NAME         #顯示密鑰詳細信息
檢查包:安裝過程中會自動執行
手動檢查:
rpm -K /path/to/package_file
rpm --checksig /path/to/package_file
rpm -K --nodigest              #不檢查包完整性
rpm -K --nosignature           #不檢查來源合法性[object Object]

1.jpg

RPM管理之安裝


命令格式:

rpm [option] /path/to/package_file 

-i:安裝
-v:顯示詳細信息         #想更詳細顯示可用-vv -vvv
-h:顯示安裝進度        #一個“#”代表2%
-ivh:一般組合使用
--test:測試安裝
--nodepes:忽略依賴關系  #能安裝上,但可能無法運行
--replacepkgs:重新安裝 #如果原有配置文件作了修改,很有可能不執行替換,而是將生成的配置文件重命名為 .rpmnew

2.jpg

RPM管理之卸載


命令格式:

rpm [option] package_name

-e:卸載
--nodeps:忽略依賴關系  #能卸載,但依賴于此包程序包可能會運行不正常(建議一并卸載)

3.jpg

RPM管理之升級


-Uvh:升級或安裝       #如果軟件包沒有安裝則安裝;否則,升級

-Fvh:升級             #需要升級的軟件包必須已經安裝
--force: 強制升級      #升級后可能存在版本沖突
注意:內核不應該直接升級,而是安裝,系統允許多內核并存

RPM管理之查詢


命令格式:

rpm [option] package_name

rpm -q package_name:查詢某包是否安裝

4.jpg

rpm -qa:查詢所有已經安裝的包
按條件過濾:rpm -qa | grep 'PATTERN'

5.jpg

rpm -qi package_name:查詢包的描述信息

6.jpg

rpm -ql package_name:查詢某包安裝生成了哪些文件
rpm -qc package_name:查詢某包安裝生成了哪些配置文件
rpm -qd package_name:查詢某包安裝生成了哪些幫助文件

7.jpg

rpm -q --scripts package_name:查詢程序包的相關腳本
#腳本有四類:
preinstall:安裝前腳本
postinstall: 安裝后腳本
preuninstall: 卸載前腳本
postuninstall: 卸載后腳本
#

8.jpg

rpm -qf /path/to/some_file:查詢某文件是由哪個包安裝生成的

9.jpg

rpm {-qpi|-qpl|-qpc|-qpd} /path/to/package_file:對尚未安裝的包執行查詢

10.jpg

RPM管理之校驗


命令格式:

rpm [option] package_name

rpm -V package_name:檢查包安裝生成的文件屬性是否發生變化
#校驗已安裝的包的文件與保存在rpm數據庫里的包的元數據,如果相同無任何顯示,
#如果不同則顯示改變的地方,下面是每個字符代表的意義:
#S file Size differs
#M Mode differs (includes permissions and file type)
#5 digest (formerly 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
#P caPabilities differ
#手動改變httpd的文件

11.jpg

RPM管理之數據庫重建


數據庫目錄:/var/lib/rpm

如果rpm的數據庫損壞,會導致查詢等相關操作無法正常進行,這時就需要重建數據庫。

rpm --initdb:初始化   #如果事先沒有數據庫,會創建一個;如果有,則不創建
rpm --rebuilddb: 重建  #直接重建,覆蓋原有的數據庫

The end


好了,RMP管理就總結到這里,希望對新手有所幫助,以上僅個人學習整理,如有錯漏,大神勿噴~~~

原創文章,作者:書生,如若轉載,請注明出處:http://www.www58058.com/1780

(0)
書生書生
上一篇 2015-03-27 23:25
下一篇 2015-03-28 23:34

相關推薦

  • Linux基礎

    Linux基礎

    Linux干貨 2017-12-04
  • Linux文件管理&bash特性

    Linux上的文件管理命令 目錄管理命令: mkdir:make directories mkdir [OPTION]… DIRECTORY… -p: 自動按需創建父目錄; -v: verbose,顯示詳細過程; -m MODE:直接給定權限; 注意:路徑基名方為命令的作用對象;基名之前的路徑必須得存在; r…

    Linux干貨 2016-09-28
  • Heartbeat-Gui V2 實現HA LAMP 搭建wordpress博客

    環境:           N F S: 172.16.0.3 (OS CentOS 7)           node1:172.16.0.5 (OS CentOS 6.7)    &nb…

    Linux干貨 2016-10-27
  • Linux基礎命令之文本命令

    關于文本的命令:     1.文件查看命令:        a.cat:查看文件,實現參數給的內容一個個顯示出來            -n:顯示行號(顯示的空行的行號)          …

    Linux干貨 2016-08-07
  • 第十周-Centos啟動流程及Shell腳本編程

    一、CentOS啟動流程 POST –> Boot Sequence(BIOS) –> Boot Loader (MBR) –> Kernel(ramdisk) –> rootfs –> switchroot –> /sbin/init –…

    2017-10-14
  • 走向了一條不歸路 – – 開始

    前言:很高興在這里認識大家,跟大家一起學習一起進步。  基礎知識 1.計算機系統的組成 2.計算機的體系結構 3.存儲網絡 DAS–直接連接存儲   (數據塊)   存儲設備與主機的緊密相連       1.管理成本較低,實施簡單   &…

    2017-07-16

評論列表(2條)

  • stanley
    stanley 2015-03-28 22:48

    總結的有點有面,看起來也美觀大氣,不錯

  • Asuka
    Asuka 2015-03-30 12:10

    很詳細,而且排版看著也很舒服

欧美性久久久久