亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統(tǒng) > RedHat > 正文

全面講解RedHat系Linux中的rpm包管理系統(tǒng)

2020-07-08 12:51:16
字體:
來源:轉載
供稿:網友

在linux世界里流行兩種包管理方式,分別是redhat系的rpm和debian系的deb。其中rpm的使用更為廣泛,我打算接下來分多章詳細介紹一下rpm的包管理機制。
包管理是操作系統(tǒng)用來維護各組件版本的一種方式,對于軟件發(fā)行者來說,將自己的程序制作成標準的rpm格式也會使得程序的安裝、升級和卸載變得非常容易。因此linux下幾乎所有流行的程序都有rpm格式的包,有些是發(fā)行者自己打包,也有些第三方提供rpm包,例如redhat發(fā)行版里的rpm都是redhat自己打包,他們定期打patch,升級并且維護包之間的依賴關系,他們制作的rpm包是最可以信任的。除此之外,http://dag.wieers.com/rpm/這個網站也提供很多較新的rpm包,在redhat官方找不到的包很多在這里都可以找到。
在網上搜索rpm包最常用的方式是通過rpmfind.net進行搜索,它會提供各個發(fā)行版下的各個版本的包下載。注意一定要找到正確的發(fā)行版下對應的包,由于依賴底層庫和庫版本的不同,不同版本的發(fā)行版的包最好不要混裝。

RPM的安裝功能
先介紹rpm的安裝,基本的安裝命令如下

復制代碼
代碼如下:

rpm -ivh xxxxxxx.rpm

i代表安裝,e代表卸載,v代表顯示安裝過程,h代表顯示#號樣式的進度
下面看一個簡單的例子:

復制代碼
代碼如下:

[leconte@localhost soft]$ sudo rpm -ivh enca-1.9-4.el5.rf.i386.rpm
warning: enca-1.9-4.el5.rf.i386.rpm: Header V3 DSA signature: NOKEY, key ID 6b8d79e6
Preparing... ########################################### [100%]
1:enca ########################################### [100%]

rpm包這樣就裝上了,但是很多時候沒有這么順利,由于rpm包之間可能存在依賴關系,在依賴關系無法滿足的情況下默認是沒法繼續(xù)安裝的;再比如某個包已經安裝過,如果想再裝一次,也是無法繼續(xù)的。這種情況下可以通過一些參數(shù)來強制執(zhí)行,但是強制執(zhí)行的后果可能是裝的程序無法正常使用,因為它依賴的包你系統(tǒng)并沒有提供。
安裝時常用的參數(shù)如下:
--test 測試安裝,并不真實安裝而僅僅是測試能否安裝。
--nodeps 忽略依賴關系強行安裝
--force 強制替換現(xiàn)有版本
--noscripts 僅安裝文件不執(zhí)行附加腳本
下面演示一個強行安裝的例子“

復制代碼
代碼如下:

[leconte@localhost soft]$ sudo rpm -ivh awstats-6.9-1.noarch.rpm
error: Failed dependencies:
perl(LWP::UserAgent) is needed by awstats-6.9-1.noarch
[leconte@localhost soft]$ sudo rpm -ivh awstats-6.9-1.noarch.rpm --nodeps
Preparing... ########################################### [100%]
1:awstats ########################################### [100%]

awstats依賴的PERL模塊LWP::UserAgent并沒有裝,因此默認是無法安裝的,但是通過nodeps可以強制安裝,而LWP::UserAgent可以通過cpan去后續(xù)安裝。也就是說,如果你明白你在做什么,那么強制安裝并不可怕。
需要注意的是,rpm包的安裝和卸載都需要在系統(tǒng)的rpm數(shù)據(jù)庫里保存信息,因此需要root權限。

