WIKI使用導(dǎo)航
站長(zhǎng)百科導(dǎo)航
站長(zhǎng)專題
- 網(wǎng)站推廣
- 網(wǎng)站程序
- 網(wǎng)站賺錢
- 虛擬主機(jī)
- cPanel
- 網(wǎng)址導(dǎo)航專題
- 云計(jì)算
- 微博營(yíng)銷
- 虛擬主機(jī)管理系統(tǒng)
- 開放平臺(tái)
- WIKI程序與應(yīng)用
- 美國(guó)十大主機(jī)
CentOS/使用RPM管理包
RPM概述[ ]
RPM是一個(gè)開放的軟件包管理系統(tǒng),最初的全稱是Red Hat Package Manager。它工作于Red Hat Linux以及其它Linux系統(tǒng),成為了Linux中公認(rèn)的軟件包管理標(biāo)準(zhǔn)。紅帽子軟件公司鼓勵(lì)其他廠商來了解RPM并在自己的產(chǎn)品中使用它。
RPM的發(fā)布基于GPL協(xié)議。隨著RPM在各種發(fā)行版本的廣泛使用,如今RPM的全稱是RPM Package Manager。RPM由RPM社區(qū)負(fù)責(zé)維護(hù),其官方網(wǎng)站:http://www.rpm .org
為什么使用RPM[ ]
使用RPM最大的好處在于它提供快速之安裝,減少編譯安裝之偵錯(cuò)困擾。對(duì)于最終用戶來說,RPM所提供的眾多功能使維護(hù)系統(tǒng)要比以往容易的多。安裝、卸載和升級(jí)RPM軟件包均只需一條命令即可完成,所有煩瑣的細(xì)節(jié)問題無須您費(fèi)心。RPM維護(hù)一個(gè)所有已安裝的軟件包和文件的數(shù)據(jù)庫(kù),可以讓您進(jìn)行功能強(qiáng)大的軟件包查詢和驗(yàn)證工作。
在軟件包升級(jí)過程中,RPM會(huì)對(duì)配置文件進(jìn)行特別處理,因此您絕對(duì)不會(huì)丟失以往的定制信息——這對(duì)于直接使用.tar.gz文件是不可能的。對(duì)于程序員,RPM可以讓您連同軟件的源代碼打包成源代碼和二進(jìn)制軟件包供最終用戶使用。這個(gè)過程十分簡(jiǎn)單,整個(gè)過程由一個(gè)主文件和可能的補(bǔ)丁程序組成。RPM在軟件的新版本發(fā)布時(shí),這種“原始”源代碼,補(bǔ)丁程序和軟件生成指令的清晰描述簡(jiǎn)化了軟件包的維護(hù)工作。
RPM的功能[ ]
簡(jiǎn)言之,RPM具有如下五大功能:
- 安裝——將軟件從包中解出來,并且安裝到硬盤。
- 卸載——將軟件從硬盤清除。
- 升級(jí)——替換軟件的舊版本。
- 查詢——查詢軟件包的信息。
- 驗(yàn)證——檢驗(yàn)系統(tǒng)中的軟件與包中軟件的區(qū)別。
RPM包的名稱格式[ ]
RPM包的名稱有其特有的格式,如某軟件的RPM包名稱由如下部分組成:
name-version.type.rpm
其中:
- name為軟件的名稱
- version為軟件的版本號(hào)
- type為包的類型
- i[3456]86:表示在Intel x86計(jì)算機(jī)平臺(tái)上編譯的
- sparc:表示在sparc計(jì)算機(jī)平臺(tái)上編譯的
- alpha:表示在alpha計(jì)算機(jī)平臺(tái)上編譯的
- src:表示軟件源代碼
- rpm 為文件擴(kuò)展名
例如:
bind-9.2.1-16.i386.rpm:是bind(9.2.1-16)的Intel 386平臺(tái)編譯版本包 bind-9.2.1-16.sparc.rpm:是bind(9.2.1-16)的sparc平臺(tái)編譯版本包 bind-9.2.1-16.alpha.rpm:是bind(9.2.1-16)的alpha平臺(tái)編譯版本包 bind-9.2.1-16.src.rpm:是bind(9.2.1-16)的源代碼版本包
因此,看到一個(gè)RPM包的文件名之后就可以獲得該軟件包的大致信息了。
rpm命令的使用[ ]
rpm命令簡(jiǎn)介[ ]
在CentOS中升級(jí)和安裝系統(tǒng)通常使用yum 命令,因?yàn)樗梢粤己玫慕鉀Q包的依賴性問題,即自動(dòng)安裝/處理依賴的其他軟件包。但是 rpm 命令還是在某些情況下用得上,比如,查詢包信息,安裝或卸載一個(gè)不在CentOS軟件庫(kù)中的.rpm包等。
常見的用法:
命令 | 說明 |
---|---|
rpm -i <.rpm file name> | 安裝指定的 .rpm 文件 |
rpm -U <.rpm file name> | 用指定的.rpm文件升級(jí)同名包 |
rpm -e <package-name> | 刪除指定的軟件包 |
rpm -q <package-name> | 查詢指定的軟件包在系統(tǒng)中是否安裝 |
rpm -qa | 查詢系統(tǒng)中安裝的所有RPM軟件包 |
rpm -qf </path/to/file> | 查詢系統(tǒng)中指定文件所屬的軟件包 |
rpm -qi <package-name> | 查詢一個(gè)已安裝軟件包的描述信息 |
rpm -ql <package-name> | 查詢一個(gè)已安裝軟件包里所包含的文件 |
rpm -qc <package-name> | 查看一個(gè)已安裝軟件包的配置文件位置 |
rpm -qpi <.rpm file name> | 查詢一個(gè)未安裝的 RPM文件的描述信息 |
rpm -qpl <.rpm file name> | 查詢一個(gè)未安裝的 RPM文件里所包含的文件 |
rpm -qpc <.rpm file name> | 查看一個(gè)未安裝的 RPM文件的配置文件位置 |
rpm -qpd <.rpm file name> | 查看一個(gè)未安裝的 RPM文件的文檔安裝位置 |
rpm -qpR <.rpm file name> | 查詢一個(gè)未安裝的 RPM文件的最低依賴要求 |
rpm -V <package-name> | 校驗(yàn)指定的軟件包 |
rpm -V </path/to/file> | 校驗(yàn)包含指定文件的軟件包 |
rpm -Vp <.rpm file name> | 校驗(yàn)指定的未安裝的 RPM文件 |
rpm -Va | 校驗(yàn)所有已安裝的軟件包 |
rpm --rebuilddb | 重新創(chuàng)建系統(tǒng)的RPM數(shù)據(jù)庫(kù),用于不能安裝和查詢的情況 |
rpm --import <key file> | 導(dǎo)入指定的簽名文件 |
rpm -Kv --nosignature <.rpm file name> | 檢查指定的RPM文件是否已損壞或被惡意篡改(驗(yàn)證包的MD5校驗(yàn)和) |
rpm -K <.rpm file name> | 檢查指定RPM文件的GnuPG簽名 |
rpm -qd <package-name> | 查看一個(gè)已安裝軟件包的文檔安裝位置 |
rpm -qR <package-name> | 查詢一個(gè)已安裝軟件包的最低依賴要求 |
- 在安裝/升級(jí)時(shí),還可以使用-vh參數(shù),其中:v表示在安裝過程中將顯示較詳細(xì)的信息;h表示顯示水平進(jìn)度條
- 在使用 rpm -qa 命令時(shí),還可以使用 |more 或 |grep 進(jìn)行過濾
- 所有的 <.rpm file nam e > 既可以是本地文件,也可以是遠(yuǎn)程文件
- 校驗(yàn)軟件包將檢查軟件包中的所有文件是否與系統(tǒng)中所安裝的一致性。包括校驗(yàn)碼文件大小,存取權(quán)限和屬主屬性都
- 將根據(jù)數(shù)據(jù)庫(kù)進(jìn)行校驗(yàn)。該操作可在用戶安裝了新程序以后懷疑某些文件遭到破壞時(shí)使用。
rpm命令使用舉例[ ]
安裝軟件包:
1、安裝本地軟件包
# rpm -ivh /media/cdrom/CentOS/elinks-0.11.1-5.1.el5.i386.rpm Preparing... # 1:elinks #
2、安裝遠(yuǎn)程軟件包
# rpm -ivh http://centos.candishosting.com.cn/5/os/i386/CentOS/elinks-0.11.1-5.1.el5.i386.rpm Preparing... # 1:elinks #
3、安裝不在CentOS軟件庫(kù)中的軟件包
下面以安裝Fedora Extras 中的軟件包為例。
# rpm --import http://download.fedora.redhat.com/pub/fedora/linux/extras/RPM-GPG-KEY-Fedora-Extras # wget http://download.fedora.redhat.com/pub/fedora/linux/extras/6/i386/darcs-1.0.9-3.fc6.i386.rpm # rpm -ivh darcs-1.0.9-3.fc6.i386.rpm Preparing... # 1:darcs #
升級(jí)軟件包:
1、從本地文件升級(jí)軟件包:
# rpm -Uvh elinks-0.11.1-5.1.0.1.el5.i386.rpm Preparing... # 1:elinks #
2、從遠(yuǎn)程文件升級(jí)軟件包:
# rpm -Uvh http://centos.candishosting.com.cn/5/updates/i386/RPMS/elinks-0.11.1-5.1.0.1.el5.i386.rpm Preparing... # 1:elinks #
卸載軟件包:
# rpm -e elinks
查詢軟件包:
# 查詢 elinks 軟件包在系統(tǒng)中是否安裝 $ rpm –q elinks # 查詢系統(tǒng)中已安裝的 elinks 軟件包的描述信息 $ rpm –qi elinks # 查詢系統(tǒng)中已安裝的 elinks 軟件包里所包含的文件 $ rpm –ql elinks # 查詢系統(tǒng)中文件 /etc/passwd 所屬的軟件包 $ rpm –qf /etc/passwd # 查詢 elinks-0.11.1-5.1.0.1.el5.i386.rpm 包文件中的信息 $ rpm –qp elinks-0.11.1-5.1.0.1.el5.i386.rpm # 查詢系統(tǒng)中已經(jīng)安裝的所有包含名字php的軟件包 $ rpm –qa | grep php # 查詢 httpd 包的最低依賴要求 $ rpm -qR httpd
驗(yàn)證軟件包:
// 驗(yàn)證 elinks 軟件包 # rpm –V elinks // 驗(yàn)證包含文件 /etc/passwd 的軟件包 # rpm –Vf /etc/passwd // 驗(yàn)證 elinks-0.11.1-5.1.0.1.el5.i386.rpm 包文件 # rpm –Vp elinks-0.11.1-5.1.0.1.el5.i386.rpm // 驗(yàn)證所有已安裝的軟件包 # rpm –Va
如果校驗(yàn)一切正常,將沒有輸出,反之則輸出不一致結(jié)果,格式為:
xxxxxxxx 文件名
字段1由八個(gè)字符組成,每個(gè)字符指明該文件與RPM數(shù)據(jù)庫(kù)中一致或不一致的地方,單個(gè)點(diǎn)(.)說明沒有異常,具體含義如下:
- 5 — 校驗(yàn)和
- S — 文件大小
- L — 符合連接
- T — 文件修改時(shí)間
- D — 設(shè)備
- U — 用戶
- G — 組
- M — 文件模式
- ? — 文件不可讀
參考來源[ ]
http://www.centospub.com/bbs/forumdisplay.php?fid=10