包管理工具rpm和yum的用法-創(chuàng)新互聯(lián)

包管理工具rpm和yum的用法

成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比滁州網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式滁州網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋滁州地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。

一、rpm的用法

rpm原本是Rde Hat Linux發(fā)行版專門(mén)用來(lái)管理Linux各項(xiàng)套件的程序,由于它遵循GPL規(guī)則且功能強(qiáng)大方便,因而廣受歡迎。逐漸收到其他發(fā)行版的采用,RPM套件管理方式的出現(xiàn),讓Linux易于安裝、升級(jí),間接提升了Linux的適用性。

rpm用法:rpm [OPTION...]

1、rpm安裝軟件包,后面需要跟上程序包文件的絕對(duì)路徑或相對(duì)路徑

常用選項(xiàng):

-v:顯示指令的執(zhí)行過(guò)程

-vv:詳細(xì)顯示指令執(zhí)行過(guò)程,便于排錯(cuò)

-h:以#號(hào)顯示程序包管理執(zhí)行進(jìn)度

-i,--install:安裝程序

包管理工具rpm和yum的用法

rpm在執(zhí)行安裝時(shí)還可以使用以下選項(xiàng):

--test:測(cè)試安裝,但不真正執(zhí)行安裝

--nodeps:有時(shí)安裝的包具有依賴關(guān)系,需要先安裝依賴包,使用該選項(xiàng)后則會(huì)忽略依賴關(guān)系

--nodigest:不檢查包的完整性

--nosignature:不檢查包的來(lái)源合法性

--noscripts:有的程序安裝時(shí)會(huì)執(zhí)行相應(yīng)的腳本,使用該選項(xiàng)將不執(zhí)行程序自帶的腳本

--force:強(qiáng)制

(1)rpm安裝程序包時(shí),有可能要安裝的包里有一些文件可能會(huì)覆蓋現(xiàn)有文件,此時(shí)可能會(huì)出現(xiàn)警告或者提示,缺省情況下是無(wú)法正確安裝的,這時(shí)可以用 rpm --force -i 強(qiáng)制安裝即可。

(2)rpm安裝程序包時(shí),有可能要安裝的包所需要的一些軟件沒(méi)有安裝,缺省情況下也是無(wú)法正確安裝的,這時(shí)可以使用 rpm --nodeps -i 來(lái)忽略此信息,如果用 rpm -i --force --nodepe 可以忽略所有依賴關(guān)系和文件問(wèn)題,什么包都能安裝上,但這種強(qiáng)制安裝的軟件包不能保證完全發(fā)揮功能。

2、rpm2cpio工具,該工具可以解壓縮并安裝rpm包內(nèi)的任意單個(gè)文件。如果系統(tǒng)中的某個(gè)程序已安裝過(guò),但是只是某個(gè)文件缺失導(dǎo)致程序不能用,這種情況下如果直接運(yùn)行 rpm -ivh 進(jìn)行安裝時(shí)會(huì)提示已安裝,如果跟上--force強(qiáng)制安裝,則會(huì)覆蓋該程序的所有文件,這種情況下可以使用rpm2cpio工具進(jìn)行解壓安裝,用法如下:

第一步:rpm2cpio 包文件|cpio -itv :可以預(yù)覽包內(nèi)的文件列表

第二步:rpm2cpio 包文件|cpio -idv "某一個(gè)文件" :只釋放軟件包列表中的某一個(gè)文件

第三步:將釋放出來(lái)的某個(gè)文件拷貝到所需目錄下即可

3、rpm升級(jí)軟件包,升級(jí)方式有兩種,分別為:

rpm {-U|--upgrade} [install-options] PACKAGE_FILE...

和 rpm {-F|--freshen} [install-options] PACKAGE_FILE...

-U|--upgrade:這種方式升級(jí)軟件包時(shí),如果安裝有舊版程序包,則“升級(jí)”,如果不存在舊版程序包,則“安裝”。

-F|--freshen:這種方式升級(jí)軟件包時(shí),如果安裝有舊版程序包,則“升級(jí)”,如果不存在舊版程序包,則不執(zhí)行升級(jí)操作。

