Linux下RPM 命令用法中文簡介
原文地址:http://bbs.51cto.com/topic/thread-700076.html
1.什麼是rpm ?
rpm 即RedHat Package Management,是RedHat的發明之一
2.為什麼需要rpm ?
在一個作業系統下,需要安裝實現各種功能的軟體包。這些軟體包一般都有各自的程式,
但是同時也有錯綜複雜的依賴關係。同時還需要 解決軟體包的版本,以及安裝,配置,
解除安裝的自動化問題。為了解決 這些問題,RedHat針對自己的系統提出了一個較好的辦法
來管理成千 上百的軟體。這就是RPM管理系統。在系統中安裝了rpm管理系統以後,
只要是符合rpm檔案標準的打包程式都可以方便地安裝、升級、解除安裝。
[align=left]3.是不是所有的linux都使用rpm ? [/align]任何系統都需要包管理系統,因此很多[url=http://jiaogen.com/] [color=black]linux[/color][/url]都使用rpm系統。 rpm系統是Redhat Linux和
Fedora Core的軟體包管理器,但是Mandriva、SuSE等Linux發行版也都使用rpm。由於rpm
的源程式可以在別的系統上進行編譯,所以有可能在別的系統上也使用rpm。除了rpm,
其他一些系統也有自己的軟體包管理程式, 例如 debian的deb包。
[align=left]4.rpm包的檔名為什麼那麼長 ? [/align]rpm包的檔名中包含了這個軟體包的版本資訊,作業系統資訊,硬體要求等等。
比如mypackage-1.1-2RH.i386.rpm,其中mypackage是在系統中登記的軟體包的名字1.1
是軟體的版本號,2是發行號,RH表示用於RH作業系統。i386表示用於intel x86平臺。
[align=left]5.軟體包檔名中的i386,i686是什麼意思 [/align]rpm軟體包的檔名中,不僅包含了軟體名稱,版本資訊,還包括了適用的硬體架構的資訊。
i386指這個軟體包適用於intel 80386以上的x86架構的計算機(AI32)
i686指這個軟體包適用於intel 80686以上(奔騰pro以上)的x86架構的計算機(IA32)
noarch指這個軟體包與硬體架構無關,可以通用。
i686軟體包通常針對CPU進行了優化,現在通常配置的機器都可以使用i686軟體包。
[align=left]6.不同作業系統發行的rpm包可否混用? [/align]對於已經編譯成二進位制的rpm包,由於作業系統環境不同,一般不能混用。
對於以src.rpm發行的軟體包,由於需要安裝時進行本地編譯,所以通常可以在不同系統下安裝。
[b]二、RPM包管理的用途[/b]
1、可以安裝、刪除、升級和管理以rpm包形式釋出的軟體;
2、可以查詢某個rpm包中包含哪些檔案,以及某個指定檔案屬於哪個rpm包;
3、可以在查詢系統中的某個rpm包是否已安裝以及其版本;
4、作為開發者可以把自己開發的軟體打成rpm包釋出;
5、依賴性的檢查,查詢安裝某個rpm包時,需要哪些其它的rpm包。
注:RPM軟體的安裝、刪除、更新只有root許可權才能使用;
對於查詢功能任何使用者都可以操作。
[b]三、rpm 的一點簡單用法 [/b]
[align=left]rpm的一般格式: [/align] rpm [選項] [rpm軟體包]
[align=left]1、初始化rpm 資料庫(可以省略) [/align]rpm --initdb
rpm --rebuilddb % 注:這個要花好長時間
%注:有時rpm 系統出了問題,不能安裝和查詢,大多是這裡出了問題。
[align=left]2、RPM軟體包管理的查詢功能: [/align]rpm -q [select-options] [query-options]
[align=left]RPM的查詢功能是極為強大,是極為重要的功能之一;這裡舉幾個常用的例子,更為詳細的具體的,請參考 man rpm [/align][align=left][i]對系統中已安裝軟體的查詢[/i] [/align]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
[b]注[/b]:可以把幾個引數組合起來用,如 rpm -qil mplayer
[align=left][i]對於未安裝的軟體包的檢視[/i] :檢視的前提是當前目錄下已存在一個.rpm檔案。 [/align]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
[align=left]3、軟體包的安裝、升級、刪除等; [i]安裝和升級一個rpm 包[/i] [/align]語法:
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目錄中。
[align=left][i]刪除一個rpm 包[/i] [/align]首先查出需要刪除的rpm包,然後用下面的命令來解除安裝:
rpm -e 軟體包名
例:rpm -e mplayer % 解除安裝mplayer
% 如果有其它的rpm依賴於該rpm包,系統會出現警告。
% 如果一定要解除安裝,可以用選項 --nodeps 忽略依賴關係。但最好不要這麼做。
[b]四、RPM管理包管理器支援網路安裝和查詢[/b]
rpm [選項] rpm包的http或者ftp的地址
比如我們想通過 Fedora Core 4.0 的一個映象查詢、安裝軟體包。
rpm -qpi [url]http://mirrors.kernel.org/.../RPMS/rsh-0.17-29.rpm[/url]
% 查詢
rpm -ivh [url]http://mirrors.kernel.org/.../RPMS/rsh-0.17-29.rpm[/url]
% 安裝
[b]五、對已安裝[url=http://linuxrpminstall.jiaogen.com/][color=black]linux rpm[/color][/url]包查詢的一點補充[/b]
可以用 locate來查詢一些軟體的安裝位置,可能需要先執行updatedb來更新已安裝軟體庫
[b]六、從rpm軟體包抽取檔案[/b]
rpm2cpio xxx.rpm | cpio -idmv
% i 表示提取檔案,v 表示指示執行程式
% d 表示根據包中檔案原來的路徑建立目錄
% m 表示保持檔案的更新時間
相關文章
- LINUX下RPM命令基本用法Linux
- linux命令下jq的用法簡介Linux
- Linux下history命令用法Linux
- linux下date命令用法Linux
- Linux命令 rpmLinux
- Linux rpm命令Linux
- Linux——基礎命令用法(下)Linux
- Linux下crontab命令的用法Linux
- Linux下echo命令的用法Linux
- Linux下touch命令的用法Linux
- Linux下umask命令的用法Linux
- linux tar命令簡介Linux
- Linux lsof 命令簡介Linux
- 簡單使用rpm命令
- rpm命令的使用介紹
- Linux下more命令高階用法Linux
- Linux下mv命令高階用法Linux
- linux下xargs命令用法詳解Linux
- Linux下find命令的用法(轉)Linux
- Linux cgroups 命令簡介Linux
- Linux/UNIX命令dd簡介Linux
- Linux ls命令最詳細用法介紹Linux
- RPM常用命令介紹
- Linux命令之rpm安裝命令Linux
- linux下mail的簡單用法LinuxAI
- Linux下Epoll簡介Linux
- rpm常用命令及rpm引數介紹
- linux下grep命令用法例項教程Linux
- AWK用法簡介
- Linux的命令列介面簡介Linux命令列
- CentOS中rpm命令詳細介紹CentOS
- Linux下的Shell簡介Linux
- Linux下crontab命令的用法:sudo crontab -lLinux
- Linux rpm查詢命令以及RPM包驗證Linux
- Linux下查詢命令對應的RPM安裝包Linux
- expdp 的用法簡介
- Linux RPM 下載地址Linux
- Linux下 ls 命令的高階用法8例Linux