日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux软件包管理-rpm

發(fā)布時(shí)間:2025/5/22 linux 135 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux软件包管理-rpm 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.程序包管理



功能:將編譯好的應(yīng)用程序的各組件組成文件打包成一個(gè)或幾個(gè)程序包文件,從而更方便快捷實(shí)現(xiàn)程序包的安裝升級(jí),卸載和查詢等管理操作

?

?1 程序包的組成清單(每個(gè)程序包都單獨(dú)實(shí)現(xiàn))

?文件清單

?安裝或卸載是運(yùn)行的腳本

2 數(shù)據(jù)庫部分(公共)

程序包名稱和版本

依賴關(guān)系

功能說明

安裝生成各文件位置路徑及校驗(yàn)碼信息




程序包我們?cè)谀墨@取了?

1)系統(tǒng)發(fā)行的光盤或官方文件服務(wù)器或鏡像站點(diǎn):

最常用的例如像

http://mirrors.aliyun.com

http://mirrors.souhu.com

http://mirrors.163.com

2)程序官方站點(diǎn)下載

3)第三方組織的rpm包

(a)EPEL:紅帽站點(diǎn)論壇組織,提供高效的yum原?

(b)搜索引擎搜索

pkgs.org

rpmfind.net

rpm.pbone.net

4)自己做

ps:下載時(shí)注意其合法性,來源合法




rpm?:readhat package manager ;rpm is package manager?

2.rpm包命名格式

tree-1.5.3-3.el6.x86_64.rpm

name-version-release.arch.rpm

versiom:是指源代碼版本

release.arch:rpm包的發(fā)行號(hào)

archetecture:架構(gòu)號(hào):i386,x64(amd64)..

? e16適用平臺(tái) 6




3.rpm 特性

1,rpm分包機(jī)制

? ? 將一個(gè)包的功能拆成n個(gè)不同功能支包

? 主包:name-version-release.arch.rpm

? 支包:name-function-version-release.arch.rpm

? function:功能 例如:devel開發(fā)功能

? ? ? ? untils工具程序

? ? ? ? libs庫文件等



2,依賴關(guān)系

? ?依賴關(guān)系:因?yàn)閘inux程序做到短小精湛,程序彼此之間依賴其他程序提供的功能,然后才能運(yùn)行,所以導(dǎo)致包和包之間有著復(fù)雜的依賴關(guān)系



3,解決依賴

前端工具的出現(xiàn)自動(dòng)解決包之間的依賴關(guān)系;

yum :rpm包管理器的前端工具

apt-get(apt-cache)deb包管理器的前端工具 用于debian?

zypper :suse的rpm管理器前端工具

dnf:fedora-22+系統(tǒng)上的rpm包管理器的前端工具



4.rpm命令管理程序包:

安裝升級(jí)、卸載、查詢、效驗(yàn)、數(shù)據(jù)庫維護(hù)、幫助


使用方法

rpm?[OPTION]?[PACKAGE_FILE]

? ?

安裝?


rpm?????{-i|--install}????[install-options]?PACKAGE_FILE?...


?[GENERAL?OPTIONS]:通用選項(xiàng)-v?詳細(xì)信息輸出-vv?更詳細(xì)信息輸出


[install-options]:安裝選項(xiàng) -h?顯示以hash標(biāo)記輸出進(jìn)度條yum?-ivh --test測(cè)試安裝(不實(shí)際安裝,僅測(cè)試,檢查依賴及沖突關(guān)系); --nodeps?忽略依賴關(guān)系安裝; --replacepkgs?重新安裝; ps:rpm可以自帶腳本?--noscripts 四類:prelnstall:安裝過程之前運(yùn)行的腳本%pre?--noprepostinstall:安裝過程完成之后運(yùn)行的腳本,%pot?--postpreuninstall:卸載過程真正開始執(zhí)行之前運(yùn)行的腳本?%preun?--nopreunpostuninstall:卸載過程完成之后運(yùn)行腳本?%postun??--nopostun --nosignature:不檢查包簽名信息,不檢查來源合法性; --nodigest:不檢查包完整性信息


例如:安裝tree包

