妳決的好就采用
不壹樣,要用rpm命令,去網上找找看,這個命令的壹些參數
壹、安裝
命令格式:
rpm -i ( or --install) options file1.rpm ... fileN.rpm
參數:
file1.rpm ... fileN.rpm 將要安裝的RPM包的文件名
詳細選項:
-h (or --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 資料庫存所在的路徑為
二、刪除
命令格式:
rpm -e ( or --erase) options pkg1 ... pkgN
參數
pkg1 ... pkgN :要刪除的軟件包
詳細選項
--test 只執行刪除的測試
--noscripts 不運行預安裝和後安裝腳本程序
--nodeps 不檢查依賴性
通用選項
-vv 顯示調試信息
--root 讓RPM將指定的路徑做為"根目錄",這樣預安裝程序和後安裝程序都會安裝到這個目錄下
--rcfile 設置rpmrc文件為
--dbpath 設置RPM 資料庫存所在的路徑為
三、升級
命令格式
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 資料庫存所在的路徑為
四、查詢
命令格式:
rpm -q ( or --query) options
參數:
pkg1 ... pkgN :查詢已安裝的軟件包
詳細選項
-p (or ``-'') 查詢軟件包的文件
-f 查詢屬於哪個軟件包
-a 查詢所有安裝的軟件包
--whatprovides 查詢提供了 功能的軟件包
-g 查詢屬於 組的軟件包
--whatrequires 查詢所有需要 功能的軟件包
信息選項
顯示軟件包的全部標識
-i 顯示軟件包的概要信息
-l 顯示軟件包中的文件列表
-c 顯示配置文件列表
-d 顯示文檔文件列表
-s 顯示軟件包中文件列表並顯示每個文件的狀態
--scripts 顯示安裝、卸載、校驗腳本
--queryformat (or --qf) 以用戶指定的方式顯示查詢信息
--dump 顯示每個文件的所有已校驗信息
--provides 顯示軟件包提供的功能
--requires (or -R) 顯示軟件包所需的功能
通用選項
-v 顯示附加信息
-vv 顯示調試信息
--root 讓RPM將指定的路徑做為"根目錄",這樣預安裝程序和後安裝程序都會安裝到這個目錄下
--rcfile 設置rpmrc文件為
--dbpath 設置RPM 資料庫存所在的路徑為
五、校驗已安裝的軟件包
命令格式:
rpm -V ( or --verify, or -y) options
參數
pkg1 ... pkgN 將要校驗的軟件包名
軟件包選項
-p Verify against package file
-f 校驗所屬的軟件包
-a Verify 校驗所有的軟件包
-g 校驗所有屬於組 的軟件包
詳細選項
--noscripts 不運行校驗腳本
--nodeps 不校驗依賴性
--nofiles 不校驗文件屬性
通用選項
-v 顯示附加信息
-vv 顯示調試信息
--root 讓RPM將指定的路徑做為"根目錄",這樣預安裝程序和後安裝程序都會安裝到這個目錄下
--rcfile 設置rpmrc文件為
--dbpath 設置RPM 資料庫存所在的路徑為
六、校驗軟件包中的文件
語法:
rpm -K ( or --checksig) options file1.rpm ... fileN.rpm
參數:
file1.rpm ... fileN.rpm 軟件包的文件名
Checksig--詳細選項
--nopgp 不校驗PGP簽名
通用選項
-v 顯示附加信息
-vv 顯示調試信息
--rcfile 設置rpmrc文件為
七、其它RPM選項
--rebuilddb 重建RPM資料庫
--initdb 創建壹個新的RPM資料庫
--quiet 盡可能的減少輸出
--help 顯示幫助文件
--version 顯示RPM的當前版本
壹、安裝指定用選項
1.hash(或-h):以#顯示安裝進度,如果壹個軟件包很大、安裝費時時,用戶若想及時了解安裝進度,必須用此選項。該選項以顯示#號表示進度,每個#號表示2%的進度,總***要顯示50個#號。下面安裝MySQL軟件包,如下所示:
# rpm -i --hash MySQL-3.22.32-1.i386.rpm
##################################################
#
從上看出,軟件包安裝順利完成。
2.percent:以%(百分比)顯示安裝進度
percent的含義是百分比,而此選項的作用就是以百分比(%)來顯示安裝進度的。同樣是安裝MySQL軟件包,下面的輸出就不壹樣:
# rpm -i --percent MySQL-3.22.32-1.i386.rpm
%% 0.000000
%% 0.002600
%% 0.020586
......
%% 100.000000
#
上例中省略了很多輸出(......表示)。因為如果軟件包很大,則用--percent時輸出的內容會很多,所以用戶最好用--hash選項,以#號來表示安裝進度,這樣簡潔明了。
3.test:安裝測試
所謂安裝測試,意即並非真正的安裝,它不拷貝和建立任何文件。使用本選項的目的在於:檢測軟件包的依賴關系是否滿足,是否存在潛在的沖突等等。
# rpm -i --test autofs-3.1.3-2.i386.rpm
error: failed dependencies:
mktemp is needed by autofs-3.1.3-2
#
本例進行安裝測試時發現了依賴方面的錯誤,autofs所需要的mktemp包不存在,安裝中斷。
下面先安裝mktemp軟件包,再進行autofs安裝測試,看情況怎麽樣:
# rpm -i mktemp-1.5-2.i386.rpm
# rpm -i --test autofs-3.1.3-2.i386.rpm
#
由上看出,這次測試沒有出現什麽錯誤。
4.replacepkgs:替換軟件包
為什麽要替換軟件包?原因可能是系統中的軟件包已經破壞了,其中壹個或多個文件丟失或損毀。如果用戶想修復這個軟件包,用直接安裝的方法,RPM將報錯退出:
# rpm -V file
missing/usr/man/man1/file.1
# rpm -i file-3.26-6.i386.rpm
package file-3.26-6 is already installed
#
註:本例先用RPM校驗命令校驗壹下file軟件包,發現/usr/man/man1/file.1文件丟失。之後用安裝命令安裝,RPM提示軟件包file-3.26-6已經安裝了。(有關RPM校驗命令,<<精通RPM之六--校驗篇>>中將會有詳細的介紹)
如果采用--replacepkgs選項,結果又怎樣呢?
# rpm -i --replacepkgs file-3.26-6.i386.rpm
# rpm -V file
#
看來,RPM成功地替換了原軟件包,校驗壹下該包,發現沒有錯誤輸出,所以現在的軟件包是完整的。
5.replacefiles:替換文件
RPM是聰明的軟件包管理器,它維護著每個已安裝軟件包的文件信息。如果在安裝壹個新的軟件包時,RPM發現其中某個文件和已安裝的某個軟件包中的文件名字相同但內容不同,那麽RPM就會認為這是壹個文件沖突,會報錯退出:
# rpm -i ff-4.0-2.i386.rpm
file /root/my.a from install of ff-4.0-2 conflicts with file from package
zoo-6.0-1
#
註:本例中RPM發現要安裝的軟件包ff-4.0-2與已安裝的軟件包zoo-6.0-1中,含有相同的壹個文件/root/my.a,但其內容並不相同,所以提示了文件沖突的錯誤。
如果用戶想忽略這個錯誤,可使用--replacefiles選項,指示RPM發現文件沖突時,直接替換掉原文件即可。註意:除非用戶對所沖突的文件有很深的了解,不要輕易替換文件,以免破壞已安裝軟件包的完整性,確保其能正常運行。
# rpm -i --replacefiles ff-4.0-2.i386.rpm
#
采用該選項後,軟件包能順利安裝了。
另外,說到替換文件,若要安裝的軟件包中的文件已存在,但此文件並不屬於任何軟件包,RPM的做法是將文件換名保存(文件名後綴加.rpmorig),並且以警告信息提醒用戶。如下所示:
# rpm -i foo-6.0-1.i386.rpm
warning: /etc/foo.conf saved as /etc/foo.conf.rpmorig
#
6.allfiles:安裝所有文件
讀者看到此選項,也許要問:難道RPM安裝軟件包不是安裝其中所有的文件嗎? 我的回答是:如果是初次安裝的話,RPM確是將包中所有文件全部安裝。但是,如果是修復軟件包(用--replacepkgs選項),那結果就不壹定了。個中原因是:RPM包中有些配置文件可標識為missingok屬性(missingok指的是即使丟失,照樣OK),這樣的包安裝後,若這種類型的配置文件被刪除,則修復時RPM默認的做法是不再安裝這種類型的文件,除非采用--allfiles選項。下面看個實際的例子:
# rpm -i foo-6.0-1.i386.rpm
# ls -l /etc/foo.conf
-rw-r--r-- 1 root root9 Oct 11 09:50 /etc/foo.conf
# rm -f /etc/foo.conf
# rpm -i --replacepkgs foo-6.0-1.i386.rpm
# ls -l /etc/foo.conf
ls: /etc/foo.conf: 文件或目錄不存在
# rpm -i --replacepkgs --allfiles foo-6.0-1.i386.rpm
# ls -l /etc/foo.conf
-rw-r--r-- 1 root root9 Oct 11 09:50 /etc/foo.conf
註:本例中已預先知道foo包中的配置文件/etc/foo.conf帶有missingok屬性。
(1)用rpm -i命令安裝foo包;
(2)用ls命令列壹下屬於該包的配置文件/etc/foo.conf(能列出來,表明文件存在);
(3)用rm命令刪除了這個文件;
(4)用rpm -i --replacepkgs命令修復foo軟件包;
(5)因為修復時未用--allfiles選項,所以用ls命令列文件/etc/foo.conf時出錯了:文件不存在,沒有安裝上;
(6)用rpm -i --replacepkgs --allfiles命令安裝修復foo軟件包;
(7)再度用ls命令列文件,列了出來,表明這次安裝上了。
由本例看出,若用戶確實想安全恢復(修復)某個軟件包,最好使用--allfiles選項。壹般情況下則不必這麽做,因為帶有missingok屬性的配置文件本來就是可以丟失的嘛,不必太在意了。
豬妳成功