rpm包的管理
一、rpm包的介紹
簡介
rpm全稱是“redhat package manager”,最早是redhat公司開發的,後來在centos、fedora、suse都用它。而rpm包則是軟體編譯完成後按照rpm機制打包起來的一個檔案,可以用rpm指令安裝的一個軟體安裝包,它省去了linux軟體安裝中編譯的步驟,安裝成功後軟體就可以用了。
二、常見軟體封包的類型

三、包的常見安裝位置
四、指令操作
1.查詢已經安裝的rpm包
查詢已安裝的RPM軟體包的資訊
格式: rpm -q [子選項] [軟體名稱] .
常用的子選項
--a:列出已安裝的所有軟體包
-i:檢視指定軟體的詳細資訊-
-l:檢視指定軟體的檔案安裝清單
// 查詢安裝的httpd服務
[root@www ~]# rpm -qa | grep httpd
httpd-tools-2.4.6-88.el7.centos.x86_64
httpd-2.4.6-88.el7.centos.x86_64
[root@www ~]# rpm -q httpd
httpd-2.4.6-88.el7.centos.x86_64
[root@www ~]# rpm -q bash
bash-4.2.46-31.el7.x86_64
// 檢視詳細資訊
[root@www ~]# rpm -qi httpd
Name : httpd
Version : 2.4.6
Release : 88.el7.centos
Architecture: x86_64
Install Date: Tue 21 Dec 2021 02:58:38 AM CST
Group : System Environment/Daemons
Size : 9817309
License : ASL 2.0
Signature : RSA/SHA256, Mon 12 Nov 2018 10:28:53 PM CST, Key ID 24c6a8a7f4a80eb5
Source RPM : httpd-2.4.6-88.el7.centos.src.rpm
Build Date : Mon 05 Nov 2018 09:48:57 AM CST
Build Host : x86-01.bsys.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem <http://bugs.centos.org>
Vendor : CentOS
URL : http://httpd.apache.org/
Summary : Apache HTTP Server
Description :
The Apache HTTP Server is a powerful, efficient, and extensible
web server.
// 檢視軟體的檔案安裝清單
[root@www ~]# rpm -ql httpd
/etc/httpd
/etc/httpd/conf
/etc/httpd/conf.d
/etc/httpd/conf.d/README
/etc/httpd/conf.d/autoindex.conf
.......
2.查詢軟體的目錄是由哪個軟體帶來的
// 查詢某個目錄/檔案是哪個RPM包帶來的
– 格式:rpm -qf [檔案路徑]…
– 即使目标檔案被删除,也可以查詢
[root@localhost ~]# which vim #查詢指令對應的程式檔案
/usr/bin/vim
[root@localhost ~]# rpm -qf /usr/bin/vim
vim-enhanced-7.4.160-4.el7.x86_64
[root@localhost ~]# rpm -q vim-enhanced
vim-enhanced-7.4.160-4.el7.x86_64
3.導入紅帽的簽名資訊
在以前,軟體包可能會藏有木馬檔案,為了安全,将軟體進行了重新封裝,并且加了一個紅帽的簽名,這個簽名是加密生成的
// 導入紅帽簽名資訊
[root@localhost ~]# rpm --import /mnt/RPM-GPG-KEY-CentOS-7
查詢軟體包資訊
[root@localhost ~]# rpm -qpi /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
4.安裝rpm軟體包
安裝RPM軟體
格式:rpm -i RPM封包件...
注意: i 必須要放在最前面
輔助選項
-v:顯示細節資訊
-h:以#号顯示安裝進度
--force:強制安裝、覆寫安裝
--test:測試安裝,不做真實安裝動作
[root@localhost ~]# rpm -q vsftpd
#查詢目前的系統是否安裝了該軟體
[root@localhost ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
[root@localhost ~]# rpm -evh vsftpd
#解除安裝軟體
[root@localhost ~]# rpm -q vsftpd
#查詢目前的系統是否安裝了該軟體
顯示未安裝軟體包 vsftpd
--force:強制安裝、覆寫安裝
[root@localhost ~]# which hostname
[root@localhost ~]# rm -rf /usr/bin/hostname
[root@localhost ~]# hostname
bash: hostname: 未找到指令...
[root@localhost ~]# rpm -qf /usr/bin/hostname
# 檢視由哪個軟體包産生
hostname-3.13-3.el7.x86_64
[root@localhost ~]# rpm -ivh --force /mnt/Packages/hostname-3.13-3.el7.x86_64.rpm