常用語(yǔ)法為:

rpm -Uvh PACKAGE_FILE... :安裝或升級(jí)程序包

rpm -Fvh PACKAGE_FILE...:只在舊版本的基礎(chǔ)上升級(jí)程序包

如果升級(jí)過(guò)程中有提示或警告而導(dǎo)致不能升級(jí)時(shí),也可以結(jié)合--force強(qiáng)制升級(jí)。

如果升級(jí)后軟件不能正常運(yùn)行需要卸載升級(jí)的包時(shí)可以使用--oldpackage對(duì)程序進(jìn)行降級(jí)。

注意:如果原程序包的配置文件安裝后曾被修改,升級(jí)時(shí),新版本提供的同一個(gè)配置文件并不會(huì)直接覆蓋老版本的配置文件,而是把新版本的文件重命名(FILENAME.rpmnew)后保留。

4、使用rpm查詢軟件包

語(yǔ)法:rpm {-q|--query} [select-options] [query-options]

如果只跟-q,后面不跟任何選項(xiàng),則可以獲得已安裝的某個(gè)軟件包的文件全名

[root@liang7 Packages]# rpm -q zip zip-3.0-10.el7.x86_6

【select-options】選項(xiàng)有:

-a:所有包,包含所有已安裝過(guò)的程序包,可以結(jié)合grep針對(duì)某個(gè)關(guān)鍵字查詢

[root@liang7 Packages]# rpm -qa      ...                  #省略了列出的軟件包 [root@liang7 Packages]# rpm -qa | grep zip unzip-6.0-15.el7.x86_64 gzip-1.5-8.el7.x86_64 zip-3.0-10.el7.x86_64 bzip2-libs-1.0.6-13.el7.x86_64 bzip2-1.0.6-13.el7.x86_64

-f:查看指定的文件由哪個(gè)程序包安裝生成

[root@liang7 Packages]# rpm -qf /bin/zip zip-3.0-10.el7.x86_64

-p rpmfile:針對(duì)尚未安裝的程序包文件做查詢操作,使用該選項(xiàng)時(shí)要跟rpm包的文件全名,并且該選項(xiàng)還需要跟其他【query-options】選項(xiàng)同時(shí)使用,如rpm -qpl、rpm -qpi等

--whatprovides CAPABILITY:查詢指定的CAPABILITY(功能,能力)由哪個(gè)包所提供

[root@fengl Packages]# rpm -q --whatprovides bash    #查詢bash的功能由那個(gè)包提供 bash-4.2.46-19.el7.x86_64 [root@fengl Packages]# rpm -q --whatprovides tree    #查詢哪個(gè)包提供了tree的功能 tree-1.6.0-10.el7.x86_64

--whatrequires CAPABILITY:查詢指定的CAPAILITY被哪個(gè)包所依賴

[root@fengl Packages]# rpm -q --whatrequires bash   #查詢bash功能被哪些包所依賴,即哪些包依賴于bash功能 dracut-033-359.el7.x86_64 initscripts-9.49.30-1.el7.x86_64 rsyslog-7.4.7-12.el7.x86_64 lvm2-2.02.130-5.el7.x86_64 kpatch-0.1.10-4.el7.noarch bash-completion-2.1-6.el7.noarch

【query-options】選項(xiàng)有

--changelog:查詢r(jià)pm包的版本更新記錄

[root@fengl Packages]# rpm -q --changelog tree  * Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 1.6.0-10 - Mass rebuild 2014-01-24 * Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 1.6.0-9 - Mass rebuild 2013-12-27 * Thu Jul 04 2013 Tim Waugh <twaugh@redhat.com> - 1.6.0-8 - Handle large UID/GID values (bug #980945). ...        后面部分省略

-l:列出某軟件包中的文件列表,使用該選項(xiàng)只需要指定軟件包名即可,不能跟 .rpm 后綴名,如果查詢的是未安裝的軟件包中包含的文件列表,需要再跟上-p選項(xiàng),此時(shí)需要跟未安裝的軟件包全稱,即帶有.rpm后綴名

