1.rpm命令介紹
Linux rpm 命令用於管理套件。
rpm(redhat package manager) 原本是 Red Hat Linux 發行版專門用來管理 Linux 各項套件的程序,由於它遵循 GPL 規則且功能強大方便,因而廣受歡迎。逐漸受到其他發行版的采用。RPM 套件管理方式的出現,讓 Linux 易於安裝,升級,間接提升了 Linux 的適用度。
2.參數介紹
- -a 查詢所有套件。
- -b<完成階段><套件檔>+或-t <完成階段><套件檔>+ 設置包裝套件的完成階段,並指定套件檔的文件名稱。
- -c 只列出組態配置文件,本參數需配合"-l"參數使用。
- -d 只列出文本文件,本參數需配合"-l"參數使用。
- -e<套件檔>或--erase<套件檔> 刪除指定的套件。
- -f<文件>+ 查詢擁有指定文件的套件。
- -h或--hash 套件安裝時列出標記。
- -i 顯示套件的相關信息。
- -i<套件檔>或--install<套件檔> 安裝指定的套件檔。
- -l 顯示套件的文件列表。
- -p<套件檔>+ 查詢指定的RPM套件檔。
- -q 使用詢問模式,當遇到任何問題時,rpm指令會先詢問用戶。
- -R 顯示套件的關聯性信息。
- -s 顯示文件狀態,本參數需配合"-l"參數使用。
- -U<套件檔>或--upgrade<套件檔> 升級指定的套件檔。
- -v 顯示指令執行過程。
- -vv 詳細顯示指令執行過程,便於排錯。
- -addsign<套件檔>+ 在指定的套件里加上新的簽名認證。
- --allfiles 安裝所有文件。
- --allmatches 刪除符合指定的套件所包含的文件。
- --badreloc 發生錯誤時,重新配置文件。
- --buildroot<根目錄> 設置產生套件時,欲當作根目錄的目錄。
- --changelog 顯示套件的更改記錄。
- --checksig<套件檔>+ 檢驗該套件的簽名認證。
- --clean 完成套件的包裝后,刪除包裝過程中所建立的目錄。
- --dbpath<數據庫目錄> 設置欲存放RPM數據庫的目錄。
- --dump 顯示每個文件的驗證信息。本參數需配合"-l"參數使用。
- --excludedocs 安裝套件時,不要安裝文件。
- --excludepath<排除目錄> 忽略在指定目錄里的所有文件。
- --force 強行置換套件或文件。
- --ftpproxy<主機名稱或IP地址> 指定FTP代理服務器。
- --ftpport<通信端口> 設置FTP服務器或代理服務器使用的通信端口。
- --help 在線幫助。
- --httpproxy<主機名稱或IP地址> 指定HTTP代理服務器。
- --httpport<通信端口> 設置HTTP服務器或代理服務器使用的通信端口。
- --ignorearch 不驗證套件檔的結構正確性。
- --ignoreos 不驗證套件檔的結構正確性。
- --ignoresize 安裝前不檢查磁盤空間是否足夠。
- --includedocs 安裝套件時,一並安裝文件。
- --initdb 確認有正確的數據庫可以使用。
- --justdb 更新數據庫,當不變動任何文件。
- --nobulid 不執行任何完成階段。
- --nodeps 不驗證套件檔的相互關聯性。
- --nofiles 不驗證文件的屬性。
- --nogpg 略過所有GPG的簽名認證。
- --nomd5 不使用MD5編碼演算確認文件的大小與正確性。
- --nopgp 略過所有PGP的簽名認證。
- --noorder 不重新編排套件的安裝順序,以便滿足其彼此間的關聯性。
- --noscripts 不執行任何安裝Script文件。
- --notriggers 不執行該套件包裝內的任何Script文件。
- --oldpackage 升級成舊版本的套件。
- --percent 安裝套件時顯示完成度百分比。
- --pipe<執行指令> 建立管道,把輸出結果轉為該執行指令的輸入數據。
- --prefix<目的目錄> 若重新配置文件,就把文件放到指定的目錄下。
- --provides 查詢該套件所提供的兼容度。
- --queryformat<檔頭格式> 設置檔頭的表示方式。
- --querytags 列出可用於檔頭格式的標簽。
- --rcfile<配置文件> 使用指定的配置文件。
- --rebulid<套件檔> 安裝原始代碼套件,重新產生二進制文件的套件。
- --rebuliddb 以現有的數據庫為主,重建一份數據庫。
- --recompile<套件檔> 此參數的效果和指定"--rebulid"參數類似,當不產生套件檔。
- --relocate<原目錄>=<新目錄> 把本來會放到原目錄下的文件改放到新目錄。
- --replacefiles 強行置換文件。
- --replacepkgs 強行置換套件。
- --requires 查詢該套件所需要的兼容度。
- --resing<套件檔>+ 刪除現有認證,重新產生簽名認證。
- --rmsource 完成套件的包裝后,刪除原始代碼。
- --rmsource<文件> 刪除原始代碼和指定的文件。
- --root<根目錄> 設置欲當作根目錄的目錄。
- --scripts 列出安裝套件的Script的變量。
- --setperms 設置文件的權限。
- --setugids 設置文件的擁有者和所屬群組。
- --short-circuit 直接略過指定完成階段的步驟。
- --sign 產生PGP或GPG的簽名認證。
- --target=<安裝平台>+ 設置產生的套件的安裝平台。
- --test 僅作測試,並不真的安裝套件。
- --timecheck<檢查秒數> 設置檢查時間的計時秒數。
- --triggeredby<套件檔> 查詢該套件的包裝者。
- --triggers 展示套件檔內的包裝Script。
- --verify 此參數的效果和指定"-q"參數相同。
- --version 顯示版本信息。
- --whatprovides<功能特性> 查詢該套件對指定的功能特性所提供的兼容度。
- --whatrequires<功能特性> 查詢該套件對指定的功能特性所需要的兼容度。2. rpm參數詳解
(1) 安裝命令
命令格式:# rpm -i(or --install) [options] file1.rpm ... fileN.rpm
參數列表:file1.rpm ... fileN.rpm(將要安裝的RPM包的文件名)
詳細選項:
-h (或 --hash) 安裝時輸出hash記號 (``#'')
--test 只對安裝進行測試,並不實際安裝。
--percent 以百分比的形式輸出安裝的進度。
--excludedocs 不安裝軟件包中的文檔文件
--includedocs 安裝文檔
--replacepkgs 強制重新安裝已經安裝的軟件包
--replacefiles 替換屬於其它軟件包的文件
--force 忽略軟件包及文件的沖突
--noscripts 不運行預安裝和后安裝腳本
--prefix 將軟件包安裝到由 指定的路徑下
--ignorearch 不校驗軟件包的結構
--ignoreos 不檢查軟件包運行的操作系統
--nodeps 不檢查依賴性關系
--ftpproxy 用 作為 FTP代理
--ftpport 指定FTP的端口號為
通用選項:
-v 顯示附加信息
-vv 顯示調試信息
--root 讓RPM將指定的路徑做為“根目錄”,這樣預安裝程序和后安裝程序都會安裝到這個目錄下
--rcfile 設置rpmrc文件為
--dbpath 設置RPM 資料庫存所在的路徑為(2) 刪除命令
命令格式:# rpm -e(or --erase) [options] pkg1 ... pkgN
參數列表:pkg1 ... pkgN (要刪除的軟件包)
詳細選項:
--test 只執行刪除的測試
--noscripts 不運行預安裝和后安裝腳本程序
--nodeps 不檢查依賴性
通用選項:
-vv 顯示調試信息
--root 讓RPM將指定的路徑做為"根目錄",這樣預安裝程序和后安裝程序都會安裝到這個目錄下
--rcfile 設置rpmrc文件為
--dbpath 設置RPM 資料庫存所在的路徑為(3) 升級命令
命令格式:# rpm -U(or --upgrade) [options] file1.rpm ... fileN.rpm
參數列表:file1.rpm ... fileN.rpm (軟件包的名字)
詳細選項:
-h (or --hash) 安裝時輸出hash記號 (``#'')
--oldpackage 允許"升級"到一個老版本
--test 只進行升級測試
--excludedocs 不安裝軟件包中的文檔文件
--includedocs 安裝文檔
--replacepkgs 強制重新安裝已經安裝的軟件包
--replacefiles 替換屬於其它軟件包的文件
--force 忽略軟件包及文件的沖突
--percent 以百分比的形式輸出安裝的進度
--noscripts 不運行預安裝和后安裝腳本
--prefix 將軟件包安裝到由 指定的路徑下
--ignorearch 不校驗軟件包的結構
--ignoreos 不檢查軟件包運行的操作系統
--nodeps 不檢查依賴性關系
--ftpproxy 用 作為 FTP代理
--ftpport 指定FTP的端口號為
通用選項:
-v 顯示附加信息
-vv 顯示調試信息
--root 讓RPM將指定的路徑做為"根目錄",這樣預安裝程序和后安裝程序都會安裝到這個目錄下
--rcfile 設置rpmrc文件為
--dbpath 設置RPM 資料庫存所在的路徑為(4) 查詢命令
命令格式:# rpm -q(or --query) [options]
參數列表:pkg1 ... pkgN (查詢已安裝的軟件包)
詳細選項:
-p (or ``-'') 查詢軟件包的文件
-f 查詢屬於哪個軟件包
-a 查詢所有安裝的軟件包
-g 查詢屬於組的軟件包
--whatprovides 查詢提供了 功能的軟件包
--whatrequires 查詢所有需要 功能的軟件包
信息選項:
顯示軟件包的全部標識
-i 顯示軟件包的概要信息
-l 顯示軟件包中的文件列表
-c 顯示配置文件列表
-d 顯示文檔文件列表
-s 顯示軟件包中文件列表並顯示每個文件的狀態
--scripts 顯示安裝、卸載、校驗腳本
--queryformat (or --qf) 以用戶指定的方式顯示查詢信息
--dump 顯示每個文件的所有已校驗信息
--provides 顯示軟件包提供的功能
--requires (or -R) 顯示軟件包所需的功能
通用選項:
-v 顯示附加信息
-vv 顯示調試信息
--root 讓RPM將指定的路徑做為"根目錄",這樣預安裝程序和后安裝程序都會安裝到這個目錄下
--rcfile 設置rpmrc文件為
--dbpath 設置RPM 資料庫存所在的路徑為(5) 校驗已安裝的軟件包
命令格式: # rpm -V(or --verify, or -y) [options]
參數列表:pkg1 ... pkgN (將要校驗的軟件包名)
軟件包選項:
-p 校驗包文件
-f 校驗所屬的軟件包
-a 校驗所有的軟件包
-g 校驗所有屬於組 的軟件包
詳細選項:
--noscripts 不運行校驗腳本
--nodeps 不校驗依賴性
--nofiles 不校驗文件屬性
通用選項:
-v 顯示附加信息
-vv 顯示調試信息
--root 讓RPM將指定的路徑做為"根目錄",這樣預安裝程序和后安裝程序都會安裝到這個目錄下
--rcfile 設置rpmrc文件為
--dbpath 設置RPM 資料庫存所在的路徑為(6) 校驗軟件包中的文件
語法:# rpm -K(or --checksig) [options] file1.rpm ... fileN.rpm
參數:file1.rpm ... fileN.rpm (軟件包的文件名)
詳細選項:
--nopgp 不校驗PGP簽名
通用選項:
-v 顯示附加信息
-vv 顯示調試信息
--rcfile 設置rpmrc文件為(7) 其它參數選項
--rebuilddb 重建RPM資料庫
--initdb 創建一個新的RPM資料庫
--quiet 盡可能的減少輸出
--help 顯示幫助文件
--version 顯示RPM的當前版本
3.功能
1、初始化rpm 數據庫功能;
通過rpm 命令查詢一個rpm 包是否安裝了,也是要通過rpm 數據庫來完成的;所以我們要經常用下面的兩個命令來初始化rpm 數據庫;
[root@localhost beinan]# rpm --initdb
[root@localhost beinan]# rpm --rebuilddb 注:這個要花好長時間;
注:以上兩個參數是極為有用,有時rpm 系統出了問題,不能安裝和查詢,大多是這里出了問題;
[root@localhost beinan]# updatedb
[root@localhost beinan]# locate 軟件名或文件名
提示:通過updatedb,我們可以用 locate來查詢一些軟件安裝到哪里了;系統初次安裝時要執行updatedb ,每隔一段時間也要執行一次;以保持已安裝軟件庫最新;updatedb 是slocate軟件包所有;如果您沒有這個命令,就得安裝slocate ;
2、RPM軟件包管理功能
1)查詢功能:
rpm {-q|--query} [select-options] [query-options]
使用實例
1)查詢一個已經安裝的文件屬於哪個軟件包
rpm -qf 文件名
2)查詢已安裝軟件包都安裝到何處
rpm -ql 軟件名
或
rpm rpmquery -ql 軟件名
3)查看一下已安裝軟件的配置文件
rpm -qc 軟件名
4)查看一個已經安裝軟件的文檔安裝位置
rpm -qd 軟件名
5)查看一下已安裝軟件所依賴的軟件包及文件
rpm -qR 軟件名
6)查看一件軟件包所包含的文件
rpm -qpl 文件名
2)軟件包的安裝、升級、刪除
1)常規包安裝
-ivh:安裝顯示安裝進度--install--verbose--hash
-Uvh:升級軟件包--Update;
-Va:校驗所有的RPM軟件包,查找丟失的文件[View Lost];
-e:刪除包
2)源碼包安裝
rpm --recompile vim-4.6-4.src.rpm #這個命令會把源代碼解包並編譯、安裝它,如果用戶使用命令:
rpm --rebuild vim-4.6-4.src.rpm #在安裝完成后,還會把編譯生成的可執行文件重新包裝成i386.rpm的RPM軟件包。
詳細用法請參考:http://ftp.tsingpost.com/index.php/archives/379/
3)網絡包安裝
# 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
4)指定安裝目錄:要加 -relocate 參數
rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm #gaim-1.3.0-1.fc4.i386.rpm指定安裝在目錄: /opt/gaim 中
