RPM 命令大全及實例說明

RPM 是 Red Hat Package Manager 的縮寫,本意是Red Hat 軟件包管理,顧名思義是Red Hat 貢獻出來的軟件包管理;在Fedora 、Redhat、Mandriva、SuSE、YellowDog等主流發行版本,以及在這些版本基礎上二次開發出來的發行版採用;一個RPM 包中的應用程序,有時除了自身所帶的附加文件保證其正常以外,還需要其它特定版本文件,這就是軟件包的依賴關係;

RPM包管理的用途

1、可以安裝、刪除、升級和管理軟件;當然也支持在線安裝和升級軟件;
2、通過RPM包管理能知道軟件包包含哪些文件,也能知道系統中的某個文件屬於哪個軟件包;
3、可以在查詢系統中的軟件包是否安裝以及其版本;
4、作爲開發者可以把自己的程序打包爲RPM 包發佈;
5、軟件包簽名GPG和MD5的導入、驗證和簽名發佈
6、依賴性的檢查,查看是否有軟件包由於不兼容而擾亂了系統;

RPM 的使用權限

RPM軟件的安裝、刪除、更新只有root權限才能使用;對於查詢功能任何用戶都可以操作;如果普通用戶擁有安裝目錄的權限,也可以進行安裝;

RPM 的用法

我們除了軟件包管理器以外,還能通過rpm 命令來安裝;是不是所有的軟件包都能通過rpm 命令來安裝呢?不是的,文件以.rpm 後綴結尾的才行;

1. 初始化RPM數據庫

通過rpm 命令查詢一個rpm 包是否安裝了,也是要通過rpm 數據庫來完成的;所以我們要經常用下面的兩個命令來初始化rpm 數據庫;

# rpm --initdb
# rpm --rebuilddb 注:這個要花好長時間;

注:這兩個參數是極爲有用,有時rpm 系統出了問題,不能安裝和查詢,大多是這裏出了問題;

2. RPM軟件包查詢

命令格式  rpm {-q|--query} [select-options] [query-options]

RPM的查詢功能是極爲強大,是極爲重要的功能之一;舉幾個常用的例子,更爲詳細的具體的,請參考#man rpm;

2.1 查詢系統已安裝的軟件

# 查詢系統已安裝的軟件,語法:rpm -q 軟件名
[root@localhost ~]# rpm -q gaim
gaim-1.3.0-1.fc4
# -q就是 --query,查看系統中所有已經安裝的包,要加 -a 參數
[root@localhost ~]# rpm -qa
# 如果分頁查看,再加一個管道|和more命令
[root@localhost ~]# rpm -qa |more
# 在所有已經安裝的軟件包中查找某個軟件,比如說gaim,可以用 grep 抽取出來
[root@localhost ~]# rpm -qa |grep gaim
# 上面這條的功能和 rpm -q gaim 輸出的結果是一樣的
# 查詢一個已經安裝的文件屬於哪個軟件包,語法 rpm -qf 文件名(注:文件名所在的絕對路徑要指出)
[root@localhost ~]# rpm -qf /usr/lib/libacl.la
libacl-devel-2.2.23-8
# 查詢已安裝軟件包都安裝到何處,語法:rpm -ql 軟件名
[root@localhost ~]# rpm -ql lynx
# 查詢一個已安裝軟件包的信息,語法: rpm -qi 軟件名
[root@localhost ~]# rpm -qi lynx
# 查看一下已安裝軟件的配置文件,語法:rpm -qc 軟件名
[root@localhost ~]# rpm -qc lynx
# 查看一個已經安裝軟件的文檔安裝位置,語法: rpm -qd 軟件名
[root@localhost ~]# rpm -qd lynx
# 查看一下已安裝軟件所依賴的軟件包及文件,語法: rpm -qR 軟件名
[root@localhost ~]# rpm -qR rpm-python
# 查詢已安裝軟件,我們可以把一系列的參數組合起來用
[root@localhost ~]# rpm -qil lynx

2.2 查看未安裝的軟件包

查看的前提是.rpm 的文件,也就是說對既有軟件file.rpm的查看等;
# 查看軟件包的用途、版本等信息,語法: rpm -qpi file.rpm
[root@localhost ~]# rpm -qpi lynx-2.8.5-23.i386.rpm
# 查看軟件包所包含的文件,語法: rpm -qpl file.rpm
[root@localhost ~]# rpm -qpl lynx-2.8.5-23.i386.rpm
# 查看軟件包的文檔所在的位置,語法: rpm -qpd file.rpm
[root@localhost ~]# rpm -qpd lynx-2.8.5-23.i386.rpm
# 查看軟件包的配置文件,語法: rpm -qpc file.rpm
[root@localhost ~]# rpm -qpc lynx-2.8.5-23.i386.rpm
# 查看軟件包的依賴關係,語法: rpm -qpR file.rpm
[root@localhost ~]# rpm -qpR yumex_0.42-3.0.fc4_noarch.rpm
/bin/bash
/usr/bin/python
config(yumex) = 0.42-3.0.fc4
pygtk2
pygtk2-libglade
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
usermode
yum >= 2.3.2