RPM的查詢功能
接著介紹rpm的查詢功能,查詢是我們最常用的功能,例如查詢一個包里包含哪些文件、一個文件屬于哪個包、以及包之間的依賴關系等等。
rpm的-q參數(shù)是用來進行查詢的,需要明確的是rpm既可以對安裝在系統(tǒng)上的包進行查詢,也可以對一個未安裝的rpm包進行查詢。當一個rpm包安裝到系統(tǒng)上之后,安裝信息通常會保存在本地的/var/lib/rpm/目錄下,數(shù)據(jù)會以berkeley DB的方式保存。查看/var/lib/rpm/Packages文件的類型可以驗證這一點。

復制代碼
代碼如下:

[leconte@localhost rpm]$ file /var/lib/rpm/Packages
/var/lib/rpm/Packages: Berkeley DB (Hash, version 8, native byte-order)

這種情況下的查詢其實就是對bdb的讀訪問。而對一個未安裝的rpm包進行查詢,則是通過解讀rpm包本身而獲取信息,這一點是首先需要明確的。
下面我就簡單羅列一下rpm最常用的幾個查詢功能
1.rpm -qa 用來查詢系統(tǒng)安裝的所有包,a代表all
2.rpm -ql [包名] 用來查詢某個包里的文件列表,例如查詢包passwd里包含的內容

復制代碼
代碼如下:

[leconte@localhost rpm]$ rpm -ql passwd
/etc/pam.d/passwd
/usr/bin/passwd
/usr/share/man/man1/passwd.1.gz

3.rpm -qi [包名] 用來查詢包信息,其中包含包的介紹,作者,打包日期等重要信息。
4.rpm -qf [文件名] 用來查詢一個文件所屬的rpm包,例如:

復制代碼
代碼如下:

[leconte@localhost rpm]$ rpm -qf /etc/passwd
setup-2.5.58-4.el5

系統(tǒng)配置文件/etc/passwd是屬于setup這個包的。
5.rpm -qV [包名] 用來驗證某個包中安裝的各文件的狀態(tài),如果當前文件的大小、md5和安裝時數(shù)據(jù)庫里保存的信息不一致,該命令則會將不一致的文件列出來。該命令對于系統(tǒng)出問題的情況下的故障排查很有幫助。
上面是幾個最常用的查詢命令,都是針對查詢系統(tǒng)rpm包情況的。如果要查詢未安裝的rpm包則只需要加上p參數(shù)和包路徑即可。例如查詢包perl-Git-1.5.5.6-4.el5.i386.rpm的信息:

復制代碼
代碼如下:

[leconte@localhost soft]$ rpm -qip perl-Git-1.5.5.6-4.el5.i386.rpm
warning: perl-Git-1.5.5.6-4.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 217521f6
Name : perl-Git Relocations: (not relocatable)
Version : 1.5.5.6 Vendor: Fedora Project
Release : 4.el5 Build Date: 2009年06月19日 星期五 21時28分05秒
Install Date: (not installed) Build Host: xenbuilder2.fedora.redhat.com
Group : Development/Libraries Source RPM: git-1.5.5.6-4.el5.src.rpm
Size : 24878 License: GPL
Signature : DSA/SHA1, 2009年06月20日 星期六 04時07分18秒, Key ID 119cc036217521f6
Packager : Fedora Project
URL : http://kernel.org/pub/software/scm/git/
Summary : Perl interface to Git
Description :
Perl interface to Git.

RPM包的依賴關系
rpm包之間會維持依賴關系,這是包管理系統(tǒng)的特色。我們都經歷過安裝一個包而因為依賴缺失而裝不上的情況。后來yum的出現(xiàn)能一定程度解決這個問題,但我們仍然有必要了解rpm依賴關系背后的細節(jié)。
自己打過rpm包的人都知道,在包的spec配置文件往往要明確寫出此包所依賴的包名或文件名,同時也可能需要明確寫出此包所提供的內容。這個內容可能是動態(tài)庫也可能是其他一些名字,并不一定是文件名。各個包之間正是依靠這些內容來建立依賴關系的,每個包都提供一些內容同時依賴一些別的內容,整個系統(tǒng)就在這樣一種相互依賴中形成了。
在看具體的例子之前先介紹幾個指令:
rpm -qR [包名] 可以用來查詢指定包所依賴的內容
rpm -q –provides [包名] 可以用來查詢指定包所提供的內容
rpm -q –whatprovides [內容] 可以用來查詢哪個包提供了指定內容
rpm -q –whatrequires [內容] 可以用來查看哪些包依賴于指定內容
例如我們以time這個包為例進行查詢,結果如下:

