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