rpm包軟件管理
一、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包軟件管理