復制代碼
代碼如下:

[leconte@localhost soft]$ rpm -qR time
/bin/sh
/bin/sh
/sbin/install-info
libc.so.6
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1)
libc.so.6(GLIBC_2.3.4)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)

可見,time這個包如果要安裝,上述內容必須已經存在,否則將會提示依賴缺失而無法安裝。我們以列表中的/bin/sh為例進行反查,可以看到系統(tǒng)中哪個包提供了/bin/sh

復制代碼
代碼如下:

[leconte@localhost soft]$ rpm -q --whatprovides "/bin/sh"
bash-3.2-24.el5

很明顯,bash這個包提供了/bin/sh,正是由于bash的安裝才滿足了time的安裝需求。
time依賴于bash等包,同時它也提供了一些內容,有可能被別的包依賴:

復制代碼
代碼如下:

[leconte@localhost soft]$ rpm -q --provides time
time = 1.7-27.2.2
[leconte@localhost soft]$ rpm -q --whatrequires 'time'
no package requires time

不幸的是系統(tǒng)中并沒有包依賴于time,因為它本身屬于較上層的包。
對于一些底層內容就會有很多包依賴它,例如之前碰到的/bin/sh:

復制代碼
代碼如下:

[leconte@localhost soft]$ rpm -q --whatrequires '/bin/sh'
bash-3.2-24.el5
bash-3.2-24.el5
info-4.8-14.el5
ncurses-5.5-24.20060715
libxml2-2.6.26-2.1.2.7
readline-5.1-1.1

......................省略n行
由于篇幅所限就不全列舉出來了,這種依賴關系應該可以一目了然了。
和上節(jié)類似,rpm -qR和rpm -q –provides這兩個查詢指令同樣可以加上-p參數(shù)應用到一個未安裝的rpm包,例如

復制代碼
代碼如下:

[leconte@localhost soft]$ rpm -qp --provides enca-1.9-4.el5.rf.i386.rpm
warning: enca-1.9-4.el5.rf.i386.rpm: Header V3 DSA signature: NOKEY, key ID 6b8d79e6
libenca.so.0
enca = 1.9-4.el5.rf

可以看到,enca這個rpm包提供了動態(tài)庫libenca.so.0和enca本身。
通過使用本節(jié)這四條依賴關系查詢指令基本可以了解到系統(tǒng)上眾多rpm包之間的耦合關系,明確了這一點,我們對rpm的理解也就更深了一步。


RPM包的卸載和升級
rpm包的卸載和升級的指令如下:
rpm -e [包名] 用來卸載一個rpm包
rpm -U [包文件] 用來升級一個現(xiàn)有的rpm
需要注意的是,如果要卸載的rpm包中的內容被別的rpm包依賴,那么則無法卸載,例如

復制代碼
代碼如下:

[leconte@localhost ~]$ rpm -e php-common
error: Failed dependencies:
php-common = 5.2.9-4 is needed by (installed) php-pdo-5.2.9-4.i386
php-common = 5.2.9-4 is needed by (installed) php-bcmath-5.2.9-4.i386
php-common = 5.2.9-4 is needed by (installed) php-curl-5.2.9-4.i386
php-common = 5.2.9-4 is needed by (installed) php-dba-5.2.9-4.i386
       
php-common由于被 php-pdo等包依賴而無法單獨卸載,php-pdo和php-common可以利用上節(jié)介紹過的依賴關系查詢指令查到:

復制代碼
代碼如下:

