日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RPM包及其管理 rpm命令

發布時間:2025/1/21 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RPM包及其管理 rpm命令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、什么是RPM
RPM:RedHat Package Manager? ???//紅帽包管理
如果Linux發行版本是redhat 、redflag 、centos 、fedora 、suse等或者衍生的版本,
那么使用rpm進行軟件管理最適合了。通過rpm可以來對軟件進行安裝、升級、查詢、
驗證及卸載等。被rpm管理的軟件包稱之為“rpm包”,對于該軟件包的文件名包含了
很多有用信息,通常包含了軟件包的名稱、版本信息、操作系統信息、適應的硬件架構
等等,比如:httpd-2.2.3-22.el5.i386.rpm?
2.2.3 是軟件的版本號,22是發行號,i386表示用于Intel x86平臺
二、安裝RPM包
1) 安裝RPM軟件包
rpm命令使用-i(表示安裝)-v(顯示安裝過程)-h(使用#顯示進度條)組合一起使用
比如說安裝httpd-2.2.3-22.el5.i386.rpm該文件包:
[root@51cto Server]#?rpm -ivh httpd-2.2.3-22.el5.i386.rpm
warning: httpd-2.2.3-22.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...? ?? ?? ?? ?? ? ########################################### [100%]
? ?1:httpd? ?? ?? ?? ?? ?? ?########################################### [100%]
//可以看到該軟件包安裝成功,并且使用#顯示安裝過程
2) --force選項與強制安裝
當安裝軟件包的時候,系統提示軟件包已經安裝,無法安裝同版本軟件的時候,有2種
解決辦法:一是先卸載軟件包,然后重新安裝;而是使用--force選項強制安裝。如果
某個已經安裝的軟件出現文件丟失或者損壞的情況,使用--force安裝最好不過了。
現在依舊采用上面的方法重新安裝一遍httpd-2.2.3-22.el5.i386.rpm
[root@51cto Server]#?rpm -ivh httpd-2.2.3-22.el5.i386.rpm
warning: httpd-2.2.3-22.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...? ?? ?? ?? ?? ? ########################################### [100%]
? ?? ???package httpd-2.2.3-22.el5.i386 is already installed
//系統提示說該軟件包已經安裝了
下面采用--force選項的方法強制安裝:
[root@51cto Server]#?rpm -ivh httpd-2.2.3-22.el5.i386.rpm --force
warning: httpd-2.2.3-22.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...? ?? ?? ?? ?? ? ########################################### [100%]
? ?1:httpd? ?? ?? ?? ?? ?? ?########################################### [100%]
3) --nodeps選項與依賴性
上面的方法使用--force可以強制覆蓋安裝,但是當軟件包出現依賴關系的時候,--force也解決不
了問題。rpm最大的不足就是包之間的依賴關系,比如要安裝A包,提示說要先安裝B包,找到
B包安裝又提示要先安裝其他包。所以當實在無法解決依賴性的問題又必須安裝軟件包的時候,
可以使用--nodeps加以解決,比如安裝devhelp-devel-0.12-20.el5.i386.rpm
[root@51cto Server]#?rpm -ivh devhelp-devel-0.12-20.el5.i386.rpm
warning: devhelp-devel-0.12-20.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
error: Failed dependencies:
? ?? ???devhelp = 0.12 is needed by devhelp-devel-0.12-20.el5.i386
? ?? ???gnome-vfs2-devel >= 2.2.0 is needed by devhelp-devel-0.12-20.el5.i386
? ?? ???gtk2-devel >= 2.2.0 is needed by devhelp-devel-0.12-20.el5.i386
? ?? ???libdevhelp-1.so.0 is needed by devhelp-devel-0.12-20.el5.i386
? ?? ???libgnomeui-devel >= 2.2.0 is needed by devhelp-devel-0.12-20.el5.i386
? ?? ???libwnck-devel >= 2.10.0 is needed by devhelp-devel-0.12-20.el5.i386
//發現依賴包這么多,使用--nodeps忽略依賴包直接安裝
[root@51cto Server]#?rpm -ivh devhelp-devel-0.12-20.el5.i386.rpm --nodeps
warning: devhelp-devel-0.12-20.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...? ?? ?? ?? ?? ? ########################################### [100%]
? ?1:devhelp-devel? ?? ?? ? ########################################### [100%]
//安裝好了,當實際上該軟件包的依賴沒解決是無法正常使用的,所以最好把依賴關系解決
4) 批量安裝或升級軟件包
使用通配符*就可以進行批量的安裝軟件包,如安裝telnet開頭的軟件包
[root@51cto Server]#?rpm -ivh telnet-* --force
warning: telnet-0.17-39.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing...? ?? ?? ?? ?? ? ########################################### [100%]
? ?1:telnet-server? ?? ?? ? ########################################### [ 50%]
? ?2:telnet? ?? ?? ?? ?? ???########################################### [100%]
對于升級軟件包則使用-U選項,表示有比已安裝的軟件包更高版本就升級安裝,如果系統本
沒有這些軟件包則安裝之,若版本相同則不做處理
三、查詢rpm軟件包
i) rpm -qa 命令用于查詢系統中已安裝的軟件包
[root@51cto Server]#?rpm -qa??//這么查詢列出的軟件包很多
如果要具體查詢某個軟件包可以使用grep,比如查詢是否安裝了LinuxQQ:
[root@51cto Server]#?rpm -qa |grep linuxqq
linuxqq-v1.0.2-beta1? ? //可以看到已經安裝了測試版QQ
ii) 查詢軟件的相關信息,使用-i選項
[root@51cto Server]#?rpm -qi linuxqq
Name? ?? ???: linuxqq? ?? ?? ?? ?? ?? ?? ? Relocations: (not relocatable)
Version? ???: v1.0.2? ?? ?? ?? ?? ?? ?? ?? ?? ? Vendor: Tencent Inc.
Release? ???: beta1? ?? ?? ?? ?? ?? ?? ?? ? Build Date: 2009年01月05日 星期一 01時31分44秒
Install Date: 2010年09月29日 星期三 05時16分12秒? ?? ?Build Host: localhost.localdomain
Group? ?? ? : Internet? ?? ?? ?? ?? ?? ?? ? Source RPM: linuxqq-v1.0.2-beta1.src.rpm
Size? ?? ???: 6346491? ?? ?? ?? ?? ?? ?? ?? ???License: Commercial
Signature? ?: (none)
Packager? ? : @Home
Summary? ???: QQ for Linux v1.0.2 Beta1
Description :
QQ - The most popular free instant messaging program in China.
* Chat with more than 590,000,000 people all over the world.
* Free to download or distribute absolutely.
iii) 查詢軟件文件的安裝位置,使用-l選項
[root@51cto Server]#?rpm -ql linuxqq
/usr
/usr/bin
/usr/bin/qq
/usr/share
/usr/share/applications
/usr/share/applications/qq.desktop
/usr/share/tencent
/usr/share/tencent/qq
/usr/share/tencent/qq/qq
/usr/share/tencent/qq/qq.png
/usr/share/tencent/qq/res.db
iv) 查詢文件歸屬,使用-f選項
在rpm -qf 后面跟要查詢的文件名,可以查詢該文件屬于哪個軟件包。所以當某個文件丟失
或者損壞的時候。就可以查詢所屬軟件包,然后重新安裝,即可恢復。
[root@51cto Server]#?rpm -qf /usr/share/tencent? ? //假如此文件損壞了
linuxqq-v1.0.2-beta1? ?? ???//可以查詢出所屬的軟件包是Linuxqq
四、驗證rpm軟件包的完整性
rpm命令可以使用-V選項對系統中已經安裝的軟件包進行驗證,比如系統發生安全故障,對
軟件包進行驗證是必不可少的事情,比如:
[root@51cto ~]#?mv /usr/share/tencent/qq/qq /usr/share/tencent/qq/qq.backup
? ?? ?? ?//把/usr/share/tencent/qq/qq重命名成備份文件
[root@51cto ~]#?rpm -V linuxqq? ? //查詢該文件包完整性
missing? ???/usr/share/tencent/qq/qq? ? //顯示丟失了/usr/share/tencent/qq/qq
[root@51cto ~]#?mv /usr/share/tencent/qq/qq.backup /usr/share/tencent/qq/qq//恢復
[root@51cto ~]#?rpm -V linuxqq? ?//查詢該文件包完整性,無顯示丟失文件
五、卸載軟件包
使用-e選項來卸載軟件包,rpm -e 軟件名 (軟件名可以包含版本信息,但不可以有rpm后綴)
[root@51cto ~]#?rpm -e linuxqq
[root@51cto ~]#?rpm -ql linuxqq
package linuxqq is not installed? ???//卸載Linuxqq成功
如果卸載軟件包的時候遇到依賴關系的時候也可以使用--nodeps忽略依賴關系卸載
(如果使用GNOME/KDE環境,這就不做介紹了)
六、管理rpm源碼包
對于一些軟件包是以.src.rpm為擴展名的,這類軟件包就是包含了源代碼的rpm包,在安裝
的時候需要進行編譯,步驟如下:
1) 執行rpm -i??51cto.src.rpm (假設軟件包名為51cto)
2)??cd /usr/src/redhat/SPECS/? ???//切換到該目錄
3) rpmbuild??-bb??51cto.specs??或者??rpmbuild??-bp??51cto.specs
如果是如上的第一條命令,在/usr/src/redhat/RPMS/noarch/目錄下生成一個新的rpm包,
直接使用rpm -ivh xx.rpm 進行安裝搞定;
如果是如上的第二條命令,在/usr/src/redhat/BUILD/software/目錄下生成此軟件包
的源碼包,可能通過腳本安裝或編譯源代碼安裝,具體不做說明

總結

以上是生活随笔為你收集整理的RPM包及其管理 rpm命令的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。