rpm
一、功能:添加/刪除程序
1、RPM 的全稱爲Redhat Package Manager
2.
-ivh:安裝顯示安裝進度--install--verbose--hash
-Uvh:升級軟件包--Update;
-qpl:列出RPM軟件包內的文件信息[Query Package list];
-qpi:列出RPM軟件包的描述信息[Query Package install package(s)];
-qf:查找指定文件屬於哪個RPM軟件包[Query File];
-Va:校驗所有的RPM軟件包,查找丟失的文件[View Lost];
-e:刪除包
3、
-i, --install install package(s)
-v, --verbose provide more detailed output
-h, --hash print hash marks as package installs (good with -v)
-e, --erase erase (uninstall) package
-U, --upgrade=<packagefile>+ upgrade package(s)
Query options (with -q or --query):
-a, --all query/verify all packages
-p, --package query/verify a package file
-l, --list list files in package
-d, --docfiles list all documentation files
-f, --file query/verify package(s) owning file
二、應用
(1)安裝
1.-ivh rpm-ivh Linux-1.4-6.i368.rpm
強制rpm-ivh -replacepkgs Linux-1.4-6.i368.rpm
2.-Fvh
(2)卸載
1、-e
(3)驗證
rpm -qa|grep *
(4)定位
1、-qf:能查找該文件屬於某個文件夾
(5)升級
1.-Uvh
2.-Fvh 如果後面的軟件包沒有安裝,這個程序不安裝
(6)通過FTP在線安裝
1、rpm -i ftp://ftp.pht.com/pub/linux/redhat/...-1.4-6.i368.rpm
(7)查找損壞文件
1、若誤刪幾個文件而影響系統性能
2、-Va
(8)校驗
1、-K 表示檢查軟件包的完整性
--nodeps | 忽略包依賴 | 使用時機:當發生軟件屬性相依問題而無法安裝,但你執意安裝時 危險性: 軟件會有相依性的原因是因爲彼此會使用到對方的機制或功能,如果強制安裝而不考慮軟件的屬性相依, 則可能會造成該軟件的無法正常使用! |
--force | 忽略包和文件衝突 | 使用時機:這個參數其實就是 --replacefiles 與 --replacepkgs 的綜合體! |
--replacefiles | 強制安裝包,無論是否安裝了 | 使用時機: 如果在安裝的過程當中出現了『某個文件已經被安裝在你的系統上面』的資訊,又或許出現版本不合的信息 (confilcting files) 時,可以使用這個參數來直接覆蓋文件。 危險性: 覆蓋的動作是無法復原的!所以,你必須要很清楚的知道被覆蓋的文件是真的可以被覆蓋喔!否則會欲哭無淚! |
--replacepkgs | 強制安裝包,無論是否安裝了 | 使用時機: 重新安裝某個已經安裝過的軟件!如果你要安裝一堆 RPM 軟件文件時,可以使用 rpm -ivh *.rpm ,但若某些軟件已經安裝過了, 此時系統會出現『某軟件已安裝』的資訊,導致無法繼續安裝。此時可使用這個選項來重複安裝喔! |
--test | 安裝測試,並不實際 | 使用時機: 想要測試一下該軟件是否可以被安裝到使用者的 Linux 環境當中,可找出是否有屬性相依的問題。範例爲: rpm -ivh pkgname.i386.rpm --test |
--justdb | 使用時機: 由於 RPM 數據庫破損或者是某些緣故產生錯誤時,可使用這個選項來升級軟件在數據庫內的相關資訊。 | |
--nosignature | 使用時機: 想要略過數碼簽章的檢查時,可以使用這個選項 | |
--prefix 新路徑 | 規定安裝目錄 | 使用時機: 要將軟件安裝到其他非正規目錄時。舉例來說,你想要將某軟件安裝到 /usr/local 而非正規的 /bin, /etc 等目錄, 就可以使用『 --prefix /usr/local 』來處理了。 |
--noscripts | 使用時機:不想讓該軟件在安裝過程中自行運行某些系統命令。 說明: RPM 的優點除了可以將文件放置到定位之外,還可以自動運行一些前置作業的命令,例如數據庫的初始化。 如果你不想要讓 RPM 幫你自動運行這一類型的命令,就加上他吧! |
------------------------------------------轉載-------------------------------------------
rpm命令的使用:
1、安裝rpm包:
-i 表示進行安裝操作
-v 表示報告每一步操作的情況
-h 表示使用hash ”#”指示安裝進度
--replacepkgs 系統中已經存在了軟件包,那麼如果再要強行安裝時,可以使用這個參加來忽略錯誤
--nodeps 忽略檢查軟件之間的依賴關係
例:
rpm -i zsh-4.0.7-1.i386.rpm #基本安裝 rpm -ivh zsh-4.0.7-1.i386.rpm #安裝時顯示安裝過程
rpm -ivh --noplacepkgs zsh-4.0.7-1.i386.rpm #軟件已被安裝,強行再次安裝
rpm -ivh --nodeps mysql-4.1.7-4.RHEL4.1.i386.rpm #解決相互領事問題
2、升級rpm包:
-U 表示進行升級操作(軟件的升級安裝分爲兩步:一是卸載舊版本軟件;二是安裝新版本軟件。 爲了保留用戶對原軟件的配置,軟件的配置文件在升級過程中會保留)
-F 表示只升級系統中存在的軟件 (這個參數可以先檢查系統中是否已經有了舊的版本,如果有就執行升級操作,如果沒有,就跳過這個rpm包,繼續處理下一個rpm包。)
例:
rpm -Uvh zsh-4.0.7-1.i386.rpm #要用zsh-4.0.7-1.i386.rpm升級舊版本的zsh軟件
rpm -Fvh *.rpm #批量升級系統中的軟件可以使用的命令
3、降級rpm包:
--oldpackage 忽略錯誤信息,直接進行降級操作
例:rpm -Uvh --oldpackage zsh-4.0.7-1.i386.rpm #對zsh進行降級操作
4、卸載rpm包:
-e 表示進行卸載操作
--nodeps 表示忽略檢查依賴關係
例:rpm -e zsh (注意這裏的軟件名是軟件的名稱,不包括軟件的版本號)
rpm -e --nodeps httpd
5、查詢rpm包
-q 表示進行查詢操作
-i 表示顯示軟件包的概要信息
-l 表示顯示軟件包中的文件列表
-a 表示查詢所有已安裝的rpm包
-f 表示根據文件進行相關的查詢
例:
rpm -q gzip 查詢系統中是否已經安裝了gzip這個軟件包
rpm -qi gzip 查詢gzip包的概要信息
rpm -ql gzip 查詢gzip這個rpm包裏都有那些文件,以及列出這些軟件
rpm -qa | grep "zip" 查詢系統中所有的安裝包中是否包含有zip這個軟件包
rpm -qf /etc/ntp.conf 查詢/etc/ntp.conf這個文件屬於那個rpm包
6、校驗rpm包
-K 表示檢查軟件包的完整性
--nosignature 表示不驗證軟件包的簽名
例:
rpm -K --nosignature zsh-4.0.7-1.i386.rpm 校驗zsh-4.0.7-1.i386.rpm文件包,但不校驗簽名
Update 2006.12.20
安裝srpm軟件包:
擴展名爲.src.rpm的軟件包,是源程序rpm包(srpm),這種形式的軟件包其實就是包含了軟件的源代碼,安裝時需要進行編譯才能完成安裝。但它與 直接使用源代碼發佈的軟件包最大的區別在於,安裝src.rpm時,系統會根據當前的體系結構和操作系統的類型來產生相應的二進制rpm安裝包,然後再安 裝生成的rpm軟件包,既保留源代碼發佈的軟件包能適宜與多種硬件和操作系統平臺的優點,又能繼承rpm安裝包的方便性。
安裝方法:
1、生成二進制rpm安裝包
rpmbuild --rebuild 文件名
--rebuild 表示將srpm軟件包編譯並在/usr/src/RedHat/RPMS/I386目錄下生成二進制rpm安裝包
例:rpmbuild --rebuild dvd + rw -tools-5.21.4.10.8-6.src.rpm
2、安裝rpm安裝包
進入到/usr/src/RedHat/RPMS/I386目錄下,可以發現rpmbuild已經生成了rpm安裝包,直接使用rpm命令就可以安裝,命令如下:
rpm -ivh dvd + rw -tools-5.21.4.10.8-6.src.rpm
安裝源代碼發佈軟件包:
使用源代碼安裝軟件,能按照用戶的需要選擇用戶制定的安裝方式進行安裝,而不是僅僅依靠那些在安裝包中的預置的參數選擇進行安裝,爲用戶安裝軟件帶來了很大的靈活性。同時,目前還有許多軟件仍然只使用源代碼發佈,所以掌握源代碼發佈軟件包的安裝方法就相當的重要。
安裝步驟:
1、解包解壓縮
2、配置、編譯、和安裝軟件
具體步驟:
1、解包解壓縮:
tar包:tar xvf filename.tar #這種安裝包直接使用命令tar打包而成
tar.gz包:tar zxvf filename.tar.gz #這種安裝包使用tar命令打包加上gzip命令壓縮而成,需要保證系統中安裝了gzip軟件
tar.Z包:tar Zxvf filename.tar.Z #這種安裝包使用tar命令打包加上compress命令壓縮而成,需要保證系統安裝了ncompress軟件
tar.bz2包:tar jxvf filename.tar.bz2 #這種安裝包使用tar命令打包加上bzip2命令壓縮而成,需要保證系統中安裝了bzip2軟件
2、配置、編譯、安裝軟件
在配置、編譯、安裝之前,進入到軟件包解壓後的目錄,閱讀軟件的相關說明文件,如Readme或者Install,瞭解安裝的需求,配置參數以及注意事項等。
配置: . /configure 如果要安裝到指定的目錄,可以用“--prefix”參數 /configure --prefix = /usr/local/freeradius其實源程序目錄中的configure命令是一個可執行腳本,,首先會檢查當前系統是否有符合軟件編譯安裝的相關環境(如是否有GNU C/C++編譯器等),然後根據它從系統中讀出各種所需的屬性在當前目錄生成Makefile文件供編譯安裝使用。
編譯:Make是Unix和Linux系統下最常用的二進制程序和函數編譯工具。Make通過讀取當前目錄下文件Makefile的內容來自動完成編譯工作。 Makefile文件需要按照某種語法進行編寫,文件中需要說明如何編譯各個源文件並連接生成可執行文件,並要求定義源文件之間的依賴關係,一般是由 configure腳本來生成。對於一些小軟件,也可能不需要運行configure腳本,軟件已經自帶了Makefile文件。
安裝:make install
清理臨時文件:make clean
卸載源代碼發佈軟件:
源代碼發佈軟件會將文件分散安裝在系統的多個目錄中,往往很難刪除。有些軟件包的源代碼在編譯安裝後可以在源程序目錄中運行“make uminstall”命令來進行卸載,如果不提供此功能,那麼就得手動卸載。所以在安裝軟件時,如果能使用configure腳本的“--prefix” 參數來指定安裝目錄名時,卸載軟件可直接使用“rm -rf”f直接刪除就成。不過,最好參考軟件的卸載部分的幫助信息。