[leconte@localhost ~]$ rpm -qR php-pdo
config(php-pdo) = 5.2.9-4
libc.so.6
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1.3)
libc.so.6(GLIBC_2.3)
libc.so.6(GLIBC_2.4)
librt.so.1
libsqlite3.so.0
php-common = 5.2.9-4
..............
[leconte@localhost ~]$ rpm -q --whatrequires php-common
php-pdo-5.2.9-4
php-bcmath-5.2.9-4
php-curl-5.2.9-4
php-dba-5.2.9-4
php-gd-5.2.9-4
...............

這種情況下想要卸載php-common,只能將它依賴的所有包全部卸載掉。更暴力的方式是指定-nodeps忽略依賴關系限制,但是這樣造成的后果就是php-pdo等包將無法正常使用,因此這種方式一般不推薦。
rpm包的升級指的是rpm包的版本升級,這種情況下實際內部執(zhí)行的動作分兩步,即先安裝新版本然后卸載老版本。此外,rpm也可以進行包的降級,只需要指定–oldpackages參數(shù)即可。
值得注意的是在卸載和升級的過程中,包中的配置文件會被妥善處理,rpm會根據(jù)一系列規(guī)則決定配置文件是否保留,即使被替換,舊的配置文件也會被重命名后保存起來,你之前對配置文件做過的修改不會因為rpm包的升級而丟失。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
玖玖玖国产精品| 国产无码精品视频| 丁香花视频在线观看| 偷偷看偷偷操| 亚洲国产成人不卡| 久久久久久久激情视频| av色综合久久天堂av综合| 成人免费在线观看入口| 日韩精品在线免费观看| 成人动漫视频在线| 日韩国产精品亚洲а∨天堂免| 久久久久久噜噜噜久久久精品| 色呦呦日韩精品| 日本高清不卡免费| 97精品高清一区二区三区| 亚洲精华液一区二区三区| 污视频网站在线播放| 亚洲国产成人精品女人| 夜久久久久久| 久久久久综合一区二区三区| 无码人妻丰满熟妇区五十路| av女名字大全列表| 精品伦精品一区二区三区视频密桃| 高清日韩av| 亚洲AV无码国产精品午夜字幕| 精品在线观看一区二区| 中文字幕在线资源| 精品二区久久| 国产极品视频在线观看| 宅男宅女性影片资源在线1| 色吊丝av中文字幕| 亚洲中文字幕无码一区二区三区| a级片免费在线观看| av有声小说一区二区三区| 久久久午夜电影| 男人的午夜天堂| 精品亚洲永久免费| 精品国模在线视频| 亚洲精品国产setv| 黄色成人一级片| 国产视频一区二| 国产一区免费看| 国产又猛又黄又爽| 亚洲欧洲久久久| 国产日韩欧美在线看| 久久久久蜜桃| 岛国av一区二区三区| 日本一道本久久| 伊人色综合久久久天天蜜桃| 日韩电影在线观看网站| 亚洲成人三区| 亚洲啊啊啊啊啊| 妖精一区二区三区精品视频| 久久影院在线观看| 欧美一区二区三区在线看| 欧美大胆一级视频| 热re99久久国产精品| 日本黄色大片视频| 欧美扣逼视频| 视频一区二区在线| 成人在线一区| 国产精品69久久久久| 1区2区3区欧美| 在线观看岛国片| 开心快乐六月丁香婷婷| 91精品国产一区二区三密臀| 在线观看a级片| 成人精品一区二区三区| 成年人免费在线观看网站| 黄色三级视频在线| 欧美三级在线| 最近中文字幕在线中文视频| 永久免费毛片在线播放不卡| 日韩女优在线视频| 国产专区欧美专区| 日韩av电影在线播放| 亚洲kkk444kkk在线观看| 国产美女在线一区二区三区| 亚洲欧美日韩中文字幕一区二区三区| 日韩系列在线| 国产精品国产亚洲伊人久久| 久草视频免费在线播放| 天天影视久久综合| 国产人与zoxxxx另类91| 亚洲性图久久| 欧美美女色图| 亚洲欧洲国产日韩| 永久久久久久久| 欧美韩国日本一区| 精品国产一级片| 亚洲午夜91| 国产精品久久久久毛片大屁完整版| 日本成人在线视频网站| 2024国产精品视频| 最新在线黄色网址| 精品嫩模一区二区三区| 少妇av一区二区三区无码| 尤物99国产成人精品视频| 久久久神马电影| 成人免费在线视频网址| 日韩影院二区| 狠狠躁少妇一区二区三区| 久久视频在线视频| 国产精品区一区二区三在线播放| 日韩欧美另类一区二区| 欧美一区二区三区视频在线| 国产精品私拍pans大尺度在线| 一区二区高清视频| 欧美午夜在线视频| 青青青国产在线观看| 欧美最新另类人妖| 超碰国产在线| 成人亚洲视频在线观看| 亚洲成人三级| 国产女主播喷水高潮网红在线| 成人福利视频网| 国产福利视频在线播放| 一本一本大道香蕉久在线精品| 波多野结衣av一区二区全免费观看| 激情影院在线观看| 神马午夜一区二区| 亚洲精品国产欧美在线观看| 偷拍夫妻性生活| 精品久久久久久久久久中文字幕| 91视频欧美| 再深点灬舒服灬太大了添少妇视频| 1313精品午夜理伦电影| 日韩精品一区二区三区av| 无码国产精品一区二区色情男同| 亚洲欧美日韩成人| 国产精彩自拍| 久久视频这里只有精品| 国产片一区二区三区| 久久综合九色综合欧美狠狠| av网站免费在线| 无码人妻精品一区二区蜜桃百度| 久久一区欧美| 九九热在线播放| 无需播放器的av| 特级西西www444人体聚色| 国产91绿帽单男绿奴| 91久久夜色精品国产按摩| 精品国产乱码一区二区三| 国产精品久av福利在线观看| 国产在线播放一区二区| 久久国产免费| 日本综合久久| 日韩在线免费电影| 黄色av免费在线播放| 欧美日韩在线视频免费观看| 久久另类ts人妖一区二区| 黄色网页在线看| 日韩视频免费| 女人十八岁毛片| 欧美极品美女视频网站在线观看免费| 人人插人人射| 国产人妻黑人一区二区三区| 欧美一级黄色片| 国产亚洲成av人片在线观黄桃| 欧美大片拔萝卜| 东京一区二区| 熟女高潮一区二区三区| jizzjizz19| а中文在线天堂| 国产精品一区二区无线| 欧美人妖巨大在线| 日本婷婷久久久久久久久一区二区| av免费不卡国产观看| 欧美第一在线视频| 久草中文在线观看| 国产自产女人91一区在线观看| 69av视频在线播放| 久久成人综合视频| 性做久久久久久免费观看| 无码人妻精品中文字幕| 日韩精品极品在线观看播放免费视频| 电影一区二区三区久久免费观看| 久久综合九色综合网站| 欧美r片在线| 欧美黄色片在线观看| a亚洲天堂av| 福利视频999| 中文幕无线码中文字蜜桃| 一区在线视频| 欧美成aaa人片免费看| 欧美成人一区二区三区| 秋霞午夜理伦电影在线观看| heyzo久久| 成人欧美视频在线观看播放| 国产特级黄色大片| 国产偷国产偷亚洲高清人白洁| 男生草女生视频| 国产在线拍揄自揄拍无码| 99精品久久久久| 久久久久久久久久久人体| 欧美理论在线观看| 天天操天天操天天操天天| 狠狠色丁香婷婷综合| 日韩中文字幕在线播放| 激情黄色小视频| 国产真实生活伦对白| 欧美做爰猛烈大尺度视频| 亚洲av无码国产精品永久一区| 日本电影免费看| 在线观看免费一区二区| 成人精品久久| 91亚洲精品久久久| 国产精品区二区三区日本| 欧美阿v一级看视频| 亚洲国产中文在线二区三区免| 日本亚洲欧美在线| 国产婷婷在线视频| 春色校园综合激情亚洲| 狠狠躁狠狠躁视频专区| 精品va天堂亚洲国产| 天海翼女教师无删减版电影| 美乳视频一区二区| 金瓶狂野欧美性猛交xxxx| 俺去亚洲欧洲欧美日韩| 视频一区不卡| 一本色道久久加勒比88综合| www.av视频| 北条麻妃99精品青青久久| 一区视频在线看| 中文字幕在线日本| 亚洲性生活大片| 日韩中字在线| 欧美最猛黑人xxxx黑人猛交黄| eeuss影院www影院入口| 国产精品一区二区三区四区| 国产精品自拍三区| 国产igao激情在线入口| 久久精品色妇熟妇丰满人妻| 午夜精品亚洲一区二区三区嫩草| 中文字幕精品久久久久| 久久人人爽人人爽人人片av免费| 亚洲精一区二区三区| 偷窥自拍亚洲色图精选| 欧美va亚洲va日韩∨a综合色| 在线观看二区| av亚洲精华国产精华精华| 免费的黄网站在线观看| 免费av在线网站| 大奶在线精品| 制服丝袜综合日韩欧美| 37pao成人国产永久免费视频| 舐め犯し波多野结衣在线观看| 天天射天天操天天干| 欧美成人免费播放| 免费观看特级毛片| 五月婷婷六月综合| 成人精品aaaa网站| 久久久久久久久久久久久久久久久久久| 亚洲一区二区三区| 国产精品www994| 欧美亚洲国产另类| 影音先锋人妻啪啪av资源网站| 国产aⅴ爽av久久久久| 国产67194| 国产在线日韩精品| 亚洲精品看片| 天堂午夜在线| 视频一区二区中文字幕| 级毛片内射视频| 任你弄在线视频免费观看| 欧美专区一区| 蜜桃精品在线| 亚洲国产精品久久人人爱| 中文字幕一区二区三区最新| 欧美色图综合网| 伊人久久大香伊蕉在人线观看热v| 免费在线一级片| 一区二区精品视频在线观看| 国产精品视频久久一区| 都市激情亚洲色图| 日韩女在线观看| 一级黄色录像免费看| 中文天堂在线资源| 网曝门事件国产精品二区| 日韩一区免费观看| 先锋av资源在线| 四虎永久免费地址| 欧美一区二区三区不卡视频| 国产国语刺激对白av不卡| 久久久久久网站| 日韩久久电影| 国产一区二区欧美日韩| 九色porny丨入口在线| 亚洲精品天堂| 免费在线看黄网址| 四虎a级欧美在线观看| 青青在线免费视频| 无码人妻精品一区二区蜜桃百度| 欧美日韩精品在线观看视频| 久久人人爽人人爽人人片亚洲| 91制片厂免费观看| 高清成人在线观看| 亚洲激情偷拍| 国产视频在线免费观看| 在线日韩av观看| 在线亚洲伦理| 国产成人av电影免费在线观看| 91色.com| 午夜精品福利视频| 中文字幕一区二区三区精彩视频| 欧洲一级精品| 欧美一级国产精品| 国内外成人在线视频| 亚洲女同一区二区| 亚洲天堂av线| 中文字幕在线观看日韩| 日韩女同强女同hd| 国产99久久精品一区二区永久免费| 亚洲bt天天射| 国产女人18毛片水真多成人如厕| 性生生活大片免费看视频| 欧美aⅴ在线观看| 国内精品在线视频| 日韩av在线导航| 91看片在线播放| 中文字幕在线观看2018| 欧美在线观看一二区| 麻豆精品av| 99在线精品免费视频九九视| 国产中文字幕一区二区三区| 一道本一区二区三区| 欧美精品成人久久| 久久不射影院|