1.RPM基本概述
- 什么是rpm?
RPM全稱 RPM Package Manager 縮寫,由紅帽開發用於軟件包的安裝升級卸載與查詢.
- 2,rpm包名組成部分?
RPM包命名以-將軟件分成了若干部分bash-4.2.46-28.el7.x86_64.rpm
- 3,如何獲取rpm包
在我們剛開始學習rpm包,建議先使用本地CentOS7的鏡像,但實際生產環境中都是通過聯網的方式獲取rpm包。
我們先通過虛擬機加載鏡像,然后在linux中執行 mount /dev/cdrom /mnt,此時你會在/mnt/Packages目錄下看到很多rpm的包文件。那么就可以開始rpm包管理之旅。
- 4,Linux中除了rpm安裝軟件,是否還有其他的安裝軟件方式呢?
分類 | 安裝 | 版本 |
---|---|---|
rpm包 | 預先編譯打包,安裝簡單 | 軟件版本偏低 |
源碼包 | 手動編譯打包,安裝繁瑣 | 軟件版本隨意 |
二進制包 | 解壓即可使用,安裝簡單 | 不能修改源碼 |
2,RPM使用示例
- 1,rpm包如何安裝
以下列出了rpm命令進行安裝軟件的常用參數
選項 | 描述 |
---|---|
-i | 安裝rpm |
-v | 顯示安裝相信信息 |
-h | 顯示安裝rpm進度 |
--force | 強制重新安裝 |
--nodeps | 忽略依賴關系 |
#安裝軟件包, 需要指定軟件包絕對路徑
[root@carol ~]# rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
[root@carol ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
#在軟件包所在目錄下可以不指定絕對路徑
[root@carol ~]# cd /mnt/Packages/
[root@carol Packages]# rpm -ivh zsh-5.0.2-28.el7.x86_64.rpm
#如果軟件包存在, 強制再次安裝
[root@carol ~]# rpm -ivh --force /mnt/Packages/tree-1.5.3-3.el6.x86_64.rpm
#安裝samba服務需要依賴其他組件, 使用--nodeps可重新強制安裝
[root@carol ~]# rpm -ivh --nodeps /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
- 2,如何查詢已安裝好的rpm包
選項 | 描述 |
---|---|
rpm -q | 查看指定軟件包是否安裝 |
rpm -qa | 查看系統中已安裝的所有RPM軟件包列表 |
rpm -qi | 查看指定軟件的詳細信息 |
rpm -ql | 查詢指定軟件包所安裝的目錄、文件列表 |
rpm -qc | 查詢指定軟件包的配置文件 |
rpm -qf | 查詢文件或目錄屬於哪個RPM軟件 |
rpm -qip | 查詢未安裝的rpm包詳細信息 |
rpm -qlp | 查詢未安裝的軟件包會產生哪些文件 |
#查詢vsftpd這個rpm包是否安裝
[root@carol ~]# rpm -q vsftpd
#模糊查找系統已安裝的rpm包
[root@carol ~]# rpm -qa |grep ftp
#查詢vsftpd軟件包的相關信息
[root@carol ~]# rpm -qi vsftpd
#查詢rpm包所安裝的文件
[root@carol ~]# rpm -ql vsftpd
#查詢rpm包相關的配置文件
[root@carol ~]# rpm -qc vsftpd
#查詢配置文件或命令來自於哪個rpm包
[root@carol ~]# rpm -qf /etc/vsftpd/vsftpd.conf
[root@carol ~]# rpm -qf /usr/sbin/vsftpd
#查詢未安裝的軟件包會產生哪些文件
[root@carol ~]# rpm -qlp /mnt/Packages/samba-3.6.23-41.el6.x86_64.rpm
#查詢未安裝的軟件包會產生哪些文件
[root@carol ~]# rpm -qip /mnt/Packages/samba-3.6.23-41.el6.x86_64.rpm
- 3.RPM包升級
#查詢vsftpd這個rpm包是否安裝
[root@carol ~]# rpm -q vsftpd
#模糊查找系統已安裝的rpm包
[root@carol ~]# rpm -qa |grep ftp
#查詢vsftpd軟件包的相關信息
[root@carol ~]# rpm -qi vsftpd
#查詢rpm包所安裝的文件
[root@carol ~]# rpm -ql vsftpd
#查詢rpm包相關的配置文件
[root@carol ~]# rpm -qc vsftpd
#查詢配置文件或命令來自於哪個rpm包
[root@carol ~]# rpm -qf /etc/vsftpd/vsftpd.conf
[root@carol ~]# rpm -qf /usr/sbin/vsftpd
#查詢未安裝的軟件包會產生哪些文件
[root@carol ~]# rpm -qlp /mnt/Packages/samba-3.6.23-41.el6.x86_64.rpm
#查詢未安裝的軟件包會產生哪些文件
[root@carol ~]# rpm -qip /mnt/Packages/samba-3.6.23-41.el6.x86_64.rpm
- 4.RPM包升級
選項 | 描述 |
---|---|
rpm -U | 如果老版本不存在則全新安裝,如果存在有新版即升級 |
# wget https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.9-1.el7.x86_64.rpm
# wget https://mirrors.aliyun.com/zabbix/zabbix/4.2/rhel/7/x86_64/zabbix-agent-4.2.0-1.el7.x86_64.rpm
#1.先安裝低版本
[root@www.carol.com ~]# rpm -ivh zabbix-agent-3.0.9-1.el7.x86_64.rpm
#2.嘗試安裝高版本(會出現錯誤)
[root@www.carol.com ~]# rpm -ivh zabbix-agent-4.2.0-1.el7.x86_64.rpm
#3.使用升級的方式,完美解決替換
[root@www.carol.com ~]# rpm -Uvh zabbix-agent-4.2.0-1.el7.x86_64.rpm
- 5.RPM包卸載
卸載包時需要先把依賴的包卸載掉,如果依賴的包是系統所必須的,那就不能卸載這個包,否則會造成系統崩潰。
#先查詢, 然后卸載
[root@www.carol.com ~]# rpm -qa |grep sh
[root@www.carol.com ~]# rpm -e zsh
- RPM包校驗
軟件相關的數據庫存放於/var/lib/rpm目錄
參數 | 描述 |
---|---|
S | 文件的容量大小是否被改變 |
M | 文件的類型或者文件的屬性是否被修改 |
5 | MD5 這一種指紋加密的內容已經不同 |
L | 路徑已經被改變 |
U | 文件的所屬主已被修改 |
G | 文件的所屬組已被修改 |
T | 文件的創建時間已被改變 |
[root@carol.com ~]# rpm -V vsftpd
S.5....T. c /etc/pam.d/vsftpd
.......T. c /etc/vsftpd/ftpusers
S.5....T. c /etc/vsftpd/vsftpd.conf
.M....... /var/ftp/pub