?rpm,Redhat Package Manager封锉,即為紅帽公司為RHEL開發(fā)的專用包管理器,后來(lái)更改為RPM Package Manager,類似于GNU項(xiàng)目,使用遞歸命名腥椒,GNU's Not Unix.
一、RPM包與軟件包的區(qū)別
1候衍、軟件包分類
源碼包:C源代碼包
rpm包:編譯之后的二進(jìn)制包
2笼蛛、源碼包
優(yōu)點(diǎn):開源;可以自由選擇所需功能脱柱;可看源代碼伐弹;卸載方便(直接刪除安裝位置);
缺點(diǎn):安裝步驟過(guò)多榨为;編譯時(shí)間過(guò)長(zhǎng)惨好;
3、RPM包
優(yōu)點(diǎn):使用簡(jiǎn)單随闺,只需要幾個(gè)命令就可以實(shí)現(xiàn)包的安裝日川、升級(jí)、查詢矩乐、卸載龄句;安裝速度快;
缺點(diǎn):不能看源代碼散罕;功能選擇不如源代碼靈活分歇;依賴性;
二欧漱、RPM包命名和依賴性
[root@localhost ~]# httpd-2.4.6-67.el7.centos.x86_64.rpm
httpd ??---> ?軟件包名
2.4.6 ? ?---> ??軟件版本?
67 ? ? ? ?---> ??軟件發(fā)行的次數(shù)?
el7.centos ? ??---> ??適合的linux平臺(tái)?
x86_64 ? ??---> ? ?適合的硬件平臺(tái)?
rpm ? ??---> ? ?rpm包擴(kuò)展名?
2职抡、RPM包的依賴性
樹形依賴性:a -> b -> c,即a依賴b,b依賴c
環(huán)形依賴:a -> b -> c -> a
模塊依賴:模塊依賴查詢網(wǎng)站:www.rpmfind.com
三误甚、RPM包的安裝缚甩、升級(jí)谱净、卸載、查詢
1擅威、包全名和包名
包全名包名
例如:httpd-2.4.6-67.el7.centos.x86_64.rpm --->例如:httpd?
操作的包時(shí)沒有安裝的軟件包時(shí)壕探,使用包全名?--->?操作的已經(jīng)安裝的軟件包時(shí),使用包名?
安裝郊丛、升級(jí)時(shí)用??--->查詢李请、卸載時(shí)用?
2、RPM安裝
#rpm包的安裝格式
rpm -ivh 包全名
選項(xiàng):
??? -i(install)??? 安裝
??? -v(verbose)??? 顯示詳細(xì)信息
??? -h(hash)?????? 顯示進(jìn)度
??? --nodeps?????? 不檢測(cè)依賴性
可能會(huì)有很多依賴性問(wèn)題出現(xiàn)宾袜,根據(jù)一個(gè)個(gè)依賴性繼續(xù)rpm安裝就可以了
[root@localhost mypackages]# rpm -ivh httpd-2.4.6-89.el7.centos.x86_64
錯(cuò)誤:打開 httpd-2.4.6-89.el7.centos.x86_64 失斈硌蕖:沒有那個(gè)文件或目錄
[root@localhost mypackages]# rpm -ivh httpd-2.4.6-89.el7.centos.x86_64.rpm
錯(cuò)誤:依賴檢測(cè)失敗:
httpd-tools = 2.4.6-89.el7.centos 被 httpd-2.4.6-89.el7.centos.x86_64 需要
[root@localhost mypackages]# rpm -ivh httpd-tools-2.4.6-89.el7.centos.x86_64.rpm
準(zhǔn)備中...????????????????????????? ################################# [100%]
正在升級(jí)/安裝...
?? 1:httpd-tools-2.4.6-89.el7.centos? ################################# [100%]
[root@localhost mypackages]#?
3庆猫、RPM包升級(jí)
#RPM包的升級(jí)格式
rpm -Uvh 包全名
選項(xiàng):
??? -U (upgrade)??? 升級(jí)
[root@localhost mypackages]# rpm -Uvh httpd-tools-2.4.6-89.el7.centos.x86_64.rpm
過(guò)程和安裝完全一樣认轨。
4、RPM包的卸載
#RPM包的卸載格式
rpm -e 包名
選項(xiàng):
??? -e (erase)??? 卸載
??? --nodeps????? 不檢測(cè)依賴性
[root@localhost mypackages]# rpm -e httpd-2.4.6-89.el7.centos.x86_64.rpm — nodeps
注:卸載要按照安裝依賴性的反向卸載
5月培、RPM包的查詢
===查詢是否安裝:
[root@localhost ~]# rpm -q 包名
選項(xiàng):
????-q????查詢(query)
[root@localhost mypackages]# rpm -q httpd
httpd-2.4.6-89.el7.centos.x86_64
[root@localhost ~]# rpm -qa
===查詢所有已經(jīng)安裝的RPM包
選項(xiàng):
????-a????所有
[root@localhost mypackages]# rpm -qa httpd
httpd-2.4.6-89.el7.centos.x86_64
?===查詢軟件包的詳細(xì)信息:
[root@localhost ~]# rpm -qi 包名
選項(xiàng):
????-i????查詢軟件信息(information)
[root@localhost mypackages]# rpm -qi httpd
Name??????? : httpd
Version ??? : 2.4.6
Release ??? : 89.el7.centos
Architecture: x86_64
Install Date: 2019年07月12日 星期五 22時(shí)26分27秒
Group ????? : System Environment/Daemons
Size??????? : 9817301
License ??? : ASL 2.0
Signature ? : RSA/SHA256, 2019年04月29日 星期一 23時(shí)45分07秒, Key ID 24c6a8a7f4a80eb5
Source RPM? : httpd-2.4.6-89.el7.centos.src.rpm
Build Date? : 2019年04月24日 星期三 21時(shí)48分37秒
Build Host? :?x86-02.bsys.centos.org
Relocations : (not relocatable)
Packager??? : CentOS BuildSystem <http://bugs.centos.org>
Vendor????? : CentOS
URL ??????? :?http://httpd.apache.org/
Summary ??? : Apache HTTP Server
Description :
The Apache HTTP Server is a powerful, efficient, and extensible
web server.
===查詢包中文件安裝位置
[root@localhost ~]# rpm -ql 包名
#查詢包中文件安裝位置
選項(xiàng):
????-l????列表(list)
[root@localhost mypackages]# rpm -ql httpd
/etc/httpd
/etc/httpd/conf
/etc/httpd/conf.d
===查詢系統(tǒng)文件屬于哪個(gè)RPM包
[root@localhost ~]# rpm -qf 系統(tǒng)文件名
選項(xiàng):
????-f????查詢系統(tǒng)文件屬于哪個(gè)RPM包(file)
[root@localhost mypackages]# rpm -qf httpd-2.4.6-89.el7.centos.x86_64.rpm
文件 /root/mypackages/httpd-2.4.6-89.el7.centos.x86_64.rpm 不屬于任何軟件包
===查詢軟件包的依賴性
[root@localhost ~]# rpm -qR 包名
選項(xiàng):
????-R????查詢軟件包的依賴性(requires)
[root@localhost mypackages]# rpm -qR httpd-2.4.6-89.el7.centos.x86_64.rpm
關(guān)于運(yùn)維學(xué)習(xí)嘁字、分享、交流杉畜,筆者開通了微信公眾號(hào)【運(yùn)維貓】纪蜒,感興趣的朋友可以關(guān)注下,歡迎加入此叠,建立屬于我們自己的小圈子纯续,一起學(xué)運(yùn)維知識(shí)。