Linux程序包的管理需要依賴程序包管理工具郭膛,程序包管理工具可以實現(xiàn)程序的安裝晨抡、升級、卸載、查詢和校驗耘柱,等等相關(guān)操作如捅。本文主要介紹使用rpm和yum實現(xiàn)程序包的管理。
rpm程序包管理基礎(chǔ)
(1) rpm程序包的命名格式
(2) 如何獲取rpm程序包调煎?
rpm命令
(1) 安裝
(2) 升級
(3) 卸載
(4) 查詢
(5) 校驗
(6) rpm數(shù)據(jù)庫管理
(7) rpm命令的相關(guān)示例
yum命令
(1) yum倉庫
(2) yum的配置文件
(3) 通過yum命令管理程序
(4) yum倉庫配置示例
(5) yum命令的相關(guān)示例
1镜遣、rpm程序包管理基礎(chǔ)
(1) rpm程序包的命名格式
rpm程序包通常分為主程序包和程序包分支,命名格式分別如下:
主程序包命名格式
NAME-VERSION-RELEASE.ARCH.rpm
程序包分支命名格式
NAME-FUNCTION-VERSION-RELEASE.ARCH.rpm
命名中各字段的含義:
NAME:程序包名士袄,與源代碼的名稱一致
VERSION: major.minor.release悲关,版本信息,與源代碼的版本信息一致娄柳,如4.3.2(主版本號.次版本號.發(fā)行號)
RELEASE:rpm程序包自身的發(fā)行號寓辱,與源代碼的發(fā)行號無關(guān),是制作rpm包的不同修訂版本西土,RELEASE還包括此rpm包適用的系統(tǒng)讶舰,如4.3.2-2.centos7
ARCH:支持的cpu架構(gòu),如:i386需了、x86_64
FUNCTION:用于描述程序包分支的功能
這里貼一張圖來加深理解跳昼,出處不詳:
(2) 如何獲取rpm程序包?
系統(tǒng)發(fā)行版的光盤或官方的文件服務(wù)器(或其他鏡像站點)肋乍。
系統(tǒng)自帶的程序包可以光盤或光盤鏡像文件獲取鹅颊。
如:http://mirrors.aliyun.com | http://mirrors.sohu.com | http://mirrors.163.com程序項目的官方站點。
如:http://www.zabbix.comEPEL
EPEL(Extra Packages for Enterprise Linux)是由Fedora Special Interest Group維護(hù)的Enterprise Linux(RHEL墓造、CentOS)中經(jīng)常用到的包堪伍。rpm搜索引擎
如:http://pkgs.org | http://rpmfind.net | http://rpm.pbone.net自己制作rpm包
建議在網(wǎng)上獲取rpm包后,檢查其合法性(來源合法性和程序包完整性)
2觅闽、rpm命令
Linux發(fā)行版如RedHat帝雇、SuSE系列目前都是用rpm來實現(xiàn)程序包管理。
rpm的全稱是Redhat Package Manager蛉拙,由RedHat研發(fā)尸闸,后形成標(biāo)準(zhǔn)后,成為Rpm is Package Manager孕锄,這是rpm的新定義吮廉。
程序包管理器的功能是將編譯好的應(yīng)用程序的各組成文件打包成一個或幾個程序包文件,從而更方面地實現(xiàn)程序包的安裝畸肆、升級宦芦、卸載和查詢等管理操作,它由兩部分組成:
- 程序包的組成清單
這是基于個體的轴脐,每個程序包都有一個自己的清單调卑,其中有程序包中的文件清單抡砂、安裝或卸載時運(yùn)行的腳本,等等令野。 - 程序包管理器的數(shù)據(jù)庫
這是公共的舀患,數(shù)據(jù)庫中記錄各程序包的名稱和版本、依賴關(guān)系气破、程序包的功能說明、安裝生成的各文件路徑及校驗碼信息餐抢,等等现使。
在CentOS中,各數(shù)據(jù)庫文件存放在/var/lib/rpm/下旷痕。
接下來詳細(xì)描述如何通過rpm命令實現(xiàn)rpm程序包的安裝碳锈、升級、卸載欺抗、查詢和校驗售碳,以及rpm數(shù)據(jù)庫維護(hù)。
rpm命令的用法總結(jié)簡化后如下:
rpm [OPTIONS] [GENERAL_OPTIONS] [PACKAGE_FILE | PACKAGE_NAME]
- 通過OPTIONS來指定要進(jìn)行的操作:
安裝:-i绞呈,--install
升級:-u贸人,--update,或-F佃声,--freshen
卸載:-e艺智,--erase
查詢:-q,--query
校驗:-V圾亏,--verify
數(shù)據(jù)庫管理:--builddb十拣,--initdb
- 通過GENERAL_OPTIONS來自定義操作過程
-v: verbose, 詳細(xì)信息
-vv:更詳細(xì)的輸出-_-||
- 通過程序包文件名和程序包名來指定作用對象
PACKAGE_FILE是文件名,需要程序包文件的完整名稱志鹃;
PACKAGE_NAME是程序名夭问,只需指定程序包名中的NAME。
(1) 安裝
- 語法格式
rpm {-i|--install} [install-options] PACKAGE_FILE...
安裝需要指定程序包的文件名曹铃。
安裝rpm包的常用固定格式為:
rpm -ivh PACKAGE_FILE...
表示安裝過程中顯示進(jìn)度條和詳細(xì)信息缰趋。
install-options包括:
- -h:hash marks,輸出進(jìn)度條铛只,用#表示埠胖,每個#表示2%的進(jìn)度;
- --test:測試安裝淳玩,檢查并報告依賴關(guān)系及沖突消息等直撤;
- --nodeps:忽略依賴關(guān)系,不建議蜕着;
- --replacepkgs:重新安裝谋竖,(不會替代配置文件)红柱;
- --noscripts:不執(zhí)行rpm自帶的所有腳本(共四種,可分別單獨禁用)蓖乘;
- --nosignature: 不檢查包簽名信息锤悄,即不檢查來源合法性;
- --nodigest:不檢查包完整性信息嘉抒。
這里強(qiáng)調(diào)一下零聚,rpm的自帶腳本分為四種,分別為:
- %pre:preinstall些侍,安裝過程開始之前運(yùn)行的腳本隶症,單獨禁用使用install options中的--nopre;
- %post:postinstall岗宣,安裝過程完成之后運(yùn)行的腳本蚂会,單獨禁用使用install options中的--nopost;
- %preun:preuninstall耗式,卸載過程真正開始執(zhí)行之前運(yùn)行的腳本胁住,單獨禁用使用install options中的--nopreun;
- %postun:postuninstall刊咳,卸載過程完成之后運(yùn)行的腳本彪见,單獨禁用使用install options中的--nopostun
(2) 升級
- 語法格式
rpm {-U|--upgrade} [install-options] PACKAGE_FILE...
rpm {-F|--freshen} [install-options] PACKAGE_FILE...
這里需要注意一下-U和-F的區(qū)別:
-U表示升級或安裝
指定的程序已安裝時,則執(zhí)行升級芦缰;若未安裝企巢,則安裝。-F表示僅升級让蕾,不安裝
即程序未安裝時浪规,則不進(jìn)行任何操作。
升級需要指定的也是程序包的文件名探孝。
升級rpm包的常用固定格式為:
rpm -Uvh PACKAGE_FILE...
rpm -Fvh PACKAGE_FILE...
在升級過程中顯示進(jìn)度條和詳細(xì)信息笋婿。
rpm安裝的install-options同樣適用于此,下面是兩個額外的選項:
- --oldpackage:降級
- --force:強(qiáng)制升級
關(guān)于程序升級有兩點需要注意:
- 不要對內(nèi)核做升級操作顿颅,Linux支持多內(nèi)核版本并存缸濒,因此直接安裝新版本內(nèi)核即可;
- 升級時粱腻,如果某程序包的配置文件安裝后曾被修改過庇配,新版本的程序提供的同一個配置文件不會覆蓋原有版本的配置文件,而是把新版本的配置文件重命名后提供绍些。
(3) 卸載
- 語法格式
rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--test] PACKAGE_NAME...
卸載需要指定的是程序名捞慌。
常用的選項:
- --allmatches: 卸載所有匹配指定名稱的程序包的各版本;
- --nodeps: 忽略依賴關(guān)系柬批;
- --test:測試卸載啸澡,dry run模式袖订。
(4) 查詢
- 語法格式
rpm {-q|--query} [--select options] [--query options] [PACKAGE_NAME]
select options用于指定要查詢的對象或范圍,包括:
- PACKAGE_NAME: 查詢指定的程序包是否已經(jīng)安裝嗅虏,及其版本
- -a洛姑,--all:查詢所有已安裝的包;可以配合grep查詢記不清包名的程序皮服;
- -f FILE楞艾,--file FILE:查詢指定的文件由哪個程序包安裝生成
- -p,--package:用于實現(xiàn)對未安裝的程序包執(zhí)行查詢操作冰更;
- --whatprovides CAPABILITY:查詢指定的CAPABILITY由哪個程序包提供产徊;
- --whatrequires CAPABILITY:查詢指定的CAPABILITY被哪個包所依賴;
query options用來指定要查詢什么內(nèi)容蜀细,包括:
- -changelog:查詢rpm包的changelog;
- -l戈盈,--list:程序安裝生成的所有文件列表奠衔;
- -i,--info:程序包相關(guān)的信息塘娶,版本號归斤、大小、所屬的包組刁岸,等脏里;
- -c,--configfiles:查詢指定的程序包提供的配置文件虹曙;
- -d迫横,--docfiles:查詢指定的程序包提供的文檔;
- --provides:列出指定的程序包提供的所有CAPABILITY酝碳;
- -R矾踱,--requires:查詢指定程序包的依賴關(guān)系;
- --scripts:查詢指定的程序包自帶的腳本片段疏哗;
rpm查詢的常用固定組合:
查詢已安裝的程序(指定程序名):
- rpm -qf FILE
- rpm -qi PACKAGE_NAME
- rpm -qc PACKAGE_NAME
- rpm -ql PACKAGE_NAME
- rpm -qd PACKAGE_NAME
查詢未安裝的程序(指定程序包的文件名)
- rpm -qpi PACKAGE_FILE
- rpm -qpc PACKAGE_FILE
- rpm -qpl PACKAGE_FILE
- rpm -qpd PACKAGE_FILE
- ...
(5) 校驗
- 語法格式
rpm {-V|--verify} [select-options] [verify-options]
校驗錯誤的結(jié)果顯示包括:
- S file Size differs 文件大小不匹配呛讲;
- M Mode differs (includes permissions and file type) 文件權(quán)限和文件類型不匹配;
- 5 digest (formerly MD5 sum) differs返奉,md5校驗結(jié)果不匹配贝搁;
- D Device major/minor number mismatch 主/次設(shè)備號不匹配;
- L readLink(2) path mismatch
- U User ownership differs芽偏,屬主不匹配雷逆;
- G Group ownership differs,屬組不匹配哮针;
- T mTime differs关面,修改時間不匹配坦袍;
- P caPabilities differ,程序包所提供的功能不匹配等太。
(6) rpm數(shù)據(jù)庫管理
rpm程序包管理器的數(shù)據(jù)庫路徑為:/var/lib/rpm/捂齐,rpm管理操作就是基于此目錄下的數(shù)據(jù)庫文件進(jìn)行的。
- 語法格式
rpm {--initdb|--rebuilddb} [-v] [--dbpath DIRECTORY] [--root DIRECTORY]
選項含義:
- --initdb:初始化數(shù)據(jù)庫-當(dāng)前無任何數(shù)據(jù)庫時缩抡,可初始化創(chuàng)建一個新的奠宜;當(dāng)時有數(shù)據(jù)庫,則不執(zhí)行任何操作瞻想;
- --rebuild:重新構(gòu)建压真,通過讀取系統(tǒng)上所有已經(jīng)安裝過的程序包進(jìn)行重新創(chuàng)建。
(7) rpm命令的相關(guān)示例
rpm安裝示例:
安裝光盤上的gnome-desktop3
[root@localhost Packages]# rpm -ivh /mnt/cdrom/Packages/gnome-desktop3-3.14.2-2.el7.x86_64.rpm
warning: /mnt/cdrom/Packages/gnome-desktop3-3.14.2-2.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
error: Failed dependencies:
gnome-themes-standard is needed by gnome-desktop3-3.14.2-2.el7.x86_64
提示依賴的程序包沒有安裝蘑险,忽略依賴關(guān)系直接安裝:
[root@localhost Packages]# rpm -ivh --nodeps /mnt/cdrom/Packages/gnome-desktop3-3.14.2-2.el7.x86_64.rpm
warning: /mnt/cdrom/Packages/gnome-desktop3-3.14.2-2.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:gnome-desktop3-3.14.2-2.el7 ################################# [100%]
安裝完成滴肿。使用rpm直接安裝需要手動解決很多依賴關(guān)系,有時會繞的找不到北佃迄,后面用yum安裝會方便快捷很多泼差。
也可以一次安裝多個rpm包,后面的程序包文件名用“,”逗號隔開呵俏。-
rpm查詢示例:
查看系統(tǒng)上是否安裝了unzip程序
[root@localhost Packages]# rpm -q unzip \\這里只需給出程序名即可
unzip-6.0-15.el7.x86_64
列出unzip程序所提供的目錄和文件:
[root@localhost Packages]# rpm -ql unzip
/usr/bin/funzip
/usr/bin/unzip
/usr/bin/unzipsfx
/usr/bin/zipgrep
/usr/bin/zipinfo
/usr/share/doc/unzip-6.0
/usr/share/doc/unzip-6.0/BUGS
/usr/share/doc/unzip-6.0/LICENSE
/usr/share/doc/unzip-6.0/README
/usr/share/man/man1/funzip.1.gz
/usr/share/man/man1/unzip.1.gz
/usr/share/man/man1/unzipsfx.1.gz
/usr/share/man/man1/zipgrep.1.gz
/usr/share/man/man1/zipinfo.1.gz
可以看到安裝unzip后都在系統(tǒng)上創(chuàng)建了哪些目錄和文件堆缘。
查看unzip程序的詳細(xì)說明:
[root@localhost Packages]# rpm -qi unzip
Name : unzip \\程序名
Version : 6.0 \\程序版本
Release : 15.el7 \\程序發(fā)行號
Architecture: x86_64 \\支持的硬件平臺
Install Date: Tue 13 Feb 2018 05:06:57 PM CST \\安裝時間
Group : Applications/Archiving \\所屬的包組
Size : 365506 \\程序大小
License : BSD \\授權(quán)方式
Signature : RSA/SHA256, Thu 19 Mar 2015 04:52:16 AM CST, Key ID 24c6a8a7f4a80eb5
Source RPM : unzip-6.0-15.el7.src.rpm \\程序包的文件名
Build Date : Thu 19 Mar 2015 04:25:08 AM CST \\打包的時間
Build Host : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem <http://bugs.centos.org>
Vendor : CentOS
URL : http://www.info-zip.org/UnZip.html
Summary : A utility for unpacking zip files
Description : \\以下是更詳細(xì)的程序描述
The unzip utility is used to list, test, or extract files from a zip archive. Zip archives are commonly found on MS-DOS systems. The zip utility, included in the zip package, creates zip archives. Zip and unzip are both compatible with archives created by PKWARE(R)'s PKZIP for MS-DOS, but the programs' options and default behaviors do differ in some respects.
Install the unzip package if you need to list, test or extract files from a zip archive.
找出unzip程序的說明文檔和手冊:
[root@localhost Packages]# rpm -qd unzip
/usr/share/doc/unzip-6.0/BUGS
/usr/share/doc/unzip-6.0/LICENSE
/usr/share/doc/unzip-6.0/README
/usr/share/man/man1/funzip.1.gz
/usr/share/man/man1/unzip.1.gz
/usr/share/man/man1/unzipsfx.1.gz
/usr/share/man/man1/zipgrep.1.gz
/usr/share/man/man1/zipinfo.1.gz
可以看到在/usr/share/man/man1/目錄下有一些關(guān)于unzip的man手冊,使用man 1 unzip可以查看這些手冊中的相關(guān)說明普碎。
還可以查詢已安裝程序包的依賴關(guān)系吼肥,比如查詢之前安裝的gnome-desktop3的依賴關(guān)系:
[root@localhost Packages]# rpm -qR gnome-desktop3
/sbin/ldconfig
/sbin/ldconfig
gnome-themes-standard
gsettings-desktop-schemas >= 3.5.91
libX11.so.6()(64bit)
libXext.so.6()(64bit)
libXrandr.so.2()(64bit)
以下省略...
可以看到gnome桌面依賴很多東西,所以手動使用rpm解決依賴關(guān)系非常費(fèi)力麻车。
查詢是/bin/bash由哪個程序所提供:
[root@localhost Packages]# rpm -qf /bin/bash
bash-4.2.46-19.el7.x86_64
如果誤刪了某個文件缀皱,又不知道這個文件由哪個程序所提供,還是可以使用-qf選項來查詢的绪氛,因為相關(guān)信息都存在rpm數(shù)據(jù)庫中唆鸡。
獲取一個rpm包,在安裝前枣察,查詢它的依賴關(guān)系争占,可以加上-p選項,比如查詢tree工具的依賴關(guān)系:
[root@localhost Packages]# rpm -qpR 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
libc.so.6()(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)
rpmlib(PayloadIsXz) <= 5.2-1
注意這里需要給出程序包的文件路徑序目。
查詢系統(tǒng)上以c開頭的程序有幾個:
[root@localhost ~]# rpm -qa | grep ^c | wc -l
48
3臂痕、yum命令
百科中的定義:
Yum(全稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及CentOS中的Shell前端軟件包管理器≡痴牵基于RPM包管理握童,能夠從指定的服務(wù)器自動下載RPM包并且安裝,可以自動處理依賴性關(guān)系叛赚,并且一次安裝所有依賴的軟件包澡绩,無須繁瑣地一次次下載稽揭、安裝。
可以將Yum當(dāng)作一個C/S架構(gòu)的服務(wù)肥卡,客戶端是yum命令溪掀,服務(wù)器端就是yum的倉庫指向。所以要使用yum步鉴,首先得有yum倉庫揪胃,并且在本地的yum配置文件中指明倉庫的位置。
(1) yum倉庫
yum倉庫(yum repository氛琢,又稱yum repo)喊递,其中存儲了:
- 眾多rpm程序包;
所以yum倉庫首先是一個文件服務(wù)器阳似。 - 程序包的相關(guān)元數(shù)據(jù)文件骚勘。
元數(shù)據(jù)文件存放在repodata這個特定的目錄下,而yum配置文件中倉庫的位置就是指定repodata目錄所在的位置撮奏。
可以自己創(chuàng)建yum倉庫调鲸,創(chuàng)建命令:
createrepo [options] <directory>
(2) yum的配置文件
yum的配置文件主要有兩類:
- /etc/yum.conf
這是yum命令的配置文件,為所有yum倉庫提供公共配置挽荡。
# man 5 yum.conf \\查看yum.conf配置文件的詳細(xì)說明
- /etc/yum.repos.d/*.repo
/etc/yum.repos.d/目錄下所有以.repo結(jié)尾的文件,用于指定yum倉庫指向的配置文件即供,每個文件中可以指定多個yum倉庫定拟。
*.repo配置文件中,倉庫指向的定義:
- [repositoryID]
yum倉庫的標(biāo)識- name=Name for this repository
yum倉庫的名字- baseurl=url://path/to/repository/ (等號左右沒有空格)
yum倉庫的url逗嫡,即repodata目錄所在的位置
在指定url時青自,某個站點會包含多個適用于不同系統(tǒng)的yum倉庫,它們的路徑會按系統(tǒng)版本和支持的平臺等來命名驱证,如果通過手動指定會因系統(tǒng)的不同而比較繁瑣延窜,且容易出錯,所以yum的repo配置文件中定義了一些可用的變量:
- $releasever:當(dāng)前OS的發(fā)行版的主版本號抹锄;
- $arch:平臺
- $basearch:基礎(chǔ)平臺
- YUM0-YUM9:自定義
這些變量會獲取系統(tǒng)版本和平臺逆瑞,自動補(bǔ)全到url路徑中去。
- enabled={1|0}
是否啟動(未指定的話伙单,默認(rèn)啟動)- gpgcheck={1|0}
是否檢查來源合法性和完整性- repo_gpgcheck={1|0}
是否檢查repo元數(shù)據(jù)- gpgkey=URL
指明密鑰文件- enablegroups={1|0}
是否支持在此倉庫上執(zhí)行組获高,來批量管理程序包- failovermethod={roundrobin|priority}
baseurl指向多個時,如何挑選(默認(rèn)為roundrobin吻育,隨機(jī)挑選)念秧;- cost=1000
默認(rèn)都為1000
(3) 通過yum命令管理程序
語法格式
yum [options] [command] [package ...]
常用的command
- repolist - 顯示倉庫列表
yum repolist [all|enabled|disabled]
可以顯示全部、已啟用和未啟用的(默認(rèn)顯示已啟用的)
- list - 顯示程序包
yum list [all | glob_exp1] [glob_exp2] [...]
yum list {available|installed|updates} [glob_exp1] [...]
可以根據(jù)通配符進(jìn)行匹配顯示布疼。
- install - 安裝程序包
yum install package1 [package2] [...]
默認(rèn)安裝最新版本
yum reinstall package1 [package2] [...]
重新安裝
- update - 升級程序包(如果不指定程序包摊趾,會升級所有已安裝的程序)
yum update [package1] [package2] [...]
- downgrade - 降級程序包
yum downgrade [package1] [package2] [...]
- check-update - 檢查可用升級
- remove | erase - 卸載程序包
yum remove | erase package1 [package2] [...]
- info - 查看程序包信息
- provides | whatprovides - 查看指定的特性(或文件)是由哪個程序包所提供:
yum provides | whatprovides feature1 [feature2] [...]
- clean - 清理本地緩存
yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all]
- makecache - 構(gòu)建緩存
yum makecache [fast]
- search - 以指定的關(guān)鍵字搜索程序包名及summary信息
yum search string1 [string2] [...]
- deplist - 查看指定包所依賴的capabilities
yum deplist package1 [package2] [...]
- history - 查看yum事務(wù)歷史
yum history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
- 包組管理的相關(guān)命令
yum grouplist [hidden] [groupwildcard] [...]
yum groupinstall group1 [group2] [...]
yum groupupdate group1 [group2] [...]
yum groupremove group1 [group2] [...]
yum groupinfo group1 [...]
常用的options
- --nogpgcheck:禁止進(jìn)行g(shù)pg check(即使配置文件中指定gpgcheck=1揪阿,也可以禁止)域那;
- -y:自動回答為“yes”;
- -q:--quiet:靜默模式;
- --enablerepo=repoidglob:臨時啟用此處指定的repo剖膳;
- --disablerepo=repoidglob:臨時禁用此處指定的repo;
- --noplugins:禁用所有插件莺奸;
(4) yum倉庫配置示例
-
如何使用光盤或鏡像文件當(dāng)作本地yum倉庫
- 首先掛載光盤或鏡像文件至某目錄
[root@localhost ~]# mount -rt iso9660 /dev/cdrom /mnt/cdrom/
- 在/etc/yum.repos.d/下創(chuàng)建.repo結(jié)尾的配置文件弛针,并按格式配置
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# vim Local.repo
[local]
name=CentOS7 local reposity
baseurl=file:///mnt/cdrom/
enable=1
gpgcheck=0
- 首先掛載光盤或鏡像文件至某目錄
-
配置網(wǎng)絡(luò)上的yum倉庫為yum源
以配置mirrors.aliyun.com為例:
[root@localhost ~]# cd /etc/yum.repos.d/
根據(jù)系統(tǒng)版本下載repo文件
[root@localhost yum.repos.d]# wget http://mirrors.aliyun.com/repo/Centos-7.repo
--2018-05-21 14:07:53-- http://mirrors.aliyun.com/repo/Centos-7.repo
Resolving mirrors.aliyun.com (mirrors.aliyun.com)... 124.238.245.105, 124.238.245.101, 124.238.245.104, ...
Connecting to mirrors.aliyun.com (mirrors.aliyun.com)|124.238.245.105|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2573 (2.5K) [application/octet-stream]
Saving to: ‘Centos-7.repo’
100%[============================================================================================>] 2,573 --.-K/s in 0s
2018-05-21 14:07:53 (79.0 MB/s) - ‘Centos-7.repo’ saved [2573/2573]
查看yum倉庫,aliyun的yum倉庫已添加成功
[root@localhost yum.repos.d]# yum repolist
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
repo id repo name status
base/7/x86_64 CentOS-7 - Base - mirrors.aliyun.com 9,911
extras/7/x86_64 CentOS-7 - Extras - mirrors.aliyun.com 291
updates/7/x86_64 CentOS-7 - Updates - mirrors.aliyun.com 539
repolist: 10,741
(5) yum命令的相關(guān)示例
- 搜索mysql相關(guān)程序包:
[root@localhost yum.repos.d]# yum search mysql
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
========================================================= N/S matched: mysql ``=========================================================
MySQL-python.x86_64 : An interface to MySQL
akonadi-mysql.x86_64 : Akonadi MySQL backend support
apr-util-mysql.x86_64 : APR utility library MySQL DBD driver
以下省略
- 查看mdadm程序的相關(guān)信息:
[root@localhost yum.repos.d]# yum info mdadm
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
Installed Packages
Name : mdadm
Arch : x86_64
Version : 3.3.2
Release : 7.el7
Size : 928 k
Repo : installed
以下省略
- 列出yum倉庫中可提供升級的本機(jī)程序:
[root@localhost ~]# yum list updates | less
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
Updated Packages
ImageMagick.x86_64 6.7.8.9-15.el7_2 base
ImageMagick-perl.x86_64 6.7.8.9-15.el7_2 base
MySQL-python.x86_64 1.2.5-1.el7 base
以下省略
- 列出哪個程序提供了/bin/zsh這個文件
[root@localhost bin]# yum provides /bin/zsh
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
zsh-5.0.2-14.el7.x86_64 : Powerful interactive shell \\程序包名和程序簡介
Repo : local \\在哪個yum倉庫
Matched from:
Filename : /bin/zsh
以下省略
yum下載rpm包
只下載不安裝
yum命令本身就可以用來下載一個RPM包铸董,標(biāo)準(zhǔn)的yum命令提供了--downloadonly(只下載)
的選項來達(dá)到這個目的祟印。
$ sudo yum install --downloadonly <package-name>
默認(rèn)情況下,一個下載的RPM包會保存在下面的目錄中:
/var/cache/yum/x86_64/[centos/fedora-version]/[repository]/packages
以上的[repository]表示下載包的來源倉庫的名稱(例如:base粟害、fedora蕴忆、updates)
如果你想要將一個包下載到一個指定的目錄(如/tmp):
$ sudo yum install --downloadonly --downloaddir=/tmp <package-name>
注意,如果下載的包包含了任何沒有滿足的依賴關(guān)系悲幅,yum將會把所有的依賴關(guān)系包下載套鹅,但是都不會被安裝。
另外一個重要的事情是汰具,在CentOS/RHEL 6或更早期的版本中卓鹿,你需要安裝一個單獨yum插件(名稱為 yum-plugin-downloadonly)才能使用--downloadonly
命令選項:
$ sudo yum install yum-plugin-downloadonly
如果沒有該插件,你會在使用yum時得到以下錯誤:
Command line error:no such option:--downloadonly