linux之rpm基本概述


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM