2021-05-12 14:32:11
CentOS下rpm命令簡述
rpm,RedHat Package Manager,即為紅帽公司為RHEL開發的專用包管理器,後來更改為RPM Package Manager,類似於GNU專案,使用遞迴命名,GNU's Not Unix.
通用選項
-v 顯示附加資訊
-vv 顯示偵錯資訊
--root 讓RPM將指定的路徑做為"根目錄",這樣預安裝程式和後安
裝程式都會安裝到這個目錄下
--dbpath 設定RPM 資料庫存所在的路徑為
查詢
1.查詢指定的包是否安裝,比如tree
[root@localhost tmp]#rpm -q tree
tree-1.5.3-3.el6.x86_64
#PKG為包全名
rpm -q PKG
2.查詢指定檔案來自於那個安裝包,以/bin/ls檔案為例
[root@localhost Packages]#rpm -qf /bin/ls
coreutils-8.4-43.el6.x86_64
rpm -qf /PATH/TO/FILE
3.查詢包更新資訊
[root@localhost Packages]#rpm -q --changelog tree
* Thu Nov 27 2014 Tim Waugh <twaugh@redhat.com> - 1.5.3-3
- Handle large UID/GID values (bug #1110559).
* Wed Mar 03 2010 Tim Waugh <twaugh@redhat.com> 1.5.3-2
- Added comments to all patches.
...
rpm -q --changelog PKG
4.查詢包後設資料
[root@localhost Packages]#rpm -qi tree
Name : tree Relocations: (not relocatable)
Version : 1.5.3 Vendor: CentOS
Release : 3.el6 Build Date: Wed 14 Jan 2015 08:21:02 PM CST
Install Date: Sat 25 Mar 2017 04:17:05 AM CST Build Host: c6b9.bsys.dev.centos.org
Group : Applications/File Source RPM: tree-1.5.3-3.el6.src.rpm
...
rpm -qi PKG
5.查詢包生成的所有檔案
[root@localhost Packages]#rpm -ql tree
/usr/bin/tree
/usr/share/doc/tree-1.5.3
/usr/share/doc/tree-1.5.3/LICENSE
/usr/share/doc/tree-1.5.3/README
/usr/share/man/man1/tree.1.gz
rpm -ql PKG
6.查詢包相關文件
[root@localhost Packages]#rpm -qd tree
/usr/share/doc/tree-1.5.3/LICENSE
/usr/share/doc/tree-1.5.3/README
/usr/share/man/man1/tree.1.gz
rpm -qd PKG
7.查詢包組態檔
[root@localhost Packages]#rpm -qc bash
/etc/skel/.bash_logout
/etc/skel/.bash_profile
/etc/skel/.bashrc
rpm -qc PKG
8.查詢安裝、解除安裝前後執行的指令碼
[root@localhost Packages]#rpm -q --scripts bash
postinstall scriptlet (using <lua>):
bashfound = false;
shfound = false;
f = io.open("/etc/shells", "r");
if f == nil
then
...
#有四個時間點可以執行指令碼程式:包安裝前、安裝後、解除安裝前以及解除安裝後
安裝
1.安裝rpm程式包,在安裝過程,後面的PKG必須是檔案路徑
[root@localhost Packages]#rpm -ivh gcc- ## 按兩次tab鍵
gcc-4.4.7-17.el6.x86_64.rpm gcc-java-4.4.7-17.el6.x86_64.rpm
gcc-c++-4.4.7-17.el6.x86_64.rpm gcc-objc-4.4.7-17.el6.x86_64.rpm
gcc-gfortran-4.4.7-17.el6.x86_64.rpm gcc-objc++-4.4.7-17.el6.x86_64.rpm
gcc-gnat-4.4.7-17.el6.x86_64.rpm
#安裝
[root@localhost Packages]#rpm -ivh gcc-4.4.7-17.el6.x86_64.rpm
#/PATH/TO/PKG為rpm包的路徑
rpm -ivh /PATH/TO/PKG
2.在安裝過程不執行指令碼
[root@localhost Packages]#rpm -ivh --noscripts tree-1.5.3-3.el6.x86_64.rpm
warning: tree-1.5.3-3.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:tree ########################################### [100%]
rpm -ivh --noscripts PKG
3.覆蓋、替換安裝
[root@localhost Packages]#rpm -ivh --replacepkgs tree-1.5.3-3.el6.x86_64.rpm
warning: tree-1.5.3-3.el6.x86_64.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Preparing... ########################################### [100%]
1:tree ########################################### [100%]
rpm -ivh --replacepkgs PKG
在安裝過程可能出現以來錯誤,如A包依賴於B包,那麼在A包安裝之前,需要先安裝好B包
4.詳細選項
選項 | 含義 |
---|---|
-h | 安裝時以#顯示安裝進度 |
--percent | 以百分比的形式輸出安裝的進度 |
--test | 測試安裝 |
--replacepkgs | 替換屬於其它軟體包的檔案 |
--force | 忽略軟體包及檔案的衝突 |
--noscripts | 不執行預安裝和後安裝指令碼 |
--ignorearch | 不校驗軟體包的結構 |
--ignoreos | 不檢查軟體包執行的作業系統 |
--nodeps | 不檢查依賴性關係 |
解除安裝
1.一般解除安裝
[root@localhost Packages]#rpm -e gcc
rpm -e PKG
2.不執行指令碼解除安裝
[root@localhost Packages]#rpm -e --noscripts tree
rpm -e --noscripts PKG
升級
[root@localhost Packages]#rpm -Uvh tree-1.5.3-3.el6.x86_64.rpm
rpm -Uvh PKG
或
rpm -Fvh PKG
-U和-F選項均可以升級一個包.但是,舊包不存在時,-U選項會安裝新包,而-F選項不安裝新包。
Linux軟體包管理之rpm http://www.linuxidc.com/Linux/2017-02/140277.htm
Linux基礎教學:Linux的rpm包管理 http://www.linuxidc.com/Linux/2016-09/135078.htm
Linux RPM軟體包管理 http://www.linuxidc.com/Linux/2017-10/147268.htm
Linux常用命令之rpm安裝命令 http://www.linuxidc.com/Linux/2017-06/144514.htm
Linux意外之rpm的刪除與恢復 http://www.linuxidc.com/Linux/2017-08/146165.htm
Linux rpm包管理詳述 http://www.linuxidc.com/Linux/2017-09/146902.htm
本文永久更新連結地址:http://www.linuxidc.com/Linux/2017-10/148091.htm
相關文章