1. 程式人生 > >rpm包軟件管理

rpm包軟件管理

oot ima 提取 修復 x86 .net 不可 適合 client

一、rpm介紹

linux服務器中所有的軟件包安裝方式有兩種,一種是源碼安裝、另一種是二進制包安裝(rpm)源碼包安裝的好處是適合不同的發行版本的linux,缺點是在編譯過程中花費的時間很長,二進制包安裝的特點是安裝速度快,但缺點是32位的服務器不能安裝64位服務器的安裝包等。

二、rpm包包命名及依賴

1、命名規則

openssh-clients-6.6.1p1-.el7.x86_64.rpm

openssh-clients 包名

6.6.1p1 版本號

31 發行次數

el7 適合的linux平臺

x86_64 適合的硬件平臺

rpm rpm包擴展名

如下圖所示幾乎都遵循了這個命名規則

技術分享圖片

2、rpm包依賴

樹形依賴:a-b-c 安裝時先安裝c-b-a 卸載時先卸載a-b-c

環形依賴:a-b-c-a

模塊依賴: 模塊依賴查詢網址http://rpmfind.net

技術分享圖片

技術分享圖片

三 rpm包命令

查詢rpm包

rpm -q httpd

技術分享圖片

rpm -qa 查詢所有安裝的rpm包 (-q 是查詢 -a是查詢所有)

技術分享圖片

查詢包信息

rpm -qi httpd

技術分享圖片

查詢rpm包的安裝位置

rpm -ql httpd

技術分享圖片

查詢系統文件屬於哪個rpm包(註意文件名必須是通過rpm包生成的,自己新建的無效)

rpm -qf 文件名

技術分享圖片

查詢rpm包所有的依賴關系

rpm -qR httpd

技術分享圖片

查詢沒有安裝的rpm包的依賴關系

rpm -qRp 包全名

四、rpm包校驗

該功能可以查詢rpm包是否被別人進行過修改,如果查詢沒有任何信息輸出證明是是官方最原始的安裝信息

rpm -V 包名

rpm -V httpd

rpm包的驗證內容中的信息內容如下:

S 文件大小是否改變

M 文件的類型或權限是否改變

5 文件的MD5效驗和是否改變(可以看成文件內容是否改變)

D 設備中的代碼是否改變

L 文件路徑是否改變

U 文件屬主是否改變

G 文件屬組是否改變

T 文件的修改時間是否改變

文件類型

c 配置文件

d 普通文件

g 鬼文件(該文件不應該在rpm包中出現)

l 授權文件

r 描述文件

五、rpm包中文件提取

該功能是在文件誤刪除或誤修改後,不需要對軟件重新安裝只需要從rpm包中重新提取覆蓋即可

例如我把/bin/ls 下的文件刪除了,導致我們的ls不可用這種情況我們不需重新安裝只需要知道ls是屬於哪個rpm包並還原即可

演示如下:

1、先找到ls 是屬於哪個rpm包

rpm -qf /bin/ls

2、/bin/ls的文件移動到/tmp (模擬ls文件被刪除或損壞)

mv /bin/ls /tmp/

3、提取

rpm2cpio /mnt/coreutils-8.4-46.el6.i686 | cpip -idv ./bin/ls

4、把ls命令復制到/bin目錄下修復損壞的文件

cp /root/bin/ls /bin/

rpm包軟件管理