[toc] linux軟體管理 RPM RPM的基礎概述 rpm:RPM全稱 縮寫,由紅帽開發用於軟體包的安裝,升級卸載與查詢 rpm包的命名規則 name: 軟體包名稱 version: 版本號, 主版本, 重大更新. 次版本, 子功能更新. 修訂號, 修複bug release: 發佈版本 el ...
目錄
linux軟體管理-RPM
RPM的基礎概述
rpm:RPM全稱RPM Package Manager
縮寫,由紅帽開發用於軟體包的安裝,升級卸載與查詢
rpm包的命名規則
name: 軟體包名稱
version: 版本號, 主版本, 重大更新. 次版本, 子功能更新. 修訂號, 修複bug
release: 發佈版本 el6, el7 (hostnamectl)
arch: 系統平臺, i386、x86_64(hostnamectl)
rpm包的組成
安裝釋放的文件
軟體包的元數據(版本,發佈號,架構,描述,要求,更改日誌等)
腳本:安裝前執行的腳本和安裝後的腳本
Linux中軟體包類型
分類 | 安裝 | 版本 |
---|---|---|
rpm包 | 預先編譯打包,安裝簡單 | 軟體版本偏低 |
源碼包 | 手動編譯打包,安裝繁瑣 | 軟體版本隨意 |
二進位包 | 解壓即可使用, 安裝簡單 | 不能修改源碼 |
註意:不管是源碼包,還是二進位包,安裝時都可能會有依賴關係
RPM軟體包的獲取途徑
1.RedHat
光碟或官方網站 (通過掛載的方式訪問)
2.RPM
查詢官網網站
3.Nginx
軟體官方網站
4.MySQL
軟體官方網站
linux執行mount/dev/cdrom/mnt
[root@localhost ~]# mount /dev/cdrom /mnt/
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@localhost ~]# ls /mnt/
CentOS_BuildTag Packages RPM-GPG-KEY-CentOS-Security-6
EULA RELEASE-NOTES-en-US.html RPM-GPG-KEY-CentOS-Testing-6
GPL repodata TRANS.TBL
images RPM-GPG-KEY-CentOS-6
isolinux RPM-GPG-KEY-CentOS-Debug-6
[root@localhost ~]# ls /mnt/Packages/|head
RPM包安裝管理
rpm參數
-i: #安裝
-v: #詳細信息
-h: #安裝進度
--test: #測試是否能夠安裝成功
--force: #強制重新安裝
--nodeps: #忽略依賴關係
#安裝軟體包, 需要指定軟體包絕對路徑
[root@zls ~]# rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
[root@zls ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
#在軟體包所在目錄下可以不指定絕對路徑
[root@zls ~]# cd /mnt/Packages/
[root@zls Packages]# rpm -ivh zsh-5.0.2-28.el7.x86_64.rpm
#測試一個軟體包是否能在該系統上安裝
[root@zls ~]# rpm -ivh --test /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
#如果軟體包存在, 強制再次安裝
[root@zls ~]# rpm -ivh --force /mnt/Packages/tree-1.5.3-3.el6.x86_64.rpm
#安裝samba服務需要依賴其他組件, 使用--nodeps可重新強制安裝
[root@zls ~]# rpm -ivh --nodeps /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
rpm包查詢命令
rpm -q #查看指定軟體包是否安裝
rpm -qa #查看系統中已安裝的所有RPM軟體包列表
rpm -qi #查看指定軟體的詳細信息
rpm -ql #查詢指定軟體包所安裝的目錄、文件列表
rpm -qc #查詢指定軟體包的配置文件
rpm -qd #查詢指定軟體包的幫助文檔
rpm -qf #查詢文件或目錄屬於哪個RPM軟體
rpm -q --scripts #查詢rpm包安裝前和安裝後執行的腳本
#查詢未安裝的軟體包信息
rpm -qip //查詢未安裝的rpm包詳細信息
rpm -qlp //查詢未安裝的軟體包會產生哪些文件
#查詢vsftpd這個rpm包是否安裝
[root@zls ~]# rpm -q vsftpd
#模糊查找系統已安裝的rpm包
[root@zls ~]# rpm -qa |grep ftp
#查詢vsftpd軟體包的相關信息
[root@zls ~]# rpm -qi vsftpd
#查詢rpm包所安裝的文件
[root@zls ~]# rpm -ql vsftpd
#查詢rpm包相關的配置文件
[root@zls ~]# rpm -qc vsftpd
#查詢配置文件或命令來自於哪個rpm包
[root@zls ~]# rpm -qf /etc/vsftpd/vsftpd.conf
[root@zls ~]# rpm -qf /usr/sbin/vsftpd
//查詢未安裝的軟體包會產生哪些文件
[root@zls ~]# rpm -qlp /mnt/Packages/samba-3.6.23-41.el6.x86_64.rpm
//查詢未安裝的軟體包會產生哪些文件
[root@zls ~]# rpm -qip /mnt/Packages/samba-3.6.23-41.el6.x86_64.rpm
#以上查詢只能查詢已存在 已安裝的包,如果沒有安裝,需要聯網查詢
[root@db04 ~]# yum provides zip
[root@db04 ~]# yum provides */ifconfig
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
base/filelists_db | 6.4 MB 00:00
epel/filelists_db | 7.9 MB 00:00
extras/filelists_db | 24 kB 00:00
updates/filelists_db | 3.6 MB 00:00
net-tools-1.60-114.el6.x86_64 : Basic networking tools
Repo : base
Matched from:
Filename : /sbin/ifconfig
RPM包升級命令
-U如果老版本不存在,就全新安裝,如果存在有新版本即升級
-f老版本必須存在
[root@zls ~]# rpm -Uvh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
RPM包卸載命令
卸載包時需要先把依賴的包卸載掉,如果依賴的包是系統所必須的,那就不能卸載這個包,否則會造成系統崩潰
//先查詢, 然後卸載
[root@zls ~]# rpm -qa |grep sh
[root@zls ~]# rpm -e zsh