[root@localhost?Packages]#?rpm?-ivh?tree-1.6.0-10.el7.x86_64.rpm? warning:?tree-1.6.0-10.el7.x86_64.rpm:?Header?V3?RSA/SHA256?Signature,?key?ID?f4a80eb5:?NOKEY Preparing...??????????????????????????#################################?[100%]package?tree-1.6.0-10.el7.x86_64?is?already?installed


??升級(jí)?

?rpm?{-U|--upgrade}?[install-options]?PACKAGE_FILE?...rpm?{-F|--freshen}?[install-options]?PACKAGE_FILE?... -U?升級(jí)或安裝 -F升級(jí) rpm?-Uvh? rpm?-Fvh --oldpackage:降級(jí); --force:強(qiáng)制升級(jí);升級(jí)會(huì)影響依賴關(guān)系可能 #ps:1)不要對(duì)內(nèi)核做升級(jí)操作;linux支持多內(nèi)核,直接安裝新版本內(nèi)核即可; #????2)如果原程序包配置文件安裝后被修改過,升級(jí)是,新版本程序提供的同一個(gè)配置文件不會(huì) 覆蓋原有版本的配置文件,會(huì)將新文件重命名后保留;


例如:驗(yàn)證?如果原程序包配置文件安裝后被修改過,升級(jí)是,新版本程序提供的同一個(gè)配置文件不會(huì)覆蓋原有版本的配置文件,會(huì)將新文件重命名后保留;

[root@localhost?Packages]#?rpm?-ivh?vsftpd-3.0.2-10.el7.x86_64.rpm? warning:?vsftpd-3.0.2-10.el7.x86_64.rpm:?Header?V3?RSA/SHA256?Signature,?key?ID?f4a80eb5:?NOKEY Preparing...??????????????????????????#################################?[100%] Updating?/?installing...1:vsftpd-3.0.2-10.el7??????????????#################################?[100%] [root@localhost?Packages]#? #安裝vsftp[root@localhost?vsftpd]#?cat?vsftpd.conf|wc?-l 127 [root@localhost?vsftpd]#?vim?vsftpd.conf [root@localhost?vsftpd]#?cat?vsftpd.conf|wc?-l 27 #修改其配置文件(刪除文件中100行內(nèi)容)[root@localhost?Packages]#?rpm?-Uvh?vsftpd-3.0.2-10.el7.x86_64.rpm?--force warning:?vsftpd-3.0.2-10.el7.x86_64.rpm:?Header?V3?RSA/SHA256?Signature,?key?ID?f4a80eb5:?NOKEY Preparing...??????????????????????????#################################?[100%] Updating?/?installing...1:vsftpd-3.0.2-10.el7??????????????#################################?[100%] #升級(jí)安裝vsftpd??? [root@localhost?vsftpd]#?cat?vsftpd.conf|wc?-l 27 #配置文件行數(shù)與之前安裝修改行數(shù)一樣

卸載

rpm?{-e|--erase}?[--allmatches]?[--nodeps]?[--noscripts][--notriggers]?[--test]?PACKAGE_NAME?... --allmatches:刪除所有所匹配指定名稱的程序包版本 --nodeps:忽略依賴關(guān)系 --test?測(cè)試卸載,不真正執(zhí)行卸載


例如:卸載vsftpd

[root@localhost?Packages]#?rpm?-e?--nodeps?vsftpd? warning:?/etc/vsftpd/vsftpd.conf?saved?as?/etc/vsftpd/vsftpd.conf.rpmsave #卸載vsftpd包 [root@localhost?~]#?ll?/etc/vsftpd/ total?4 -rw-------.?1?root?root?1127?Aug?23?21:10?vsftpd.conf.rpmsave [root@localhost?~]#?cat?/etc/vsftpd/vsftpd.conf.rpmsave?|ec?-l bash:?ec:?command?not?found... [root@localhost?~]#?cat?/etc/vsftpd/vsftpd.conf.rpmsave?|wc?-l 27 #卸載后將配置文件備份成了一個(gè)新文件




查詢?

