《LINUX實(shí)戰(zhàn):Linux rpm包管理詳解》要點(diǎn):
本文介紹了LINUX實(shí)戰(zhàn):Linux rpm包管理詳解,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
RPM 軟件擔(dān)保理器,原名為Red Hat Package Manager,是Linux系統(tǒng)最為常見和基礎(chǔ)的軟件擔(dān)保理工具,RPM是以一種數(shù)據(jù)庫(kù)記錄的方式將已經(jīng)安裝的數(shù)據(jù)包進(jìn)行記錄,為RPM軟件擔(dān)保理及后續(xù)yum軟件擔(dān)保理提供數(shù)據(jù)庫(kù)依據(jù),因此項(xiàng)目實(shí)施過程中,要定時(shí)備份RPM數(shù)據(jù)庫(kù),一旦數(shù)據(jù)庫(kù)破壞,數(shù)據(jù)包在安裝過程中無法查詢依據(jù).
RPM管理功能有,軟件包的查詢、軟件包切實(shí)其實(shí)認(rèn)、軟件包的信息查詢、軟件包的卸載和軟件包的更新多種用法.
RPM的查詢選項(xiàng)用法較為繁雜,特別是p選項(xiàng),指定未安裝的包,參數(shù)要跟完整的rpm包名,因?yàn)橹付ㄎ窗惭b的數(shù)據(jù)包時(shí),要在指定路徑下(如某光盤鏡像中的Package中)找完整的rpm包.不加p時(shí),只需指明普通報(bào)名即可,因?yàn)樵诎惭b過程中,數(shù)據(jù)庫(kù)存儲(chǔ)時(shí)會(huì)把普通報(bào)名存為一列.
其他選項(xiàng)如下所示:
功效 |
選項(xiàng) |
寄義 |
q |
a |
Query all installed ?packages. |
f |
Query package owning FILE. |
|
g |
Query packages with the ?group of GROUP. |
|
p |
Query? an ?(uninstalled)? package? ?PACKAGE_FILE |
|
i |
Display package information, |
|
l |
List files in package. |
|
c |
List only configuration ?files |
|
--scripts |
List the package specific ?scriptlet(s) |
|
Qa |
查詢所有安裝過的數(shù)據(jù)包 |
|
Qf |
查詢子模塊屬于哪個(gè)數(shù)據(jù)包安裝的 |
|
Ql |
查詢數(shù)據(jù)包中安裝路徑及內(nèi)容 |
|
Qpi |
查詢?yōu)榘惭b包的信息,如版本號(hào)、描寫信息等,P指定未安裝的 |
|
Qc |
查詢數(shù)據(jù)包 |
|
-q –scritps |
+包名,可查詢已經(jīng)安裝的包的scripts劇本 |
|
-qp –scripts |
+完整的rpm包名,可查詢尚未安裝的包的scripts劇本 |
[root@CentOS7 ~]#rpm -q --scripts httpd? #僅僅為q時(shí),無需加完整的包明
preinstall scriptlet (using? /bin/sh):
# Add the "apache"? group and user
/usr/sbin/groupadd -g 48 -r? apache 2> /dev/null || :
/usr/sbin/useradd -c? "Apache" -u 48 -g 48 \
? ? -s /sbin/nologin -r -d /usr/share/httpd apache 2> /dev/null? || :
postinstall scriptlet (using? /bin/sh):
…………
############################################################################
[root@centos7 ~]#rpm -qp –scripts? /media/Packages/httpd-2.4.6-40.el7.centos.x86_64.rpm? ? ? ? ? ? ? ? ? ? ? ? ? #P查詢未依照的完整包名
warning:? /media/Packages/httpd-2.4.6-40.el7.centos.x86_64.rpm: Header V3 RSA/SHA256? Signature, key ID f4a80eb5: NOKEY
preinstall scriptlet (using? /bin/sh):
# Add the "apache"? user
/usr/sbin/useradd -c? "Apache" -u 48 \
? ? -s /sbin/nologin -r -d /usr/share/httpd apache 2> /dev/null? || :
postinstall scriptlet (using? /bin/sh):
…………
############################################################################
[root@centos7 ~]#rpm -qf? /lib64/libxtables.so.10.0.0 #查詢模塊屬于哪個(gè)數(shù)據(jù)包
iptables-1.4.21-16.el7.x86_64
PRM軟件包的安裝,在RPM軟件包的安裝進(jìn)程中,同樣會(huì)用到眾多參數(shù).
具體用法如下所示:
[root@centos7 ~]#rpm -ivh? /media/Packages/psmisc-22.20-9.el7.x86_64.rpm
warning:? /media/Packages/psmisc-22.20-9.el7.x86_64.rpm: Header V3 RSA/SHA256? Signature, key ID f4a80eb5: NOKEY
Preparing...? ? ? ? ? ? ? ? ? ? ? ? ? ################################# [100%]
Updating / installing...
? 1:psmisc-22.20-9.el7? ? ? ? ? ? ? #################################? [100%]
RPM軟件包的卸載,在RPM軟件包的卸載過程中,可以零丁卸載某一個(gè)包,而不卸載相關(guān)依賴包,一個(gè)包有可能被多個(gè)包同時(shí)依賴,因此在卸載某個(gè)RPM包時(shí),有可能提現(xiàn)無法卸載,故通過強(qiáng)行卸載而不檢查依賴關(guān)系進(jìn)行卸載.
具體用法如下:
功效 |
選項(xiàng) |
寄義 |
e |
--nodeps |
卸載不反省依賴關(guān)系 |
--noscripts |
卸載不執(zhí)行劇本 |
|
--test |
卸載測(cè)試是否可以或許完成 |
[root@centos7 ~]#rpm -e? psmisc
[root@centos7 ~]#rpm -qi? psmisc
package psmisc is not? installed
在rpm的安裝過程中會(huì)自動(dòng)在目錄/var/lib/rpm中創(chuàng)建rpm的數(shù)據(jù)庫(kù),不管在安裝rpm包之前或在卸載rpm包之前都會(huì)查詢r(jià)pm數(shù)據(jù)庫(kù),檢查是否已安裝.如果不測(cè)刪除rpm數(shù)據(jù)庫(kù),即使通過rpm –initdb 或 rpm –rebuilddb 重構(gòu)數(shù)據(jù)庫(kù)也無法找回系統(tǒng)之前安裝的rpm包,會(huì)導(dǎo)致無法卸載rpm包或者重復(fù)安裝rpm數(shù)據(jù)包,因此建議系統(tǒng)定時(shí)備份rpm數(shù)據(jù)庫(kù).
本文永遠(yuǎn)更新鏈接地址:
《LINUX實(shí)戰(zhàn):Linux rpm包管理詳解》是否對(duì)您有啟發(fā),歡迎查看更多與《LINUX實(shí)戰(zhàn):Linux rpm包管理詳解》相關(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
轉(zhuǎn)載請(qǐng)注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/8883.html