[root@liang7 Packages]# rpm -ql zip  /usr/bin/zip /usr/bin/zipcloak ...        #后面部分省略 [root@liang7 Packages]# rpm -qpl tree-1.6.0-10.el7.x86_64.rpm  /usr/bin/tree /usr/share/doc/tree-1.6.0 /usr/share/doc/tree-1.6.0/LICENSE /usr/share/doc/tree-1.6.0/README /usr/share/man/man1/tree.1.gz

-c:查詢已安裝的某程序的配置文件,跟包名

[root@liang7 Packages]# rpm -qc yum /etc/logrotate.d/yum /etc/yum.conf /etc/yum/version-groups.conf

-d:查詢某程序的相關(guān)文檔,跟包名,也可以再跟上-p查詢未安裝程序的相關(guān)文檔

[root@liang7 Packages]# rpm -qd yum /usr/share/doc/yum-3.4.3/AUTHORS /usr/share/doc/yum-3.4.3/COPYING /usr/share/doc/yum-3.4.3/ChangeLog ...        #后面部分省略 [root@liang7 Packages]# rpm -qpd tree-1.6.0-10.el7.x86_64.rpm  /usr/share/doc/tree-1.6.0/LICENSE /usr/share/doc/tree-1.6.0/README /usr/share/man/man1/tree.1.gz

-i:information,顯示某軟件包的詳細(xì)信息,跟包名,也可以再跟上-p查詢未安裝程序的詳細(xì)信息

[root@liang7 Packages]# rpm -qi yum Name        : yum Version     : 3.4.3 Release     : 132.el7.centos.0.1 Architecture: noarch Install Date: Thu 21 Jul 2016 02:45:35 AM CST ...        #后面部分省略 [root@liang7 Packages]# rpm -qpi tree-1.6.0-10.el7.x86_64.rpm  Name        : tree Version     : 1.6.0 Release     : 10.el7 Architecture: x86_64 Install Date: (not installed) ...            #后面部分省略

-R:顯示指定的程序包所依賴的CAPABILITY(能力),跟包名,也可以再跟上-p查詢未安裝程序包所依賴的功能

[root@liang7 Packages]# rpm -qR zip libbz2.so.1()(64bit) libc.so.6()(64bit) libc.so.6(GLIBC_2.14)(64bit) ...        #后面部分省略

--provides:列出指定程序包所提供的CAPABILITY(能力),跟包名,也可以再跟上-p查詢未安裝程序包所提供的功能

[root@fengl Packages]# rpm -q --provides zip   #查看zip提供了哪些功能 zip = 3.0-10.el7 zip(x86-64) = 3.0-10.el7

--scripts:查詢程序包自帶的腳本,跟包名,也可以再跟上-p查詢未安裝程序包自帶的腳本

[root@fengl Packages]# rpm -q --scripts bash postinstall scriptlet (using <lua>): nl        = '\n' sh        = '/bin/sh'..nl bash      = '/bin/bash'..nl f = io.open('/etc/shells', 'a+') ...    #后面部分省略

5、使用rpm卸載程序包,卸載時(shí)需要使用-e選項(xiàng),具體用法如下:

rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME ...

--allmatches:卸載與指定程序相關(guān)的所有版本,比如有的程序舊版本和新版本可以同時(shí)存在,使用該選項(xiàng)可以將新版本和舊版本都卸載掉,默認(rèn)一次只卸載一個(gè),卸載時(shí)可能會(huì)報(bào)錯(cuò),不知道該卸載哪個(gè)版本。

--nodeps:程序卸載時(shí)也是有依賴性的,需要先卸載依賴于要卸載的程序,使用該選項(xiàng)將不考慮依賴關(guān)系,直接卸載。

--noscripts:有的程序卸載時(shí)會(huì)執(zhí)行相應(yīng)的腳本,使用該選項(xiàng)后卸載時(shí)不會(huì)執(zhí)行腳本

--notriggers:觸發(fā)器,即當(dāng)卸載一個(gè)程序時(shí)可能會(huì)觸發(fā)另一個(gè)操作,使用該選項(xiàng)后將不會(huì)執(zhí)行觸發(fā)的操作。

--test:測(cè)試卸載,并不真的執(zhí)行卸載

