這篇文章主要為大家詳細(xì)介紹了程序包管理器rpm和yum的使用,文中示例代碼介紹的非常詳細(xì),圖文詳解容易學(xué)習(xí),非常適合初學(xué)者入門,感興趣的小伙伴們可以參考一下。
創(chuàng)新互聯(lián)基于成都重慶香港及美國等地區(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公司。在早期我們在Linux上安裝程序時(shí),都采用的源代碼來安裝應(yīng)用程序,這就意味著我們每次都要經(jīng)過預(yù)處理,編譯,匯編,鏈接最后生成可執(zhí)行的二進(jìn)制文件;這樣的操作太過繁瑣,為簡化安裝步驟,便于廣大用戶的安裝部署程序,程序提供商就在特定的系統(tǒng)上面編譯好相關(guān)程序的安裝文件并進(jìn)行打包,提供給大家下載,而對這些程序包進(jìn)行管理的就是程序包管理器;
不同Linux發(fā)行版本,就有不同的程序包管理器;在這里列舉一些常用的程序包管理器;
在Debian中dpkg工具來管理所有.deb后綴名的包文件;Redhat中就使用最為經(jīng)典的rpm程序包管理器,rpm是Linux的程序包管理器的行業(yè)標(biāo)準(zhǔn),使用perl語言編寫,在此基礎(chǔ)上有人用C語言對其進(jìn)行重新編寫,提高了其運(yùn)行效率;dpkg最早是由 Debian Linux 社群所開發(fā)出來的, 只要是衍生亍 Debian 的其他 Linux distributions 大多使用 dpkg 這個(gè)機(jī)制來管理軟件的, 包括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)行接下去的安裝,否則,安裝無法進(jìn)行;
主程序包:
software_name-VERSION-[release].[os].arch.rpm
附屬功能包:
software_name-function-VERSION-[release].[os].arch.rpm
rpm命令行工具:
①可以將編譯好的程序進(jìn)行打包,封裝在一起;
②可以進(jìn)行安裝,卸載,查看,升級,校驗(yàn)及數(shù)據(jù)庫管理功能;
在使用rpm程序包進(jìn)行安裝時(shí),rpm程序管理器會(huì)自動(dòng)生成程序的文件,文件清單(保存文件名和依賴 關(guān)系)以及在安裝程序所需要的一些固定的腳本內(nèi)容如安裝前腳本preinstall,安裝后腳本
postinstall,卸載前腳本preunistall,卸載后腳本postunistall等;還需要安裝rpm數(shù)據(jù)庫,對所 安裝的程序進(jìn)行比對,看是否版本為最新;該數(shù)據(jù)庫路徑為/var/lib/rpm;在進(jìn)行安裝,卸載等操作 時(shí),要在光盤掛載點(diǎn)下的Packets下進(jìn)行;
rpm命令:
-v:顯示安裝例程的詳細(xì)信息;
-vv:顯示非常詳細(xì)的安裝信息;
安裝:
rpm {-i|--install} [install-options] PACKAGE_FILE ...
install-option:
-h,--hash:用50個(gè)#來表示安裝進(jìn)度;
--test:并不是真正的安裝軟件包,僅僅測試在安裝時(shí)能否正常完成,如果失敗,則說出原 因;
--nodeps:忽略因?yàn)橐蕾囮P(guān)系導(dǎo)致的安裝錯(cuò)誤;(不建議使用)
--replacefiles:在安裝軟件包時(shí),軟件包中的文件會(huì)直接將原來安裝的文件替換;
--replacekgs:不卸載軟件包而重新安裝;
--noscripts:不運(yùn)行任何腳本;
--nopre:不運(yùn)行安裝前腳本;
--nopost:不運(yùn)行安裝后腳本;
--nosignature:不去考慮軟件包的來源是否合法;
--nodigest:不考慮軟件包是否完整;
常見組合選項(xiàng):-ivh
例 安裝tree命令 ######即為-h選項(xiàng)安裝進(jìn)度,tree-1.6.0-10.el7.x86_64.rpm即為-v選項(xiàng)的安裝例 程信息;
使用--test進(jìn)行測試操作,對安裝進(jìn)行測試,看是否能行,并不進(jìn)行實(shí)質(zhì)性安裝;
升級:
升級安裝有兩種方式:
rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...
如果事先未安裝程序,則直接安裝最新版本的程序,若已經(jīng)安裝程序,就在該程序基礎(chǔ)上進(jìn)行升級安 裝;
rpm {-F|--freshen} [install-options] PACKAGE_FILE ...
僅僅只能對已經(jīng)安裝的低版本的程序包進(jìn)行升級安裝;
注意:為了保證系統(tǒng)的正常運(yùn)行最好不要對內(nèi)核進(jìn)行升級;
常用選項(xiàng)與安裝相同:
-h,--hash:用50個(gè)#來表示安裝進(jìn)度;
--test:并不是真正的安裝軟件包,僅僅測試在安裝時(shí)能否正常完成,如果失敗,則說出原 因;
--nodeps:忽略因?yàn)橐蕾囮P(guān)系導(dǎo)致的安裝錯(cuò)誤;(不建議使用)
--replacefiles:在安裝軟件包時(shí),軟件包中的文件會(huì)直接將原來安裝的文件替換;
--replacekgs:不卸載軟件包而重新安裝;
--noscripts:不運(yùn)行任何腳本;
--nopre:不運(yùn)行安裝前腳本;
--nopost:不運(yùn)行安裝后腳本;
--nosignature:不去考慮軟件包的來源是否合法;
--nodigest:不考慮軟件包是否完整;
--oldpackage:降級安裝,用老版本的程序包替換新版本的程序包;
卸載:
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME(軟件名) ...
常用選項(xiàng):
--allmatches:卸載時(shí)所有匹配指定名稱的程序包的各個(gè)版本;
--test:測試卸載;
--nodeps:卸載時(shí)忽略一欄關(guān)系,不建議使用;
例
卸載操作較為簡單,直接命令+選項(xiàng)+卸載的軟件名;
查詢:
安裝之前需要查詢,卸載之前需要查詢,做任何操作哦之前都要進(jìn)行查詢操作;
rpm {-q|--query} [select-options] [query-options](直接給出程序包名)
select options:
-a,--all:查詢所有已經(jīng)安裝的程序包信息;
例 查找相關(guān)的軟件包
-f,--file FILE:查找指定文件由那個(gè)程序包提供的;
--whatprovides CAPABILITY:查詢指定的CAPABILITY是有哪個(gè)程序包提供
例 查找文件/bin/chown由哪個(gè)程序包提供
-p,--package PACKAGE_FILE(程序包文件名稱):
對還沒有安裝的程序包文件執(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程序包中有哪些文檔文件
-i,--info:查詢程序包相關(guān)信息,包括版本號(hào),發(fā)行號(hào),大??;
例 查看tree程序相關(guān)信息
-l,--list:列表顯示程序生成哪些文件;
例
--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ì)顯示;
例
-Va :顯示目前系統(tǒng)上面所有可能被修改過的文件;
例
-Vp :后面加的是文件名,顯示該程序內(nèi)可能被更改過的文件;
-Vf :后面加的是文件名,顯示某個(gè)文件是否被修改過。
對應(yīng)屬性位說明:只有在對應(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ù)庫管理:數(shù)據(jù)庫路徑為/var/lib/rpm若該路徑下的數(shù)據(jù)遭到破壞則系統(tǒng)無法知道有哪些軟件在 系統(tǒng)中,那些軟件的詳細(xì)信息都無法顯示;
rpm數(shù)據(jù)庫管理主要分為初始化與重建兩個(gè)部分,初始化,若已安裝數(shù)據(jù)庫則初始化結(jié)果不變,若 未安裝數(shù)據(jù)庫,則對數(shù)據(jù)庫進(jìn)行安裝,重建就是在原有數(shù)據(jù)庫的基礎(chǔ)上進(jìn)行覆蓋安裝操作;
rpm {--initdb|--rebuilddb} --dbpath /PATH/TO/FILE
--initdb:初始化數(shù)據(jù)庫;
--rebuilddb:重建數(shù)據(jù)庫;
yum程序包管理器:
yum(全稱Yellow dog Updater, Modified)是一個(gè)在Fedora和RedHat以及SUSE中的Shell前端軟件包管理器?;禦PM包管理,能夠從指定的服務(wù)器自動(dòng)下載RPM包并且安裝,可以自動(dòng)處理依賴性關(guān)系,并且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。yum提供了查找、安裝、刪除某一個(gè)、一組甚至全部軟件包的命令,而且命令簡潔而又好記。yum是客戶機(jī)服務(wù)器模式,服務(wù)器也稱為軟件倉庫,存儲(chǔ)著許多的軟件包以供安裝;客戶端是用來指定服務(wù)器以及程序包的路徑喝一些必要的控制操作;
yum的主配置文件/etc/yum.conf
該文件一般情況下是不修改的,只提供yum軟件包的公共配置信息;
yum的次配置文件/etc/yum.repos.d/*.repo
在yum.repos.d目錄下創(chuàng)建以repo為后綴的文本文件,每個(gè)文件可以配置指向多個(gè)軟件倉庫;yum命令在安裝或更新時(shí),通過查找這些配置文件所指向的路徑,得到多個(gè)軟件倉庫,從這些軟件倉庫中得到最新版本進(jìn)行安裝或更新;
在/etc/yum.repos.d下創(chuàng)建的文本文件中的格式:
[repoid]
name=
baseurl=schema://hostname/PATH/TO/REPODATA (hostname可省略不寫)
schema:
http,ftp,nfs:網(wǎng)絡(luò)服務(wù)器指向
file:本地服務(wù)器指向
enabled={0|1},0表示禁用此倉庫指向,1表示啟用,如果沒有enable語句,默認(rèn)為啟動(dòng)狀態(tài);
gpgcheck={0|1}:0表示不進(jìn)行程序包認(rèn)證,1表示認(rèn)證,如果為1,需要指定認(rèn)證所需要的公鑰文 件,需要使用gpgkey語句;
gpgkey=schema://hostname//PATH/TO/PUBLIC_KEY_FILE 軟件包公鑰,當(dāng)為本地服務(wù)器指向時(shí)可省略公鑰路徑;
例
注意:同一個(gè)文本文件下的不同配置信息之間使用[repoid]進(jìn)行隔離,所有配置信息生效的范圍是從一個(gè)[]開始到下一個(gè)[]結(jié)束;
主配置文件解析:
cachedir:yum緩存的目錄,yum在此存儲(chǔ)下載的rpm包和數(shù)據(jù)庫,一般是/var/cache/yum。
debuglevel:除錯(cuò)級別,0──10,默認(rèn)是2
logfile:yum的日志文件,默認(rèn)是/var/log/yum.log。
exactarch,有兩個(gè)選項(xiàng)1和0,代表是否只升級和你安裝軟件包c(diǎn)pu體系一致的包,如果設(shè)為1,則如你 安裝了一個(gè)i386的rpm,則yum不會(huì)用686的包來升級。
gpgchkeck= 有1和0兩個(gè)選擇,分別代表是否是否進(jìn)行g(shù)pg校驗(yàn),如果沒有這一項(xiàng),默認(rèn)好像也是檢查 的。
自定義配置軟件倉庫
1.創(chuàng)建一個(gè)目錄將需要的程序包放入目錄中;
2.使用createrepo命令創(chuàng)建倉庫;產(chǎn)生repodata;
3.在/etc/yum.repos.d下創(chuàng)建一個(gè)關(guān)于該軟件倉庫的配置文件,以repo為后綴;
yum命令(該命令的使用要在聯(lián)網(wǎng)的情況下):
yum [options] [command] [package ...]
option:
-q:安靜模式,使yum沒有輸出任何的信息,不顯示安裝過程;
-y:yum命令下的所有交互操作yes or no全部以yes表示;
yum安裝:
yum install:全部安裝
install package1 [package2] [...]:指定程序包安裝
yum卸載:
yum remove|erase package1 [package2] [...]
yum更新:
update [package1] [package2] [...]:對所更新的程序包進(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
顯示所有可以升級更新的程序包:
yum list updates
yum清除緩存:
清理本地緩存信息;
clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
清除緩存目錄下的軟件包
yum clean packages
程序包組的管理命令:
groups [...]
組安裝:
groupinstall group1 [group2] [...]等于groups install
組更新:
groupupdate group1 [group2] [...]等于groups update
顯示當(dāng)前組列表:
grouplist [hidden] [groupwildcard] [...]
卸載安裝的組:
groupremove group1 [group2] [...]
顯示組信息:
groupinfo group1 [...]
根據(jù)關(guān)鍵字進(jìn)行匹配,默認(rèn)情況下,搜索程序包名稱及匯總信息,模糊搜索;
search string1 [string2] [...]
yum重新安裝
reinstall package1 [package2] [...]
顯示每個(gè)程序包所有的依賴關(guān)系
deplist package1 [package2] [...]
以上就是程序包管理器rpm和yum的使用方法介紹,詳細(xì)使用情況還得要大家自己使用過才能知道具體要領(lǐng)。如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
網(wǎng)站欄目:程序包管理器rpm和yum的使用-創(chuàng)新互聯(lián)
文章網(wǎng)址:http://jinyejixie.com/article10/dpeddo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、小程序開發(fā)、虛擬主機(jī)、網(wǎng)站策劃、App開發(fā)、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容