rpm?{-q|--query}?[select-options]?[query-options] 1)select-options: PACKAGE_NAME?直接給出包名查看是否已經(jīng)安裝 -a,--all?查詢所有已安裝的包?rpm?-qa [root@localhost?~]#?rpm?-qa?|grep?http -f,--file?查詢文件的生成安裝包 [root@localhost?~]#?rpm?-qf?/etc/fstab? setup-2.8.71-6.el7.noarch -p?--pachage?查尋未安裝的包 --whatprovides?CAPABILITY:查詢指定的CAPABILITY安裝包--whatrequires?CAPABILITY:查詢指定的CAPABILITY安裝包有哪些依賴包 2)query-options: --changelog?查看rpm改進(jìn)日志 -l,?--list?安裝生成的文件 rpm?-ql?查看安裝這個(gè)程序包后生成了哪些文件 -i?--info?查詢程序包相關(guān)的信息(版本,大小,所屬的包組) rpm?-qi?程序名-c,?--configfiles?查詢指定程序包提供的配置文件-d,?--docfiles?查詢指定程序包提供的文檔--provides?列出程序提供的CAPABTLITY--scripts?查看指定程序安裝后的腳本



查詢舉例:?

#查詢某個(gè)包是否已經(jīng)安裝的多個(gè)方法 [root@localhost?vsftpd]#?rpm?-q?vsftpd package?vsftpd?is?not?installed [root@localhost?vsftpd]#?rpm?-qa?vsftpd [root@localhost?vsftpd]#?rpm?-qa?|grep?vsftpd [root@localhost?vsftpd]#?rpm?-q?vsftpd vsftpd-3.0.2-10.el7.x86_64 [root@localhost?vsftpd]#?rpm?-qa?|grep?vsftpd vsftpd-3.0.2-10.el7.x86_64

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

#查詢某個(gè)文件是由哪個(gè)安裝包生成的 [root@localhost?vsftpd]#?rpm?-qf?/etc/vsftpd/ vsftpd-3.0.2-10.el7.x86_64

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

#查看某個(gè)包安裝過后生成的文件 [root@localhost?vsftpd]#?rpm?-ql?vsftpd? /etc/logrotate.d/vsftpd /etc/pam.d/vsftpd /etc/vsftpd /etc/vsftpd/ftpusers /etc/vsftpd/user_list /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd_conf_migrate.sh /usr/lib/systemd/system-generators/vsftpd-generator /usr/lib/systemd/system/vsftpd.service /usr/lib/systemd/system/vsftpd.target /usr/lib/systemd/system/vsftpd@.service /usr/sbin/vsftpd /usr/share/doc/vsftpd-3.0.2 /usr/share/doc/vsftpd-3.0.2/AUDIT /usr/share/doc/vsftpd-3.0.2/BENCHMARKS /usr/share/doc/vsftpd-3.0.2/BUGS /usr/share/doc/vsftpd-3.0.2/COPYING /usr/share/doc/vsftpd-3.0.2/Changelog /usr/share/doc/vsftpd-3.0.2/EXAMPLE /usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE /usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/README /usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/README.configuration /usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/vsftpd.conf /usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/vsftpd.xinetd /usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD /usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD/README /usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD/README.configuration /usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD/vsftpd.conf /usr/share/doc/vsftpd-3.0.2/EXAMPLE/PER_IP_CONFIG /usr/share/doc/vsftpd-3.0.2/EXAMPLE/PER_IP_CONFIG/README /usr/share/doc/vsftpd-3.0.2/EXAMPLE/PER_IP_CONFIG/README.configuration /usr/share/doc/vsftpd-3.0.2/EXAMPLE/PER_IP_CONFIG/hosts.allow /usr/share/doc/vsftpd-3.0.2/EXAMPLE/README /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_HOSTS /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_HOSTS/README /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/README /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/README.configuration /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/logins.txt /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/vsftpd.conf /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/vsftpd.pam /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS_2 /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS_2/README /usr/share/doc/vsftpd-3.0.2/FAQ /usr/share/doc/vsftpd-3.0.2/INSTALL /usr/share/doc/vsftpd-3.0.2/LICENSE /usr/share/doc/vsftpd-3.0.2/README /usr/share/doc/vsftpd-3.0.2/README.security /usr/share/doc/vsftpd-3.0.2/REWARD /usr/share/doc/vsftpd-3.0.2/SECURITY /usr/share/doc/vsftpd-3.0.2/SECURITY/DESIGN /usr/share/doc/vsftpd-3.0.2/SECURITY/IMPLEMENTATION /usr/share/doc/vsftpd-3.0.2/SECURITY/OVERVIEW /usr/share/doc/vsftpd-3.0.2/SECURITY/TRUST /usr/share/doc/vsftpd-3.0.2/SIZE /usr/share/doc/vsftpd-3.0.2/SPEED /usr/share/doc/vsftpd-3.0.2/TODO /usr/share/doc/vsftpd-3.0.2/TUNING /usr/share/doc/vsftpd-3.0.2/vsftpd.xinetd /usr/share/man/man5/vsftpd.conf.5.gz /usr/share/man/man8/vsftpd.8.gz /var/ftp /var/ftp/pub

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

