一、rpm介紹
1.什麼是rpm ?
rpm 即redhat package management,是redhat的發明之一
2.為什麼需要rpm ?
在乙個作業系統下,需要安裝實現各種功能的軟體包。這些軟體包一般都有各自的程式,
但是同時也有錯綜複雜的依賴關係。同時還需要 解決軟體包的版本,以及安裝,配置,
解除安裝的自動化問題。為了解決 這些問題,redhat針對自己的系統提出了乙個較好的辦法
來管理成千 上百的軟體。這就是rpm管理系統。在系統中安裝了rpm管理系統以後,
只要是符合rpm檔案標準的打包程式都可以方便地安裝、公升級、解除安裝。
3.是不是所有的linux都使用rpm ?
任何系統都需要包管理系統,因此很多
linux都使用rpm系統。 rpm系統是redhatlinux和
fedora core的軟體包管理器,但是mandriva、suse等linux發行版也都使用rpm。由於rpm
的源程式可以在別的系統上進行編譯,所以有可能在別的系統上也使用rpm。除了rpm,
其他一些系統也有自己的軟體包管理程式, 例如 debian的deb包。
4.rpm包的檔名為什麼那麼長 ?
rpm包的檔名中包含了這個軟體包的版本資訊,作業系統資訊,硬體要求等等。
比如mypackage-1.1-2rh.i386.rpm,其中mypackage是在系統中登記的軟體包的名字1.1
是軟體的版本號,2是發行號,rh表示用於rh作業系統。i386表示用於intel x86平台。
5.軟體包檔名中的i386,i686是什麼意思
rpm軟體包的檔名中,不僅包含了軟體名稱,版本資訊,還包括了適用的硬體架構的資訊。
i386指這個軟體包適用於intel 80386以上的x86架構的計算機(ai32)
i686指這個軟體包適用於intel 80686以上(奔騰pro以上)的x86架構的計算機(ia32)
noarch指這個軟體包與硬體架構無關,可以通用。
i686軟體包通常針對cpu進行了優化,現在通常配置的機器都可以使用i686軟體包。
6.不同作業系統發行的rpm包可否混用?
對於已經編譯成二進位制的rpm包,由於作業系統環境不同,一般不能混用。
對於以src.rpm發行的軟體包,由於需要安裝時進行本地編譯,所以通常可以在不同系統下安裝。
二、rpm包管理的用途
1、可以安裝、刪除、公升級和管理以rpm包形式發布的軟體;
2、可以查詢某個rpm包中包含哪些檔案,以及某個指定檔案屬於哪個rpm包;
3、可以在查詢系統中的某個rpm包是否已安裝以及其版本;
4、作為開發者可以把自己開發的軟體打成rpm包發布;
5、依賴性的檢查,查詢安裝某個rpm包時,需要哪些其它的rpm包。
注:rpm軟體的安裝、刪除、更新只有root許可權才能使用;
對於查詢功能任何使用者都可以操作。
三、rpm 的一點簡單用法
rpm的一般格式:
rpm [選項] [rpm軟體包]
1、初始化rpm 資料庫(可以省略)
rpm --initdb
rpm --rebuilddb % 注:這個要花好長時間
%注:有時rpm 系統出了問題,不能安裝和查詢,大多是這裡出了問題。
2、rpm軟體包管理的查詢功能:
rpm -q [select-options] [query-options]
rpm的查詢功能是極為強大,是極為重要的功能之一;這裡舉幾個常用的例子,更為詳細的具體的,請參考 man rpm
對系統中已安裝軟體的查詢
1)查詢系統已安裝的軟體
語法:rpm -q 軟體名
例:rpm -q mplayer
% -q就是 --query,此選項表示詢問系統是不是安裝了gaim軟體包;
% 如果已安裝會有資訊輸出;如果沒有安裝,會輸出gaim 沒有安裝的資訊;
%檢視系統中所有已經安裝的包,要加 -a 引數
rpm -qa
% 如果分頁檢視,再加乙個管道 |和more命令
rpm -qa |more
% 如果要查詢某個軟體包,可以用 grep 抽取出來
rpm -qa |grep mplayer
2)查詢乙個已經安裝的檔案屬於哪個軟體包;
語法: rpm -qf 檔名
注:檔名所在的絕對路徑要指出
例:rpm -qf /usr/lib/libacl.la
3)查詢已安裝軟體包都安裝到何處;
語法:rpm -ql 軟體包名
例:rpm -ql mplayer
4)查詢乙個已安裝軟體包的資訊
語法: rpm -qi 軟體包名
例:rpm -qi mplayer
5)檢視一下已安裝軟體的配置檔案;
語法格式:rpm -qc 軟體名
例:rpm -qc mplayer
6)檢視乙個已經安裝軟體的文件安裝
位置:
語法格式: rpm -qd 軟體名
例:rpm -qd mplayer
7)檢視一下已安裝軟體所依賴的軟體包及檔案;
語法格式: rpm -qr 軟體名
例:rpm -qr mplayer
注:可以把幾個引數組合起來用,如 rpm -qil mplayer
對於未安裝的軟體包的檢視 :檢視的前提是當前目錄下已存在乙個.rpm檔案。
1)檢視乙個軟體包的用途、版本等資訊;
語法: rpm -qpi file.rpm
例:rpm -qpi mplayer-1.0pre7try2-2.i386.rpm
2)檢視一件軟體包所包含的檔案;
語法: rpm -qpl file.rpm
例:rpm -qpl mplayer-1.0pre7try2-2.i386.rpm
3)檢視軟體包的文件所在的位置;
語法: rpm -qpd file.rpm
例:rpm -qpd mplayer-1.0pre7try2-2.i386.rpm
4)檢視乙個軟體包的配置檔案;
語法: rpm -qpc file.rpm
例:rpm -qpc mplayer-1.0pre7try2-2.i386.rpm
5)檢視乙個軟體包的依賴關係
語法: rpm -qpr file.rpm
例:rpm -qpr mplayer-1.0pre7try2-2.i386.rpm
3、軟體包的安裝、公升級、刪除等; 安裝和公升級乙個rpm 包
語法:
rpm -ivh file.rpm % 這個是用來安裝乙個新的rpm 包
rpm -uvh file.rpm % 這是用來公升級乙個rpm 包
% 如果有依賴關係的,需解決依賴關係。
% 如果找不到依賴關係的包,可以用下面的命令強制安裝:
rpm -ivh --nodeps --force file.rpm
rpm -uvh --nodeps --force file.rpm
例:rpm -ivh --test mplayer-1.0pre7try2-2.i386.rpm
% --test表示測試,並不真正安裝。
rpm -ivh --relocate /=/usr/local/mplayer mplayer-1.0pre7try2-2.i386.rpm
% 為軟體包指定安裝目錄:要加 --relocate 引數
% 安裝在指定目錄中的程式如何呼叫呢?
% 通常可執行程式都放在安裝目錄下的bin或者sbin目錄中。
刪除乙個rpm 包
首先查出需要刪除的rpm包,然後用下面的命令來解除安裝:
rpm -e 軟體包名
例:rpm -e mplayer % 解除安裝mplayer
% 如果有其它的rpm依賴於該rpm包,系統會出現警告。
% 如果一定要解除安裝,可以用選項 --nodeps 忽略依賴關係。但最好不要這麼做。
四、rpm管理包管理器支援網路安裝和查詢
rpm [選項] rpm包的http或者ftp的位址
比如我們想通過 fedora core 4.0 的乙個映象查詢、安裝軟體包。
rpm -qpi
% 查詢
rpm -ivh
% 安裝
五、對已安裝linuxrpm
包查詢的一點補充
可以用 locate來查詢一些軟體的安裝位置,可能需要先執行updatedb來更新已安裝軟體庫
六、從rpm軟體包抽取檔案
rpm2cpio ***.rpm | cpio -idmv
% i 表示提取檔案,v 表示指示執行程序
% d 表示根據包中檔案原來的路徑建立目錄
% m 表示保持檔案的更新時間
Linux中rpm命令用法
rpm ivh 軟體包名 安裝軟體包並顯示安裝進度。這個是用得最多的了。查詢已經安裝哪些軟體包。rpm q 軟體包名 查詢指定軟體包是否已經安裝。rpm uvh 軟體包名 公升級乙個軟體包。rpm e 軟體包名 刪除指定軟體包。end以 src.rpm結尾的檔案由軟體源 檔案組成,要安裝此種 rpm...
rpm命令用法
rpm好像不能指定安裝路徑!1.安裝乙個包 rpm ivh 2.公升級乙個包 rpm uvh 3.移走乙個包 rpm e 4.安裝引數 force 即使覆蓋屬於其它包的檔案也強迫安裝 nodeps 如果該rpm包的安裝依賴其它包,即使其它包沒裝,也強迫 安裝。5.查詢乙個包是否被安裝 rpm q r...
Linux 下rpm命令引數詳解
一 安裝 命令格式 rpm i or install options file1.rpm filen.rpm 引數 file1.rpm n 將要安裝的rpm包的檔名 詳細選項 h or hash 安裝時輸出hash記號 test 只對安裝進行測試,並不實際安裝。percent 以百分比的形式輸出安裝...