6、使用rpm校驗(yàn)程序包,校驗(yàn)分為兩種,一種是校驗(yàn)程序包來(lái)源的合法性(簽名)和完整性,另一種是校驗(yàn)程序安裝后做了哪些更改。

(1)完整性校驗(yàn)的算法使用的是SHA256,簽名校驗(yàn)的算法使用的是RSA。如果要校驗(yàn)包的完整性和簽名需要先導(dǎo)入所需要的公鑰,導(dǎo)入方法為:rpm --import KEYFILE (Centos安裝光盤(pán)中提供的公鑰文件為RPM-GPG-KEY-CentOS-7)。默認(rèn)情況下安裝每一個(gè)程序包時(shí)都會(huì)自動(dòng)檢測(cè)包的完整性和簽名,如果沒(méi)有導(dǎo)入公鑰,則會(huì)提示告警。也可以使用 rpm -K|checksig RPMFILE 命令檢測(cè)包的完整性和簽名。

rpm -qa gpg* :可以查尋已導(dǎo)入的公鑰文件

[root@fengl mnt]# rpm --import RPM-GPG-KEY-CentOS-7    #導(dǎo)入公鑰文件 [root@fengl mnt]# rpm -qa gpg*        #查詢已導(dǎo)入的公鑰文件 gpgme-1.3.2-5.el7.x86_64 gpg-pubkey-f4a80eb5-53a7ff4b      #該文件即為導(dǎo)入后的文件 [root@fengl Packages]# rpm -K tree-1.6.0-10.el7.x86_64.rpm     #校驗(yàn)tree包文件 tree-1.6.0-10.el7.x86_64.rpm: rsa sha1 (md5) pgp md5 OK

(2)校驗(yàn)程序包安裝后各個(gè)相關(guān)文件的屬性是否被篡改等。

用法:rpm {-V|--verify} [select-option] [verify-options]

校驗(yàn)結(jié)果可能有以下幾種:

S :file Size differs

M:Mode differs (includes permissions and file type)

5 :digest (formerly MD5 sum) differs

D:Device major/minor number mismatch

L:readLink(2) path mismatch

U:User ownership differs

G:Group ownership differs

T:mTime differs

P:capabilities differ

7、rpm數(shù)據(jù)庫(kù),所有已安裝的程序都會(huì)記錄在rpm數(shù)據(jù)庫(kù)中,rpm校驗(yàn)和查詢及卸載都依賴于rpm數(shù)據(jù)庫(kù)。

rpm數(shù)據(jù)庫(kù)路徑:/var/lib/rpm

rpm --initdb:初始化數(shù)據(jù)庫(kù),如果事先不存在數(shù)據(jù)庫(kù),則新建數(shù)據(jù)庫(kù),否則不執(zhí)行任何操作。

rpm --rebuilddb:重建已安裝的包頭的數(shù)據(jù)庫(kù)索引目錄,只創(chuàng)建庫(kù)目錄下的Packages文件。

二、YUM的用法

YUM全稱為 Yellowdog Update Modifier,yum是rpm的前端程序,用來(lái)解決軟件包相關(guān)的依賴關(guān)系,可以在多個(gè)庫(kù)之間定位軟件包,是up2date的替代工具。

yum repository:倉(cāng)庫(kù),存儲(chǔ)了眾多的rpm包,以及包的相關(guān)元數(shù)據(jù)文件(放置于特定目錄repodata下)

1、yum客戶端配置文件:

/etc/yum.conf:為所有倉(cāng)庫(kù)提供公共配置。