#查詢指定程序包包含的配置文件 [root@localhost?Packages]#?rpm?-qc?vsftpd /etc/logrotate.d/vsftpd /etc/pam.d/vsftpd /etc/vsftpd/ftpusers /etc/vsftpd/user_list /etc/vsftpd/vsftpd.conf

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

#查詢指定程序包提供的文檔 [root@localhost?Packages]#?rpm?-qd?vsftpd /usr/share/doc/vsftpd-3.0.2/AUDIT /usr/share/doc/vsftpd-3.0.2/BENCHMARKS /usr/share/doc/vsftpd-3.0.2/BUGS /usr/share/doc/vsftpd-3.0.2/COPYING /usr/share/doc/vsftpd-3.0.2/Changelog /usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/README /usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/README.configuration /usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/vsftpd.conf /usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/vsftpd.xinetd /usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD/README /usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD/README.configuration /usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD/vsftpd.conf /usr/share/doc/vsftpd-3.0.2/EXAMPLE/PER_IP_CONFIG/README /usr/share/doc/vsftpd-3.0.2/EXAMPLE/PER_IP_CONFIG/README.configuration /usr/share/doc/vsftpd-3.0.2/EXAMPLE/PER_IP_CONFIG/hosts.allow /usr/share/doc/vsftpd-3.0.2/EXAMPLE/README /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_HOSTS/README /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/README /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/README.configuration /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/logins.txt /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/vsftpd.conf /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS/vsftpd.pam /usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS_2/README /usr/share/doc/vsftpd-3.0.2/FAQ /usr/share/doc/vsftpd-3.0.2/INSTALL /usr/share/doc/vsftpd-3.0.2/LICENSE /usr/share/doc/vsftpd-3.0.2/README /usr/share/doc/vsftpd-3.0.2/README.security /usr/share/doc/vsftpd-3.0.2/REWARD /usr/share/doc/vsftpd-3.0.2/SECURITY/DESIGN /usr/share/doc/vsftpd-3.0.2/SECURITY/IMPLEMENTATION /usr/share/doc/vsftpd-3.0.2/SECURITY/OVERVIEW /usr/share/doc/vsftpd-3.0.2/SECURITY/TRUST /usr/share/doc/vsftpd-3.0.2/SIZE /usr/share/doc/vsftpd-3.0.2/SPEED /usr/share/doc/vsftpd-3.0.2/TODO /usr/share/doc/vsftpd-3.0.2/TUNING /usr/share/doc/vsftpd-3.0.2/vsftpd.xinetd /usr/share/man/man5/vsftpd.conf.5.gz /usr/share/man/man8/vsftpd.8.gz


效驗(yàn) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

rpm?{-V|--verify}?[select-options]?[verify-options]--nodepsDon't?verify?dependencies?of?packages.--nodigestDon't?verify?package?or?header?digests?when?reading.--nofilesDon't?verify?any?attributes?of?package?files.--noscriptsDon't??execute??the??%verifyscript??scriptlet?(ifany).S?file?Size?differsM?Mode?differs?(includes?permissions?and?file?type)5?digest?(formerly?MD5?sum)?differsD?Device?major/minor?number?mismatchL?readLink(2)?path?mismatchU?User?ownership?differsG?Group?ownership?differsT?mTime?differsP?caPabilities?differ 不添加任何參數(shù)默認(rèn)就是檢查所有參數(shù) rpm?-V?--nodeps

