在linux下安裝rpm包時經常會遇到下面這個問題:
error: Failed dependencies:
.....................................................
省略號表示安裝此rpm缺少的包。
遇到此問題時可以在安裝rpm包命令的後面加兩個參數,如:
rpm -ivh libstdc++5.0-3.3.3-62745cl.i386.rpm
改成:
rpm -ivh libstdc++5.0-3.3.3-62745cl.i386.rpm --nodeps --force
加上那兩個參數的意義就在於,
安裝時不再分析包之間的依賴關係而直接安裝,
也就不會再提示error: Failed dependencies:這樣的錯誤了
在RedHat Linux和Mandrake等兼容RedHat的發行版中,整個發行版都是利用RPM安裝的。所以安裝新軟件的最好方
法是從網絡上下載rpm包。
1)用RPM安裝軟件包,最簡單的命令如下:
# rpm -ivh foo-1.0-l.i386.rpm (這裏講的軟件包是foo-1.0-l.i386.rpm,以下都是)
foo####################
下面rpm就會輸出該軟件包的名稱,並顯示一個狀態條。安裝很簡單。
2)拆除已安裝的軟件包
要反安裝軟件包foo,只需輸入以下這行命令:
# rpm -e foo
注意:軟件包名是foo,而不是rpm文件名"foo-1.0-l.i386.rpm"。
3)升級軟件包
升級軟件類似於安裝軟件:
# rpm -Uvh foo-2.0-l.i386.rpm
foo####################
用戶要注意的是:rpm會自動反安裝相應軟件包的老版本。如果老版本軟件的配置文件通新版本的不兼容,rpm會自動將其保存爲另外一個文件,用戶會看到下面的信息:
saving /etc/foo.conf as /etc/foo.conf.rpmsave
這樣用戶就可以自己手工去更改相應的配置文件。
另外如果用戶要安裝老版本的軟件,用戶就會看到下面的出錯信息:
# rpm -Uvh foo-1.0-l.i386.rpm
foo packag foo-2.0-l(which is newer) is already installed
error:foo-1.0-l.i386.rpm cannot be installed
如果用戶要搶行安裝就使用-oldpackage參數。
4)查詢軟件包
用戶可以用rpm -q在rpm的數據庫中查詢相應的軟件,rpm會給出軟件包的名稱,版本,發佈版本號,例如:
# rpm -q foo
foo-2.0-l
下面是查詢時可以使用的特定參數:
-a 查詢目前系統安裝的所有軟件包。
-f 文件名查詢包括嘎文件的軟件包。
-F 同-f參數,只是輸入是標準輸入(例如 find /usr/bin | rpm -qF)
-q 軟件包名 : 查詢該軟件包
-Q 同-p參數,只是輸入是標準輸入(例如 find /mnt/cdrom/RedHat/RPMS | rpm -qQ)
下面是輸出時的格式選擇:
-i 顯示軟件包的名稱,描述,發行,大小,編譯日期,安裝日期,開發人員等信息。
-l 顯示軟件包包含的文件
-s 顯示軟件包包含的文件目前的狀態,只有兩種狀態:normal和missing
-d 顯示軟件包中的文檔(如man,info,README等)
-c 顯示軟件包中的配置文件,這些文件一般是安裝後需要用戶手工修改的,例如:sendmail.cf,passwd,inittab等
如果用-v參數就可以得到類似於ls -l的輸出
5)用rpm校驗軟件包
用戶可以用rpm來校驗已經安裝的軟件包,rpm可以校驗文件大小、MD5校驗碼、文件權限、類型和屬主等信息。
下面是校驗時的參數說明:
-a 簡單校驗軟件包中的文件是否存在
-b 校驗軟件包中的單個文件
-c 校驗安裝的所有軟件包
-d 比較一個源軟件包和已經安裝的軟件包
如果檢驗通過就沒有任何出錯信息,如果有出錯信息,它的格式如下:出錯信息是一個8位的字符串,如果是一個".",就代表沒有問題,下面是相應的字符的意義:
5 MD5校驗錯
S 文件大小錯
L 符號連接
T 文件修改時間錯
D 設備文件錯
U 用戶名錯
G 組名錯
M 屬性(包括改寫權和文件類型)錯
如果用戶看到這些信息,最好重新安裝或者手工修復。
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
rpm 實用技巧!
1)用戶可以通過FTP來安裝軟件包。如果用戶能夠連上網絡,想安裝某個新的軟件包時,可以直接用它的URL地址來安裝:
比如:現在在ftp.linuxsir.com/pub/linux/redhat/RPMS/下有這個文件包:foo-1.0-1.i386.rpm,那就可以用這樣的命令:
# rpm -i ftp.linuxsir.com/pub/linux/redhat/RPMS/foo-1.0-1.i386.rpm
來安裝,也可以查詢!
2)如果用戶不小心巫山了幾個文件,但不確定到底是那些文件,想對整個系統進行校驗,以瞭解哪些部分可能已經損壞,可以用:
# rpm -Va
3)如果用戶碰到一個人不出來的文件,想要知道它是屬於那一個軟件包的話,可以這樣做:
# rpm -qf /usr/X11R6/bin/xjewel
結果會得到以下信息:
xjewel-1.6-1
4)如果用戶得到一個新的RPM文件,卻不清楚它的內容;或想了解某個文件包將會在系統裏安裝那些文件,可以這樣做:
# rpm -qpi koules-1.2-2.i386.rpm