/etc/yum.repos.d/*.repo:為倉(cāng)庫(kù)的指向提供配置,倉(cāng)庫(kù)的指向路經(jīng)支持三種文件服務(wù)器路徑的寫(xiě)法,分別為 ftp:// 和http:// 及 file:///

倉(cāng)庫(kù)指向的配置文件都是以“.reop”結(jié)尾的,一個(gè)配置文件中可以配置多個(gè)倉(cāng)庫(kù),也可以一個(gè)倉(cāng)庫(kù)建一個(gè)配置文件,但是必須保證每個(gè)倉(cāng)庫(kù)的配置都是正確的,否則一個(gè)倉(cāng)庫(kù)有問(wèn)題將會(huì)導(dǎo)致yum功能不可用,倉(cāng)庫(kù)的配置文件內(nèi)容主要包括以下幾項(xiàng):

[base]        # 倉(cāng)庫(kù)名稱,必寫(xiě)項(xiàng) name=CentOS-$releasever - Base   # 描述,可以不寫(xiě) baseurl=  # 存放rpm軟件包的倉(cāng)庫(kù)路徑,必寫(xiě)項(xiàng) gpgcheck={1|0}    #是否開(kāi)啟校驗(yàn),主配置文件中默認(rèn)開(kāi)啟,1表示啟用,0表示不啟用 gpgkey=   # 包校驗(yàn)的公鑰路徑,如果開(kāi)啟校驗(yàn)則該項(xiàng)必寫(xiě) enabled={1|0}    #是否啟用該倉(cāng)庫(kù),主配置文件默認(rèn)開(kāi)啟,1表示啟用,0表示不啟用 failovermethod={roundrobin|priority}  #模式選擇,默認(rèn)是roundrobin

示例1:

[root@fengl yum.repos.d]# cat base.repo  [base] name=CentOS7 baseurl=file:///mnt/ gpgcheck=1 gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-7 enable=1

2、yum命令的用法:yum [options] [command] [package ...]

常用命令選項(xiàng)有:

--nogpgcheck:禁止進(jìn)行g(shù)pg check

-y:自動(dòng)回答“yes”

-q:靜默模式

-c:指定配置文件

-v:詳細(xì)模式

-R:設(shè)置yum處理一個(gè)命令的大等待時(shí)間,以秒為單位

--noplugins:禁用所有插件

--disablerepo=repoidglob:臨時(shí)禁用此處指定的repo

--enablerepo=repoidglob:臨時(shí)啟用此處指定的repo

常用的命令有:

yum repolist [all]:顯示所有的倉(cāng)庫(kù)列表

yum repolist enable:只顯示已啟用的倉(cāng)庫(kù)列表

yum repolist disable:只顯示未啟用的倉(cāng)庫(kù)列表

yum list [all]:顯示程序包列表,包括已安裝的和倉(cāng)庫(kù)中的所有列表

yum list available:顯示可獲得的程序列表

yum list installed:顯示已安裝過(guò)的程序列表

yum list updates:顯示可升級(jí)的程序列表

yum info 包名:相當(dāng)于rpm -qi ,查看軟件包信息,兩者查看結(jié)果又區(qū)別

yum provides FEATURE1 ... :查看指定的特性(可以是文件)由哪個(gè)程序包所提供

yum clean [ packages|metadata|headers|expire-cache|dbcache|cache|all ] :清理緩存

yum search string1 ...:以指定的關(guān)鍵字搜索程序包名及概要信息

yum deplist PACKAGE1 ...:顯示指定rpm軟件包的所有依賴關(guān)系

安裝程序包:

yum install PACKAGE1 [PACKAGE2] ...:使用yum安裝程序包

yum -y install PACKAGE1 [PACKAGE2] ...:安裝時(shí)會(huì)提示是否執(zhí)行安裝操作,加上-y選項(xiàng)后則不用手動(dòng)輸入yes,將會(huì)直接安裝。

yum reinstall PACKAGE1 [PACKAGE2] ...:重新安裝

yum update [PACKAGE1] [PACKAGE2] ...:升級(jí)程序包

downgrade PACKAGE1 [PACKAGE2] ...:降級(jí)

yum check-update:檢查可用升級(jí)包

yum remove PACKAGE1 [PACKAGE2] ...:卸載指定的程序包

查看yum事務(wù)歷史:

yum history :查看歷史

yum history info NUM:查看yum歷史中第NUM次的處理信息

yum history undo NUM:回滾,即撤銷歷史中的第NUM次的軟件包安裝

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

本文標(biāo)題:包管理工具rpm和yum的用法-創(chuàng)新互聯(lián)
瀏覽路徑:http://muchs.cn/article34/coicse.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、ChatGPT云服務(wù)器、網(wǎng)站改版微信小程序、建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司