3. 軟件包的安裝、升級、刪除

3.1 安裝和升級一個rpm包

[root@localhost ~]#rpm -vih file.rpm 注:這個是用來安裝一個新的rpm 包;
[root@localhost ~]#rpm -Uvh file.rpm 注:這是用來升級一個rpm 包; 
如果有依賴關係的,請解決依賴關係,其實軟件包管理器能很好的解決依賴關係,請看前面的軟件包管理器的介紹;如果您在軟件包管理器中也找不到依賴關係的包;那隻能通過編譯他所依賴的包來解決依賴關係,或者強制安裝; 

語法結構:
[root@localhost ~]# rpm -ivh file.rpm --nodeps --force
[root@localhost ~]# rpm -Uvh file.rpm --nodeps --force
 
舉例應用:
[root@localhost ~]# rpm -ivh lynx-2.8.5-23.i386.rpm
Preparing... ########################################### [100%]
      1:lynx ########################################### [100%]
[root@localhost ~]# rpm -ivh --replacepkgs lynx-2.8.5-23.i386.rpm
Preparing... ########################################### [100%]
      1:lynx ########################################### [100%]
注:--replacepkgs 參數是以已安裝的軟件再安裝一次; 測試安裝參數 --test,用來檢查依賴關係;
[root@localhost ~]# rpm -ivh --test gaim-1.3.0-1.fc4.i386.rpm
Preparing... ########################################### [100%]
 
由新版本降級爲舊版本,要加 --oldpackage 參數;
[root@localhost ~]# rpm -qa gaim
gaim-1.5.0-1.fc4
[root@localhost ~]# rpm -Uvh --oldpackage gaim-1.3.0-1.fc4.i386.rpm
Preparing... ########################################### [100%]
      1:gaim ########################################### [100%]
[root@localhost ~]# rpm -qa gaim
gaim-1.3.0-1.fc4
 
爲軟件包指定安裝目錄:要加 -relocate 參數;下面的舉例是把gaim-1.3.0-1.fc4.i386.rpm指定安裝在 /opt/gaim 目錄中; 
[root@localhost ~]# rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm
Preparing... ########################################### [100%]
      1:gaim ########################################### [100%]
 
爲軟件包指定安裝目錄:要加 -relocate 參數;下面的舉例是把lynx-2.8.5-23.i386.rpm 指定安裝在 /opt/lynx 目錄中; 
[root@localhost ~]# rpm -ivh --relocate /=/opt/lynx --badreloc lynx-2.8.5-23.i386.rpm
Preparing... ########################################### [100%]
1:lynx ########################################### [100%]
 
我們安裝在指定目錄中的程序如何調用呢?一般執行程序,都放在安裝目錄的bin或者sbin目錄中;看下面的例子,如果有錯誤輸出,就做相應的鏈接,用 ln -s ;
 
[root@localhost ~]# /opt/lynx/usr/bin/lynx
Configuration file /etc/lynx.cfg is not available.
[root@localhost ~]# ln -s /opt/lynx/etc/lynx.cfg /etc/lynx.cfg
[root@localhost ~]# /opt/lynx/usr/bin/lynx www.linuxsir.org

3.2 刪除一個rpm包

語法格式:rpm -e 軟件包名 
舉例: 
[root@localhost ~]# rpm -e lynx
注:如果有依賴關係,可以用--nodeps 忽略依賴的檢查來刪除。但儘可能不要這麼做,最好用軟件包管理器 systerm-config-packages 來刪除或者添加軟件;
[root@localhost ~]# rpm -e lynx --nodeps

4. 導入簽名

語法格式: rpm --import 簽名文件 

舉例:
 
[root@localhost ~]# rpm --import RPM-GPG-KEY
[root@localhost ~]# rpm --import RPM-GPG-KEY-fedora
 
注:關於RPM的簽名功能,詳情請參見 man rpm

5. RPM管理包管理器支持網絡安裝和查詢

命令格式:rpm 參數 rpm包文件的http或者ftp的地址

舉例:通過 Fedora 的一個鏡像查詢、安裝軟件包
# rpm -qpi http://mirrors.kernel.org/fedora/core/4/i386/os/Fedora/RPMS/gaim-1.3.0-1.fc4.i386.rpm
# rpm -ivh http://mirrors.kernel.org/fedora/core/4/i386/os/Fedora/RPMS/gaim-1.3.0-1.fc4.i386.rpm

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章