程序包的合法性驗(yàn)證:

????來源合法:由制作者提供,依賴于制作者的數(shù)字簽名,簽名是作者使用自己的私鑰加密程序包的特性碼進(jìn)行的;

????內(nèi)容合法:包未被二次修改,依賴于:制作者提供的程序特征碼;

? ? ?驗(yàn)正方式:安裝者用同樣的特征碼提取算法提取程序包的特征碼,并與原作者提供的相比較;

舉例:

rpm?--import?/misc/cd/RPM-GPG-KEY-CentOS-6? rpm?-K?vsftpd-3.0.2-10.el7.x86_64.rpm? vsftpd-3.0.2-10.el7.x86_64.rpm:?rsa?sha1?(md5)?pgp?md5?OK

??

數(shù)據(jù)庫維護(hù)

rpm管理器數(shù)據(jù)庫:/var/lib/rpm rpmdb?{--initdb|--rebuilddb}?[-v]?[--dbpath?DIRECTORY]--initdb:?初始化數(shù)據(jù)庫,數(shù)據(jù)庫不存在,才會(huì)新建;--rebuilddb:?無論當(dāng)前數(shù)據(jù)庫是否存在,都會(huì)直接重建此庫;

舉例:

#刪除庫 [root@localhost?rpm]#?ls Basenames?????__db.001??__db.003??Group???????Name??????????Packages?????Requirename??Sigmd5 Conflictname??__db.002??Dirnames??Installtid??Obsoletename??Providename??Sha1header???Triggername [root@localhost?rpm]#?rm?-fr?* [root@localhost?rpm]#?ls #使用查詢重新生成庫 [root@localhost?rpm]#?rpm?-qa?vsftpd [root@localhost?rpm]#?ls Basenames?????__db.001??__db.003??Group???????Name??????????Packages?????Requirename??Sigmd5 Conflictname??__db.002??Dirnames??Installtid??Obsoletename??Providename??Sha1header???Triggername [root@localhost?rpm]# #使用命令rpmdb?--initdb生成庫 [root@localhost?rpm]#?rm?-fr?* [root@localhost?rpm]#?ll total?0 [root@localhost?rpm]#?rpmdb?--initdb [root@localhost?rpm]#?ll total?388 -rw-r--r--.?1?root?root???8192?Aug?23?22:19?Basenames -rw-r--r--.?1?root?root???8192?Aug?23?22:19?Conflictname -rw-r--r--.?1?root?root?270336?Aug?23?22:19?__db.001 -rw-r--r--.?1?root?root??81920?Aug?23?22:19?__db.002 -rw-r--r--.?1?root?root?107048?Aug?23?22:19?__db.003 -rw-r--r--.?1?root?root???8192?Aug?23?22:19?Dirnames -rw-r--r--.?1?root?root???8192?Aug?23?22:19?Group -rw-r--r--.?1?root?root???8192?Aug?23?22:19?Installtid -rw-r--r--.?1?root?root???8192?Aug?23?22:19?Name -rw-r--r--.?1?root?root???8192?Aug?23?22:19?Obsoletename -rw-r--r--.?1?root?root??12288?Aug?23?22:19?Packages -rw-r--r--.?1?root?root???8192?Aug?23?22:19?Providename -rw-r--r--.?1?root?root???8192?Aug?23?22:19?Requirename -rw-r--r--.?1?root?root???8192?Aug?23?22:19?Sha1header -rw-r--r--.?1?root?root???8192?Aug?23?22:19?Sigmd5 -rw-r--r--.?1?root?root???8192?Aug?23?22:19?Triggername

??

幫助

? 1. man?rpm

??




2.?man?rpmdb




轉(zhuǎn)載于:https://blog.51cto.com/liaoxz/1841791

總結(jié)

以上是生活随笔為你收集整理的linux软件包管理-rpm的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。