RPM是紅帽包管理器的縮寫,意思是紅帽包管理,顧名思義就是紅帽貢獻的包管理;Fedora、Redhat、Mandriva、SuSE、YellowDog等主流發行版本采用,在這些版本基礎上開發的發行版;RPM包都包含可執行的二進制程序。
RPM包中的應用程序有時需要附加文件之外的其他特定版本的文件才能保持正常,這就是軟件包的依賴性。
壹、RPM包管理的目的
1,軟件可以安裝、刪除、升級、管理;當然也支持軟件在線安裝升級;
2.通過RPM包管理,可以知道軟件包中包含哪些文件,系統中的某個文件屬於哪個軟件包;
3.可以查詢系統中的軟件包是否安裝及其版本;
4.作為開發者,妳可以把自己的程序打包成RPM包,然後發布。
5.包簽名GPG和MD5的導入、驗證和簽名發布。
6.檢查依賴關系,查看是否有由於不兼容而幹擾系統的軟件包;
第二,RPM的使用權
RPM軟件的安裝、刪除、更新只有root權限才能使用;任何用戶都可以操作查詢功能;如果普通用戶有安裝目錄的權限,也可以安裝;
第三,rpm的壹點簡單用法
除了包管理器,我們還可以通過rpm命令安裝;所有軟件包都可以用rpm命令安裝嗎?不,文件結尾是。rpm後綴。有時候我們在壹些網站上找到file.rpm,要用rpm安裝。
1)初始化rpm數據庫
通過rpm命令查詢是否安裝了rpm包也是通過rpm數據庫完成的;所以我們經常使用下面兩個命令來初始化rpm數據庫。
[root @ localhost Bei nan]# rpm-initdb
[root @ localhost beinan]# rpm-rebuild db
註意:這需要很長時間;
註意:這兩個參數非常有用。有時候rpm系統出了問題,無法安裝查詢,多半是這裏出了問題。
RPM軟件包管理的查詢功能
命令格式
rpm {-q |-query }[選擇選項][查詢選項]
RPM的查詢功能極其強大,是最重要的功能之壹。壹些常見的例子,更多詳情請參考#man rpm。
1.查詢系統中已安裝的軟件;
1)查詢系統已安裝的軟件;
語法:rpm -q軟件名稱
例如:
[root @ localhost Bei nan]# rpm-q gaim
gaim-1.3.0-1.fc4
-q是- query,中文意思是“問”。此命令指示系統中是否安裝了gaim如果安裝了,會有信息輸出;如果沒有安裝,則輸出沒有安裝gaim的信息;查看系統中所有已安裝的軟件包,並添加-a參數;
[root@localhost RPMS]# rpm -qa
如果分頁,添加pipeline |和more命令;
[root @本地主機RPMS]# rpm-QA |更多
在所有已安裝的軟件包中找到壹個軟件,比如gaim可以用grep提取;
[root @ localhost RPMS]# rpm-QA | grep gaim
以上項的作用與rpm -q gaim的輸出結果相同;
2)查詢安裝文件屬於哪個包;
語法rpm -qf文件名
註意:應該指出文件名的絕對路徑。
例如:
[root @ localhost RPMS]# rpm-qf/usr/lib/libacl . la
libacl-devel-2.2.23-8
3)查詢已安裝軟件包的安裝位置。
語法:rpm -ql軟件名或rpmquery -ql軟件名。
例如:
[root @ localhost RPMS]# rpm-QL lynx
[root @ localhost RPMS]# rpm query-QL lynx
4)查詢已安裝軟件包的信息。
語法格式:rpm -qi軟件名稱
例如:
[root @ localhost RPMS]# rpm-qi lynx
5)檢查已安裝軟件的配置文件;
語法格式:rpm -qc軟件名稱
例如:
[root @ localhost RPMS]# rpm-QC lynx
6)檢查已安裝軟件的文件的安裝位置:
語法格式:rpm -qd軟件名稱
例如:
[root @ localhost RPMS]# rpm-qd lynx
7)檢查已安裝軟件所依賴的軟件包和文件;
語法格式:rpm -qR軟件名稱
例如:
[root @ localhost Bei nan]# rpm-qR rpm-python
查詢已安裝軟件匯總:對於壹個已經安裝的軟件包,我們可以組合壹系列參數使用;如rpm-qil;例如:
[root @ localhost RPMS]# rpm-qil lynx
2.查看卸載的軟件包:
1)查看某個軟件包的用途和版本;
語法:rpm-qpifile.rpm。
例如:
[root @本地主機RPMS]# rpm-qpi lynx-2 . 8 . 5-23 . i386 . rpm
2)檢查軟件包中包含的文件;
語法:rpm-qplfile.rpm。
例如:
[root @本地主機RPMS]# rpm-qpl lynx-2 . 8 . 5-23 . i386 . rpm
3)檢查軟件包文檔的位置;
語法:rpm-qpdfile.rpm。
例如:
[root @本地主機RPMS]# rpm-qpd lynx-2 . 8 . 5-23 . i386 . rpm
5)查看軟件包的配置文件;
語法:rpm-qpcfile.rpm。
例如:
[root @本地主機RPMS]# rpm-qpc lynx-2 . 8 . 5-23 . i386 . rpm
4)查看軟件包的依賴關系。
語法:rpm-qprfile.rpm。
例如:
[root @ localhost archives]# rpm-qpR yumex _ 0.42-3.0 . fc4 _ no arch . rpm
/bin/bash
/usr/bin/python
配置(yumex) = 0.42-3.0.fc4
pygtk2
pygtk2-libglade
rpmlib(compressed filenames)& lt;= 3 . 0 . 4-1 rpmlib(PayloadFilesHavePrefix)& lt;= 4.0-1用戶模式yum & gt= 2.3.2
3)軟件包的安裝、升級和刪除;
1.安裝和升級rpm包;
[root @ localhost Bei nan]# rpm-VIH file . rpm
註意:這是用來安裝壹個新的rpm
[root @ localhost Bei nan]# rpm-Uvh file . rpm
註意:這用於升級rpm包;
如果有依賴,請解決。事實上,包管理器可以很好地解決依賴性。請看前面包管理器的介紹。如果在包管理器中找不到依賴包;那只能通過編譯他所依賴的包,或者強制安裝來解決;語法結構:
[root @ localhost beinan]# rpm-IVH file . rpm-nodeps-force
[root @ localhost beinan]# rpm-Uvh file . rpm-nodeps-force
示例應用:
[root @本地主機RPMS]# rpm-IVH lynx-2 . 8 . 5-23 . i386 . rpm
準備的...########################################### [100%]
1:lynx # # # # # # # # # # # # # # # # # # # # # # # # # # #[100%]
[root @ localhost RPMS]# rpm-IVH-replace pkgs lynx-2 . 8 . 5-23 . i386 . rpm
準備的...########################################### [100%]
1:lynx # # # # # # # # # # # # # # # # # # # # # # # # # # #[100%]
註意:- replacepkgs參數隨已安裝的軟件壹起再次安裝;有時候沒必要;
測試安裝參數- test,用於檢查依賴關系;不是真正的裝置;
[root @ localhost RPMS]# rpm-IVH-test gaim-1 . 3 . 0-1 . fc 4 . i386 . rpm
準備的...########################################### [100%]
要從新版本降級到舊版本,請添加- oldpackage參數。
[root @ localhost RPMS]# rpm-QA gaim
[root @ localhost RPMS]# rpm-Uvh-old package gaim-1 . 3 . 0-1 . fc 4 . i386 . rpm
準備的...########################################### [100%]
1:gaim # # # # # # # # # # # # # # # # # # # # # # # # # # # #[100%]
[root @ localhost RPMS]# rpm-QA gaim
gaim-1.3.0-1.fc4
指定軟件包的安裝目錄:添加- relocate參數;
下面的例子是在/opt/gaim目錄下安裝gaim-1 . 3 . 0-1 . fc 4 . i386 . rpm;
[root @ localhost RPMS]# rpm-IVH-relocate =/opt/gaim gaim-1 . 3 . 0-1 . fc 4 . i386 . rpm
準備的...########################################### [100%]
1:gaim # # # # # # # # # # # # # # # # # # # # # # # # # # # #[100%]
[root @本地主機RPMS]# ls /opt/
蓋姆
指定軟件包的安裝目錄:添加-relocate參數;
下面的例子是在/opt/lynx目錄下安裝lynx-2 . 8 . 5-23 . i386 . rpm;
[root @ localhost RPMS]# rpm-IVH-relocate =/opt/lynx-badreloc lynx-2 . 8 . 5-23 . i386 . rpm
準備的...########################################### [100%]
1:lynx # # # # # # # # # # # # # # # # # # # # # # # # # # #[100%]
如何調用我們安裝在指定目錄下的程序?壹般執行程序都放在安裝目錄的bin或sbin目錄下;看下面這個例子;如果有錯誤輸出,做相應的鏈接,使用ln-s;
[root @本地主機RPMS]# /opt/lynx/usr/bin/lynx
配置文件/etc/lynx.cfg不可用。
[root @ localhost RPMS]# ln-s/opt/lynx/etc/lynx . CFG/etc/lynx . CFG
[root @ localhost RPMS]#/opt/lynx/usr/bin/lynx www.linuxsir.org
2.刪除rpm包;
[root@localhost beinan]#rpm -e包名
例如:我想刪除lynx包。完整的操作應該是:
[root@localhost RPMS]# rpm -e lynx
如果存在依賴關系,也可以使用- nodeps來忽略依賴關系檢查並刪除它。但是盡量不要這麽做。最好使用軟件包管理器system-config-packages來刪除或添加軟件。
[root @ localhost beinan]# rpm-e lynx-nodeps
第四,導入簽名:
[root @ localhost rpm]# rpm-導入簽名文件
例如:
[root @ localhost fc40]# RPM-import RPM-GPG-KEY
[root @ localhost fc40]# RPM-import RPM-GPG-KEY-fedora
第五,RPM管理包管理器支持網絡安裝和查詢;
比如我們想通過Fedora Core 4.0的鏡像來查詢和安裝軟件包;
地址:http://mirrors . kernel . org/fedora/core/4/i386/OS/fedora/rpms/
例如:
命令格式:rpm參數,rpm包文件的http或ftp地址。
# rpm-qpi http://mirrors . kernel . org/Fedora/core/4/i386/OS/Fedora/RPMS/gaim-1 . 3 . 0-1 . fc 4 . i386 . rpm
# rpm-IVH http://mirrors . kernel . org/Fedora/core/4/i386/OS/Fedora/RPMS/gaim-1 . 3 . 0-1 . fc 4 . i386 . rpm
第六,對已安裝軟件包查詢的補充;
[root@localhost RPMS]# updatedb
[root@localhost RPMS]#定位軟件名或文件名
通過updatedb,我們可以用locate找到壹些軟件安裝在哪裏;Updatedb要在系統第壹次安裝的時候執行,每隔壹段時間也要執行壹次;以便保持安裝的軟件庫是最新的;Updatedb歸slocate包所有;如果沒有這個命令,就得安裝slocate
例如:
[root@localhost RPMS]#找到gaim
7、從rpm軟件包中提取文件;
命令格式:rpm2cpio file.rpm |cpio -div
例如:
[root @ localhost RPMS]# rpm 2 cpio gaim-1 . 3 . 0-1 . fc 4 . i386 . rpm | cpio-div
提取的文件在當前操作目錄下的usr和etc中;
其實解壓文件不如指定安裝目錄安裝軟件方便;您也可以提取文件;
指定軟件包的安裝目錄:添加-relocate參數;
下面的例子是在/opt/gaim目錄下安裝gaim-1 . 3 . 0-1 . fc 4 . i386 . rpm;
[root @ localhost RPMS]# rpm-IVH-relocate =/opt/gaim gaim-1 . 3 . 0-1 . fc 4 . i386 . RP
準備的...########################################### [100%]
1:gaim # # # # # # # # # # # # # # # # # # # # # # # # # # # #[100%]
[root @ localhost RPMS]# ls/opt/& lt;
蓋姆
這個也可以壹目了然;gaim的所有文件都安裝在/opt/gaim中。我們只需備份gaim目錄,然後卸載gaim。這實際上是提取文件的壹個小用法;
八、RPM的配置文件;
RPM包管理的配置文件是rpmrc,我們可以在自己的系統中找到。比如Fedora Core 4.0中的rpmrc文件就位於;
[root @ localhost RPMS]# locate RPC
/usr/lib/rpm/rpmrc
/usr/lib/rpm/redhat/rpmrc
也可以通過rpm - showrc查看。