首頁 > 軟體

CentOS下rpm命令簡述

2020-06-16 17:03:39

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


IT145.com E-mail:sddin#qq.com