RPM命令簡介:
創(chuàng)新互聯(lián)建站專注于禪城網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供禪城營銷型網(wǎng)站建設(shè),禪城網(wǎng)站制作、禪城網(wǎng)頁設(shè)計、禪城網(wǎng)站官網(wǎng)定制、微信小程序服務(wù),打造禪城網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供禪城網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。RPM 全名是『 RedHat Package Manager 』簡稱則為 RPM。RPM 是以一種數(shù)據(jù)庫記錄的方式來將你所需要的套件安裝到你的 Linux 主機(jī)的一套管理程序。
1.命令格式:
rpm [選項][文件]
2.命令功能:
RPM大的特點(diǎn)就是將您要安裝的套件先編譯且打包好了,透過包裝好的套件里頭預(yù)設(shè)的數(shù)據(jù)庫記錄, 記錄這個套件要安裝的時候必須要的相依屬性模塊(Linux主機(jī)需要預(yù)先存在的幾個必須的套件),當(dāng)安裝時RPM會先依照套件里頭的紀(jì)錄數(shù)據(jù)查詢Linux主機(jī)的相依屬性套件是否滿足,若滿足則予以安裝,若不滿足則不予安裝。那么安裝的時候就將該套件的信息整個寫入RPM的數(shù)據(jù)庫中,以便未來的查詢、驗證與反安裝!
這樣的優(yōu)點(diǎn)是:
a. 由于已經(jīng)編譯完成并且打包完畢,所以安裝上很方便( 不需要再重新編譯 );
b. 由于套件的信息都已經(jīng)記錄在 Linux 主機(jī)的數(shù)據(jù)庫上,很方便查詢、升級與反安裝;
缺點(diǎn)是:
a. 安裝的環(huán)境必須與打包時的環(huán)境需求一致或相當(dāng);;
b. 需要滿足套件的相依屬性需求;
c. 反安裝時需要特別小心,最底層的套件不可先移除,否則可能造成整個系統(tǒng)的問題!
3.命令參數(shù):
3.1.RPM 安裝包
rpm -i /PATH/TO/PACKAGE_FILE
-h: 以#顯示進(jìn)度;每個#表示2%;
-v: 顯示詳細(xì)過程
-vv: 更詳細(xì)的過程
rpm -ivh /PATH/TO/PACKAGE_FILE
--nodeps: 忽略依賴關(guān)系;
--replacepkgs: 重新安裝,替換原有安裝;
--force: 強(qiáng)行安裝,可以實現(xiàn)重裝或降級,為--replacefiles與--replacepkgs的綜合體
--test :測試安裝該軟件,可找出是否有屬性相依的問題。
eg1: rpm -ivh pkgname.i386.rpm --test
--replacefiles: 安裝的過程當(dāng)中出現(xiàn)了『某個文件已經(jīng)被安裝在你的系統(tǒng)上面』的資訊,或出現(xiàn)版本不合的信息(confilcting files) 時,可以使用這個參數(shù)來直接覆蓋文件。
危險性:覆蓋的動作是無法復(fù)原的!否則會欲哭無淚!
[root@localhost]~# rpm -ivh zsh-4.2.6-3.el5.x86_64.rpm
rpm -ivh zsh-4.2.6-3.el5.x86_64.rpm
warning: zsh-4.2.6-3.el5.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
package zsh-4.2.6-3.el5.x86_64 is already installed
[root@localhost]~# 網(wǎng)絡(luò)安裝某個文件
[root@localhost]~# rpm -ivhhttp://website.name/path/pkgname.rpm
3.2.RPM 查詢包
在查詢的部分,所有的參數(shù)之前都需要加上 -q 才是所謂的查詢!
查詢主要分為兩部分,一個是查已安裝,另一個則是查某個 rpm 檔案內(nèi)容。
參數(shù):
-q:僅查詢(query),后面接的套件名稱是否有安裝;
-qa:列出所有的(all),已經(jīng)安裝在本機(jī) Linux 系統(tǒng)上面的所有套件名稱;
-qi :列出該套件的詳細(xì)信息 (information),包含開發(fā)商、版本與說明等;
-ql:列出該套件所有的檔案與目錄所在完整文件名 (list);
-qc :列出該套件的配置文件 (找出在 /etc/ 底下的檔名而已)
-qd:列出該套件的所有說明檔 (找出與 man 有關(guān)的檔案document)
-qR :列出與該套件有關(guān)的相依套件所含的檔案 (Required)
-qf:由后面接的文件名稱(file),找出該檔案屬于哪一個已安裝的套件;
rpm -q --scripts PACKAGE_NAME: 查詢指定包中包含的腳本(scripts);
-qp[i|c|d|l|R]:未安裝時,查詢RPM檔案內(nèi)將含有的信息(Package)
注意 -qp 后面接的所有參數(shù)與上面的說明一致。
但用途僅在于找出RPM檔案內(nèi)的信息,而非已安裝的套件信息!
[root@localhost]/media/Server# rpm -qi bash
Name : bash Relocations: (not relocatable)
Version : 3.2 Vendor: Red Hat, Inc.
Release : 24.el5 Build Date: Tue 21 Oct 2008 08:15:56 PM CST
Install Date: Thu 17 Apr 2014 11:41:58 AM CST Build Host: hs20-bc1-5.build.redhat.com
Group : System Environment/Shells Source RPM: bash-3.2-24.el5.src.rpm
Size : 5388767 License: GPLv2+
Signature : DSA/SHA1, Mon 08 Dec 2008 08:25:44 PM CST, Key ID 5326810137017186
Packager : Red Hat, Inc.
URL : http://www.gnu.org/software/bash
Summary : The GNU Bourne Again shell (bash) version 3.1.
Description :
The GNU Bourne Again shell (Bash) is a shell or command language
interpreter that is compatible with the Bourne shell (sh). Bash
incorporates useful features from the Korn shell (ksh) and the C shell
(csh). Most sh scripts can be run by bash without modification. This
package (bash) contains bash version 3.1, which improves POSIX
compliance over previous versions.
[root@localhost]/media/Server# rpm -qlbash
/bin/bash
/bin/sh
/etc/skel/.bash_logout
/etc/skel/.bash_profile
/etc/skel/.bashrc
/usr/bin/bashbug-64
...
[root@localhost]/media/Server# rpm -qf/bin/ls
coreutils-5.97-23.el5
[root@localhost]/media/Server# rpm -q --scripts zsh
postinstall scriptlet (using /bin/sh): 安裝后要執(zhí)行的程式
if [ ! -f /etc/shells ] ; then
echo "/bin/zsh" > /etc/shells
else
grep -q "^/bin/zsh$" /etc/shells || echo "/bin/zsh" >> /etc/shells
fi
/sbin/install-info /usr/share/info/zsh.info.gz /usr/share/info/dir \
--entry="* zsh: (zsh). An enhanced bourne shell."
preuninstall scriptlet (using /bin/sh):卸載前要執(zhí)行的程式
if [ "$1" = 0 ] ; then
/sbin/install-info --delete /usr/share/info/zsh.info.gz /usr/share/info/dir \
--entry="* zsh: (zsh). An enhanced bourne shell."
fi
postuninstall scriptlet (using /bin/sh):卸載后要執(zhí)行的程式
if [ "$1" = 0 ] ; then
if [ -f /etc/shells ] ; then
TmpFile=`/bin/mktemp /tmp/.zshrpmXXXXXX`
grep -v '^/bin/zsh$' /etc/shells > $TmpFile
cp -f $TmpFile /etc/shells
rm -f $TmpFile
chmod 644 /etc/shells
fi
fi
3.3.RPM 升級包
rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE: 如果裝有老版本的,則升級;否則,則安裝;
-Uvh --oldpackage: 降級
rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:如果裝有老版本的,則升級;否則,退出;
3.4.RPM 校驗
參數(shù):
-V :后面加的是套件名稱,若該套件所含的檔案被更動過,才會列出來;
-Va :列出目前系統(tǒng)上面所有可能被更動過的檔案;
-Vp :后面加的是文件名稱,列出該套件內(nèi)可能被更動過的檔案;
-Vf :列出某個檔案(file)是否被更動過~
[root@linux ~]# rpm -Va
[root@linux ~]# rpm -V 已安裝的套件名稱
[root@linux ~]# rpm -Vp 某個 RPM 檔案的檔名
[root@linux ~]# rpm -Vf 在系統(tǒng)上面的某個檔案
3.5.RPM 卸載包
[root@linux ~]# rpm -e logrotate <==卸載套件,無信息反饋即OK
[root@linux ~]# rpm --rebuilddb <==重建數(shù)據(jù)庫
3.6.RPMBUILD 安裝包
--rebuild
這個參數(shù)會將后面的 SRPM 進(jìn)行『編譯』與『打包』的動作,最后會產(chǎn)生 RPM 的檔案,但是產(chǎn)生的 RPM 檔案并沒有安裝到系統(tǒng)上。
--recompile
這個動作會直接的『編譯』『打包』并且『安裝』啰!請注意, rebuild 僅『編譯并打包』而已,而 recompile 不但進(jìn)行編譯跟打包,還同時進(jìn)行『安裝』了!
3.7.重建數(shù)據(jù)庫
rpm
--rebuilddb: 重建數(shù)據(jù)庫,一定會重新建立;
--initdb:初始化數(shù)據(jù)庫,沒有才建立,有就不用建立;
[root@localhost ~]# ls /var/lib/rpm 鎖文件
Basenames __db.001 Dirnames Installtid Providename Requirename Sigmd5
Conflictname __db.002 Filemd5s Name Provideversion Requireversion Triggername
__db.000 __db.003 Group Packages Pubkeys Sha1header
3.8.檢驗來源合法性,及軟件包完整性 ( rpm -K 英文:check)
加密類型:
對稱:加密解密使用同一個密鑰
公鑰:一對兒密鑰,公鑰,私鑰;公鑰隱含于私鑰中,可以提取出來,并公開出去;
單向:
# ls /etc/pki/rpm-gpg/
RPM-GPG-KEY-redhat-release
rpm -K /PAPT/TO/PACKAGE_FILE
dsa, gpg: 驗正來源合法性,也即驗正簽名;可以使用--nosignature,略過此項
sha1, md5: 驗正軟件包完整性;可以使用--nodigest,略過此項
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release: 導(dǎo)入密鑰文件
[root@localhost ~]# rpm -K zsh-4.2.6-3.el5.x86_64.rpm
zsh-4.2.6-3.el5.x86_64.rpm: (SHA1) DSA sha1 md5 (GPG) NOT OK (MISSING KEYS: GPG#37017186)
[root@localhost ~]# rpm --import/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[root@localhost ~]# rpm -K zsh-4.2.6-3.el5.x86_64.rpm
zsh-4.2.6-3.el5.x86_64.rpm: (sha1) dsa sha1 md5 gpg OK
[root@localhost ~]# rpm -K --nodigest zsh-4.2.6-3.el5.x86_64.rpm
zsh-4.2.6-3.el5.x86_64.rpm: (sha1) dsa gpg OK
---end---
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。