程序包管理器rpm和yum的使用-創(chuàng)新互聯(lián)

這篇文章主要為大家詳細(xì)介紹了程序包管理器rpm和yum的使用,文中示例代碼介紹的非常詳細(xì),圖文詳解容易學(xué)習(xí),非常適合初學(xué)者入門(mén),感興趣的小伙伴們可以參考一下。

創(chuàng)新互聯(lián)基于成都重慶香港及美國(guó)等地區(qū)分布式IDC機(jī)房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動(dòng)大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)四川雅安電信機(jī)房報(bào)價(jià),主機(jī)托管價(jià)格性價(jià)比高,為金融證券行業(yè)服務(wù)器托管,ai人工智能服務(wù)器托管提供bgp線路100M獨(dú)享,G口帶寬及機(jī)柜租用的專業(yè)成都idc公司。

在早期我們?cè)贚inux上安裝程序時(shí),都采用的源代碼來(lái)安裝應(yīng)用程序,這就意味著我們每次都要經(jīng)過(guò)預(yù)處理,編譯,匯編,鏈接最后生成可執(zhí)行的二進(jìn)制文件;這樣的操作太過(guò)繁瑣,為簡(jiǎn)化安裝步驟,便于廣大用戶的安裝部署程序,程序提供商就在特定的系統(tǒng)上面編譯好相關(guān)程序的安裝文件并進(jìn)行打包,提供給大家下載,而對(duì)這些程序包進(jìn)行管理的就是程序包管理器;

 不同Linux發(fā)行版本,就有不同的程序包管理器;在這里列舉一些常用的程序包管理器;

 在Debian中dpkg工具來(lái)管理所有.deb后綴名的包文件;Redhat中就使用最為經(jīng)典的rpm程序包管理器,rpm是Linux的程序包管理器的行業(yè)標(biāo)準(zhǔn),使用perl語(yǔ)言編寫(xiě),在此基礎(chǔ)上有人用C語(yǔ)言對(duì)其進(jìn)行重新編寫(xiě),提高了其運(yùn)行效率;dpkg最早是由 Debian Linux 社群所開(kāi)發(fā)出來(lái)的, 只要是衍生亍 Debian 的其他 Linux distributions 大多使用 dpkg 這個(gè)機(jī)制來(lái)管理軟件的, 包括B2D, Ubuntu 等等,其前端工具有apt-get;

 在這里給大家主要介紹關(guān)于rpm程序包管理器的相關(guān)功能;

 首先必須要清楚關(guān)于rpm的源代碼包以及二進(jìn)制包的命名規(guī)則,能夠熟悉其中所給予的信息;

 源代碼包:software_name-VERSION.src.rpm

 二進(jìn)制包:software_name-VERSION-[release].[os].arch.rpm

 software_name:軟件名;

 VERSION:版本號(hào),分為主版本號(hào)major,次版本號(hào)minor以及發(fā)行版本號(hào)release

 [os]:所支持的操作系統(tǒng)版本信息,el6,el7,suse11,fedora22...

 arch:硬件平臺(tái)類型,i386,i686,x64,ppc,sparc,noarch

 rpm在制作時(shí),制作者通常會(huì)制作主包和次包兩種,二者存在依賴關(guān)系,即先安裝某部分程序才能按照他所依賴的部分進(jìn)行接下去的安裝,否則,安裝無(wú)法進(jìn)行;

 主程序包:

 software_name-VERSION-[release].[os].arch.rpm

 附屬功能包:

 software_name-function-VERSION-[release].[os].arch.rpm

 rpm命令行工具:

 ①可以將編譯好的程序進(jìn)行打包,封裝在一起;

 ②可以進(jìn)行安裝,卸載,查看,升級(jí),校驗(yàn)及數(shù)據(jù)庫(kù)管理功能;

 在使用rpm程序包進(jìn)行安裝時(shí),rpm程序管理器會(huì)自動(dòng)生成程序的文件,文件清單(保存文件名和依賴  關(guān)系)以及在安裝程序所需要的一些固定的腳本內(nèi)容如安裝前腳本preinstall,安裝后腳本

 postinstall,卸載前腳本preunistall,卸載后腳本postunistall等;還需要安裝rpm數(shù)據(jù)庫(kù),對(duì)所  安裝的程序進(jìn)行比對(duì),看是否版本為最新;該數(shù)據(jù)庫(kù)路徑為/var/lib/rpm;在進(jìn)行安裝,卸載等操作  時(shí),要在光盤(pán)掛載點(diǎn)下的Packets下進(jìn)行;

 rpm命令:

 -v:顯示安裝例程的詳細(xì)信息;

 -vv:顯示非常詳細(xì)的安裝信息;

 安裝:

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

 install-option:

   -h,--hash:用50個(gè)#來(lái)表示安裝進(jìn)度;

   --test:并不是真正的安裝軟件包,僅僅測(cè)試在安裝時(shí)能否正常完成,如果失敗,則說(shuō)出原        因;

   --nodeps:忽略因?yàn)橐蕾囮P(guān)系導(dǎo)致的安裝錯(cuò)誤;(不建議使用)

   --replacefiles:在安裝軟件包時(shí),軟件包中的文件會(huì)直接將原來(lái)安裝的文件替換;

   --replacekgs:不卸載軟件包而重新安裝;

   --noscripts:不運(yùn)行任何腳本;

   --nopre:不運(yùn)行安裝前腳本;

   --nopost:不運(yùn)行安裝后腳本;

   --nosignature:不去考慮軟件包的來(lái)源是否合法;

   --nodigest:不考慮軟件包是否完整;

   常見(jiàn)組合選項(xiàng):-ivh

 例 安裝tree命令 ######即為-h選項(xiàng)安裝進(jìn)度,tree-1.6.0-10.el7.x86_64.rpm即為-v選項(xiàng)的安裝例   程信息;

  程序包管理器rpm和yum的使用

 使用--test進(jìn)行測(cè)試操作,對(duì)安裝進(jìn)行測(cè)試,看是否能行,并不進(jìn)行實(shí)質(zhì)性安裝;

  程序包管理器rpm和yum的使用

 升級(jí):

 升級(jí)安裝有兩種方式:

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

 如果事先未安裝程序,則直接安裝最新版本的程序,若已經(jīng)安裝程序,就在該程序基礎(chǔ)上進(jìn)行升級(jí)安  裝;

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

 僅僅只能對(duì)已經(jīng)安裝的低版本的程序包進(jìn)行升級(jí)安裝;

 注意:為了保證系統(tǒng)的正常運(yùn)行最好不要對(duì)內(nèi)核進(jìn)行升級(jí);

 常用選項(xiàng)與安裝相同:

   -h,--hash:用50個(gè)#來(lái)表示安裝進(jìn)度;

   --test:并不是真正的安裝軟件包,僅僅測(cè)試在安裝時(shí)能否正常完成,如果失敗,則說(shuō)出原        因;

   --nodeps:忽略因?yàn)橐蕾囮P(guān)系導(dǎo)致的安裝錯(cuò)誤;(不建議使用)

   --replacefiles:在安裝軟件包時(shí),軟件包中的文件會(huì)直接將原來(lái)安裝的文件替換;

   --replacekgs:不卸載軟件包而重新安裝;

   --noscripts:不運(yùn)行任何腳本;

   --nopre:不運(yùn)行安裝前腳本;

   --nopost:不運(yùn)行安裝后腳本;

   --nosignature:不去考慮軟件包的來(lái)源是否合法;

   --nodigest:不考慮軟件包是否完整;

   --oldpackage:降級(jí)安裝,用老版本的程序包替換新版本的程序包;

 卸載:

 rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test]    PACKAGE_NAME(軟件名) ...

 常用選項(xiàng):

 --allmatches:卸載時(shí)所有匹配指定名稱的程序包的各個(gè)版本;

 --test:測(cè)試卸載;

 --nodeps:卸載時(shí)忽略一欄關(guān)系,不建議使用;

 例

 卸載操作較為簡(jiǎn)單,直接命令+選項(xiàng)+卸載的軟件名;

  程序包管理器rpm和yum的使用

 查詢:

 安裝之前需要查詢,卸載之前需要查詢,做任何操作哦之前都要進(jìn)行查詢操作;

 rpm {-q|--query} [select-options] [query-options](直接給出程序包名)

 select options:

 -a,--all:查詢所有已經(jīng)安裝的程序包信息;

 例 查找相關(guān)的軟件包

 程序包管理器rpm和yum的使用

 -f,--file FILE:查找指定文件由那個(gè)程序包提供的;

 --whatprovides CAPABILITY:查詢指定的CAPABILITY是有哪個(gè)程序包提供

 例 查找文件/bin/chown由哪個(gè)程序包提供

  程序包管理器rpm和yum的使用

 -p,--package PACKAGE_FILE(程序包文件名稱):

 對(duì)還沒(méi)有安裝的程序包文件執(zhí)行查詢操作;跟p配合的必須是程序包文件

 [root@localhost wjq]# rpm -qpl /media/guangpan/Packages/tree-1.6.0-10.el7.x86_64.rpm

 query options:

 --changelog:查詢r(jià)pm程序包的changelog

 -c,--configfiles:查詢指定程序包中有哪些配置信息;

 -d,--docfiles:查詢指定程序包中有哪些文檔文件;

 例 查看tree程序包中有哪些文檔文件

  程序包管理器rpm和yum的使用

 -i,--info:查詢程序包相關(guān)信息,包括版本號(hào),發(fā)行號(hào),大??;

 例 查看tree程序相關(guān)信息

  程序包管理器rpm和yum的使用

 -l,--list:列表顯示程序生成哪些文件;

 例

  程序包管理器rpm和yum的使用

 --provides:列出制定程序包提供的所有的CAPABILITY;

 -R,--requires:查詢程序包的依賴關(guān)系

 --scripts:查看程序包所攜帶的腳本的內(nèi)容

 校驗(yàn):用于檢查包安裝生成的文件屬性是否發(fā)生變化

 rpm {-V|--verify} [select-options] [verify-options]

 select options與查詢的select options一樣;

 常用選項(xiàng):

 -V :后面加的是程序名稱,若該程序?qū)儆械奈募l(fā)生改變就會(huì)顯示;

 例

  程序包管理器rpm和yum的使用

 -Va :顯示目前系統(tǒng)上面所有可能被修改過(guò)的文件;

 例

  程序包管理器rpm和yum的使用

 -Vp :后面加的是文件名,顯示該程序內(nèi)可能被更改過(guò)的文件;

 -Vf :后面加的是文件名,顯示某個(gè)文件是否被修改過(guò)。

 對(duì)應(yīng)屬性位說(shuō)明:只有在對(duì)應(yīng)的屬性為發(fā)生改變后,屬性才會(huì)顯示;

    S file Size differs 表示文件大小發(fā)生改變

    M Mode differs (includes permissions and file type)  文件的權(quán)限或類型被修改

    5 digest (formerly MD5 sum) differs  文件內(nèi)容發(fā)生改變

    D Device major/minor number mismatch 主設(shè)備號(hào)、次設(shè)備號(hào)發(fā)生改變

    L readLink(2) path mismatch  路徑改變

    U User ownership differs  屬主發(fā)生改變

    G Group ownership differs  屬組發(fā)生改變

    T mTime differs   文件的修改時(shí)間發(fā)生改變

    P caPabilities differ 包的能力發(fā)生改變

  數(shù)據(jù)庫(kù)管理:數(shù)據(jù)庫(kù)路徑為/var/lib/rpm若該路徑下的數(shù)據(jù)遭到破壞則系統(tǒng)無(wú)法知道有哪些軟件在       系統(tǒng)中,那些軟件的詳細(xì)信息都無(wú)法顯示;

  rpm數(shù)據(jù)庫(kù)管理主要分為初始化與重建兩個(gè)部分,初始化,若已安裝數(shù)據(jù)庫(kù)則初始化結(jié)果不變,若   未安裝數(shù)據(jù)庫(kù),則對(duì)數(shù)據(jù)庫(kù)進(jìn)行安裝,重建就是在原有數(shù)據(jù)庫(kù)的基礎(chǔ)上進(jìn)行覆蓋安裝操作;

  rpm {--initdb|--rebuilddb} --dbpath /PATH/TO/FILE

  --initdb:初始化數(shù)據(jù)庫(kù);

  --rebuilddb:重建數(shù)據(jù)庫(kù);

 yum程序包管理器:

 yum(全稱Yellow dog Updater, Modified)是一個(gè)在Fedora和RedHat以及SUSE中的Shell前端軟件包管理器?;禦PM包管理,能夠從指定的服務(wù)器自動(dòng)下載RPM包并且安裝,可以自動(dòng)處理依賴性關(guān)系,并且一次安裝所有依賴的軟體包,無(wú)須繁瑣地一次次下載、安裝。yum提供了查找、安裝、刪除某一個(gè)、一組甚至全部軟件包的命令,而且命令簡(jiǎn)潔而又好記。yum是客戶機(jī)服務(wù)器模式,服務(wù)器也稱為軟件倉(cāng)庫(kù),存儲(chǔ)著許多的軟件包以供安裝;客戶端是用來(lái)指定服務(wù)器以及程序包的路徑喝一些必要的控制操作;

 yum的主配置文件/etc/yum.conf

 該文件一般情況下是不修改的,只提供yum軟件包的公共配置信息;

 yum的次配置文件/etc/yum.repos.d/*.repo

 在yum.repos.d目錄下創(chuàng)建以repo為后綴的文本文件,每個(gè)文件可以配置指向多個(gè)軟件倉(cāng)庫(kù);yum命令在安裝或更新時(shí),通過(guò)查找這些配置文件所指向的路徑,得到多個(gè)軟件倉(cāng)庫(kù),從這些軟件倉(cāng)庫(kù)中得到最新版本進(jìn)行安裝或更新;

 在/etc/yum.repos.d下創(chuàng)建的文本文件中的格式:

 [repoid]

 name=

 baseurl=schema://hostname/PATH/TO/REPODATA  (hostname可省略不寫(xiě))

 schema:

  http,ftp,nfs:網(wǎng)絡(luò)服務(wù)器指向

  file:本地服務(wù)器指向

 enabled={0|1},0表示禁用此倉(cāng)庫(kù)指向,1表示啟用,如果沒(méi)有enable語(yǔ)句,默認(rèn)為啟動(dòng)狀態(tài);

 gpgcheck={0|1}:0表示不進(jìn)行程序包認(rèn)證,1表示認(rèn)證,如果為1,需要指定認(rèn)證所需要的公鑰文   件,需要使用gpgkey語(yǔ)句;

 gpgkey=schema://hostname//PATH/TO/PUBLIC_KEY_FILE 軟件包公鑰,當(dāng)為本地服務(wù)器指向時(shí)可省略公鑰路徑;

 例

  程序包管理器rpm和yum的使用

 注意:同一個(gè)文本文件下的不同配置信息之間使用[repoid]進(jìn)行隔離,所有配置信息生效的范圍是從一個(gè)[]開(kāi)始到下一個(gè)[]結(jié)束;

 主配置文件解析:

  程序包管理器rpm和yum的使用

 cachedir:yum緩存的目錄,yum在此存儲(chǔ)下載的rpm包和數(shù)據(jù)庫(kù),一般是/var/cache/yum。

 debuglevel:除錯(cuò)級(jí)別,0──10,默認(rèn)是2

 logfile:yum的日志文件,默認(rèn)是/var/log/yum.log。

 exactarch,有兩個(gè)選項(xiàng)1和0,代表是否只升級(jí)和你安裝軟件包c(diǎn)pu體系一致的包,如果設(shè)為1,則如你  安裝了一個(gè)i386的rpm,則yum不會(huì)用686的包來(lái)升級(jí)。

 gpgchkeck= 有1和0兩個(gè)選擇,分別代表是否是否進(jìn)行g(shù)pg校驗(yàn),如果沒(méi)有這一項(xiàng),默認(rèn)好像也是檢查  的。

 自定義配置軟件倉(cāng)庫(kù)

 1.創(chuàng)建一個(gè)目錄將需要的程序包放入目錄中;

 2.使用createrepo命令創(chuàng)建倉(cāng)庫(kù);產(chǎn)生repodata;

 3.在/etc/yum.repos.d下創(chuàng)建一個(gè)關(guān)于該軟件倉(cāng)庫(kù)的配置文件,以repo為后綴;

 yum命令(該命令的使用要在聯(lián)網(wǎng)的情況下):

 yum [options] [command] [package ...]

 option:

 -q:安靜模式,使yum沒(méi)有輸出任何的信息,不顯示安裝過(guò)程;

 -y:yum命令下的所有交互操作yes or no全部以yes表示;

 

 yum安裝:

 yum install:全部安裝

 install package1 [package2] [...]:指定程序包安裝

  程序包管理器rpm和yum的使用

 yum卸載:

 yum remove|erase package1 [package2] [...]

  程序包管理器rpm和yum的使用

 yum更新:

 update [package1] [package2] [...]:對(duì)所更新的程序包進(jìn)行最新更新

 update-to [package1] [package2] [...]:指定目的版本號(hào)的更新;

 yum list [...]查詢操作,可查看當(dāng)前系統(tǒng)下的安裝的,未安裝但可用的程序包;

 查看所有程序包:

 yum list all

 查看所有已安裝的程序包:

 yum list installed

 顯示所有尚未安裝但可以安裝的程序包:

 yum list available

 顯示最近安裝的程序包:

 yum list recent

 顯示所有可以升級(jí)更新的程序包:

 yum list updates

 yum清除緩存:

 清理本地緩存信息;

 clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

 清除緩存目錄下的軟件包

 yum clean packages

 程序包組的管理命令:

 groups [...]

 組安裝:

 groupinstall group1 [group2] [...]等于groups install

  程序包管理器rpm和yum的使用

 組更新:

 groupupdate group1 [group2] [...]等于groups update

 顯示當(dāng)前組列表:

 grouplist [hidden] [groupwildcard] [...]

  程序包管理器rpm和yum的使用

 卸載安裝的組:

 groupremove group1 [group2] [...]

 程序包管理器rpm和yum的使用

 顯示組信息:

 groupinfo group1 [...]

 程序包管理器rpm和yum的使用

 根據(jù)關(guān)鍵字進(jìn)行匹配,默認(rèn)情況下,搜索程序包名稱及匯總信息,模糊搜索;

 search string1 [string2] [...]

 yum重新安裝

 reinstall package1 [package2] [...]

 顯示每個(gè)程序包所有的依賴關(guān)系

 deplist package1 [package2] [...]

以上就是程序包管理器rpm和yum的使用方法介紹,詳細(xì)使用情況還得要大家自己使用過(guò)才能知道具體要領(lǐng)。如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

另外有需要云服務(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)景需求。

網(wǎng)站欄目:程序包管理器rpm和yum的使用-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://muchs.cn/article10/dpeddo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、小程序開(kāi)發(fā)、虛擬主機(jī)、網(wǎng)站策劃App開(kāi)發(fā)、云服務(wù)器

廣告

聲明:本網(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è)網(wǎng)站維護(hù)公司