Linux程序包管理(rpm和yum工具)

Linux程序包的管理需要依賴程序包管理工具,程序包管理工具可以實(shí)現(xiàn)程序的安裝界斜、升級(jí)、卸載合冀、查詢和校驗(yàn)各薇,等等相關(guān)操作。本文主要介紹使用rpm和yum實(shí)現(xiàn)程序包的管理君躺。

  1. rpm程序包管理基礎(chǔ)
    (1) rpm程序包的命名格式
    (2) 如何獲取rpm程序包得糜?
  2. rpm命令
    (1) 安裝
    (2) 升級(jí)
    (3) 卸載
    (4) 查詢
    (5) 校驗(yàn)
    (6) rpm數(shù)據(jù)庫管理
    (7) rpm命令的相關(guān)示例
  3. 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(主版本號(hào).次版本號(hào).發(fā)行號(hào))
RELEASE:rpm程序包自身的發(fā)行號(hào)急侥,與源代碼的發(fā)行號(hào)無關(guān)砌滞,是制作rpm包的不同修訂版本,RELEASE還包括此rpm包適用的系統(tǒng)坏怪,如4.3.2-2.centos7
ARCH:支持的cpu架構(gòu)贝润,如:i386、x86_64
FUNCTION:用于描述程序包分支的功能

這里貼一張圖來加深理解铝宵,出處不詳:

image.png

(2) 如何獲取rpm程序包打掘?

  1. 系統(tǒng)發(fā)行版的光盤或官方的文件服務(wù)器(或其他鏡像站點(diǎn))华畏。
    系統(tǒng)自帶的程序包可以光盤或光盤鏡像文件獲取。
    如:http://mirrors.aliyun.com | http://mirrors.sohu.com | http://mirrors.163.com

  2. 程序項(xiàng)目的官方站點(diǎn)尊蚁。
    如:http://www.zabbix.com

  3. EPEL
    EPEL(Extra Packages for Enterprise Linux)是由Fedora Special Interest Group維護(hù)的Enterprise Linux(RHEL亡笑、CentOS)中經(jīng)常用到的包。

  4. rpm搜索引擎
    如:http://pkgs.org | http://rpmfind.net | http://rpm.pbone.net

  5. 自己制作rpm包

建議在網(wǎng)上獲取rpm包后横朋,檢查其合法性(來源合法性和程序包完整性)

2仑乌、rpm命令

Linux發(fā)行版如RedHat、SuSE系列目前都是用rpm來實(shí)現(xiàn)程序包管理琴锭。
rpm的全稱是Redhat Package Manager晰甚,由RedHat研發(fā),后形成標(biāo)準(zhǔn)后决帖,成為Rpm is Package Manager厕九,這是rpm的新定義。

程序包管理器的功能是將編譯好的應(yīng)用程序的各組成文件打包成一個(gè)或幾個(gè)程序包文件古瓤,從而更方面地實(shí)現(xiàn)程序包的安裝止剖、升級(jí)、卸載和查詢等管理操作落君,它由兩部分組成:

  1. 程序包的組成清單
    這是基于個(gè)體的穿香,每個(gè)程序包都有一個(gè)自己的清單,其中有程序包中的文件清單绎速、安裝或卸載時(shí)運(yùn)行的腳本皮获,等等。
  2. 程序包管理器的數(shù)據(jù)庫
    這是公共的纹冤,數(shù)據(jù)庫中記錄各程序包的名稱和版本洒宝、依賴關(guān)系、程序包的功能說明萌京、安裝生成的各文件路徑及校驗(yàn)碼信息雁歌,等等。
    在CentOS中知残,各數(shù)據(jù)庫文件存放在/var/lib/rpm/下靠瞎。

接下來詳細(xì)描述如何通過rpm命令實(shí)現(xiàn)rpm程序包的安裝、升級(jí)求妹、卸載乏盐、查詢和校驗(yàn),以及rpm數(shù)據(jù)庫維護(hù)制恍。

rpm命令的用法總結(jié)簡化后如下:

rpm [OPTIONS] [GENERAL_OPTIONS] [PACKAGE_FILE | PACKAGE_NAME]

  • 通過OPTIONS來指定要進(jìn)行的操作:

安裝:-i父能,--install
升級(jí):-u,--update净神,或-F何吝,--freshen
卸載:-e溉委,--erase
查詢:-q,--query
校驗(yàn):-V岔霸,--verify
數(shù)據(jù)庫管理:--builddb薛躬,--initdb

  • 通過GENERAL_OPTIONS來自定義操作過程

-v: verbose, 詳細(xì)信息
-vv:更詳細(xì)的輸出-_-||

  • 通過程序包文件名和程序包名來指定作用對(duì)象
    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)度條坑夯,用#表示岖寞,每個(gè)#表示2%的進(jìn)度;
  • --test:測試安裝柜蜈,檢查并報(bào)告依賴關(guān)系及沖突消息等仗谆;
  • --nodeps:忽略依賴關(guān)系,不建議淑履;
  • --replacepkgs:重新安裝隶垮,(不會(huì)替代配置文件);
  • --noscripts:不執(zhí)行rpm自帶的所有腳本(共四種秘噪,可分別單獨(dú)禁用)狸吞;
  • --nosignature: 不檢查包簽名信息,即不檢查來源合法性指煎;
  • --nodigest:不檢查包完整性信息蹋偏。

這里強(qiáng)調(diào)一下,rpm的自帶腳本分為四種至壤,分別為:

  • %pre:preinstall威始,安裝過程開始之前運(yùn)行的腳本,單獨(dú)禁用使用install options中的--nopre像街;
  • %post:postinstall字逗,安裝過程完成之后運(yùn)行的腳本,單獨(dú)禁用使用install options中的--nopost宅广;
  • %preun:preuninstall,卸載過程真正開始執(zhí)行之前運(yùn)行的腳本些举,單獨(dú)禁用使用install options中的--nopreun跟狱;
  • %postun:postuninstall,卸載過程完成之后運(yùn)行的腳本户魏,單獨(dú)禁用使用install options中的--nopostun

(2) 升級(jí)

  • 語法格式
    rpm {-U|--upgrade} [install-options] PACKAGE_FILE...
    rpm {-F|--freshen} [install-options] PACKAGE_FILE...

這里需要注意一下-U和-F的區(qū)別:

-U表示升級(jí)或安裝
指定的程序已安裝時(shí)驶臊,則執(zhí)行升級(jí)挪挤;若未安裝,則安裝关翎。

-F表示僅升級(jí)扛门,不安裝
即程序未安裝時(shí),則不進(jìn)行任何操作纵寝。

升級(jí)需要指定的也是程序包的文件名论寨。

升級(jí)rpm包的常用固定格式為:

rpm -Uvh PACKAGE_FILE...
rpm -Fvh PACKAGE_FILE...
在升級(jí)過程中顯示進(jìn)度條和詳細(xì)信息。

rpm安裝的install-options同樣適用于此爽茴,下面是兩個(gè)額外的選項(xiàng):

  • --oldpackage:降級(jí)
  • --force:強(qiáng)制升級(jí)

關(guān)于程序升級(jí)有兩點(diǎn)需要注意:

  • 不要對(duì)內(nèi)核做升級(jí)操作葬凳,Linux支持多內(nèi)核版本并存,因此直接安裝新版本內(nèi)核即可室奏;
  • 升級(jí)時(shí)火焰,如果某程序包的配置文件安裝后曾被修改過,新版本的程序提供的同一個(gè)配置文件不會(huì)覆蓋原有版本的配置文件胧沫,而是把新版本的配置文件重命名后提供昌简。

(3) 卸載

  • 語法格式
    rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--test] PACKAGE_NAME...

卸載需要指定的是程序名。

常用的選項(xiàng):

  • --allmatches: 卸載所有匹配指定名稱的程序包的各版本绒怨;
  • --nodeps: 忽略依賴關(guān)系纯赎;
  • --test:測試卸載,dry run模式窖逗。

(4) 查詢

  • 語法格式
    rpm {-q|--query} [--select options] [--query options] [PACKAGE_NAME]

select options用于指定要查詢的對(duì)象或范圍址否,包括:

  • PACKAGE_NAME: 查詢指定的程序包是否已經(jīng)安裝,及其版本
  • -a碎紊,--all:查詢所有已安裝的包佑附;可以配合grep查詢記不清包名的程序;
  • -f FILE仗考,--file FILE:查詢指定的文件由哪個(gè)程序包安裝生成
  • -p音同,--package:用于實(shí)現(xiàn)對(duì)未安裝的程序包執(zhí)行查詢操作;
  • --whatprovides CAPABILITY:查詢指定的CAPABILITY由哪個(gè)程序包提供秃嗜;
  • --whatrequires CAPABILITY:查詢指定的CAPABILITY被哪個(gè)包所依賴权均;

query options用來指定要查詢什么內(nèi)容,包括:

  • -changelog:查詢r(jià)pm包的changelog锅锨;
  • -l叽赊,--list:程序安裝生成的所有文件列表;
  • -i必搞,--info:程序包相關(guān)的信息必指,版本號(hào)、大小恕洲、所屬的包組塔橡,等梅割;
  • -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) 校驗(yàn)

  • 語法格式
    rpm {-V|--verify} [select-options] [verify-options]

校驗(yàn)錯(cuò)誤的結(jié)果顯示包括:

  • S file Size differs 文件大小不匹配书蚪;
  • M Mode differs (includes permissions and file type) 文件權(quán)限和文件類型不匹配;
  • 5 digest (formerly MD5 sum) differs迅栅,md5校驗(yàn)結(jié)果不匹配殊校;
  • D Device major/minor number mismatch 主/次設(shè)備號(hào)不匹配;
  • L readLink(2) path mismatch
  • U User ownership differs读存,屬主不匹配为流;
  • G Group ownership differs,屬組不匹配让簿;
  • T mTime differs敬察,修改時(shí)間不匹配;
  • 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]

選項(xiàng)含義:

  • --initdb:初始化數(shù)據(jù)庫-當(dāng)前無任何數(shù)據(jù)庫時(shí)锐帜,可初始化創(chuàng)建一個(gè)新的;當(dāng)時(shí)有數(shù)據(jù)庫畜号,則不執(zhí)行任何操作缴阎;
  • --rebuild:重新構(gòu)建,通過讀取系統(tǒng)上所有已經(jīng)安裝過的程序包進(jìn)行重新創(chuàng)建简软。

(7) rpm命令的相關(guān)示例

  1. 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直接安裝需要手動(dòng)解決很多依賴關(guān)系痹升,有時(shí)會(huì)繞的找不到北建炫,后面用yum安裝會(huì)方便快捷很多。
    也可以一次安裝多個(gè)rpm包疼蛾,后面的程序包文件名用“,”逗號(hào)隔開踱卵。
  2. 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ā)行號(hào)
    Architecture: x86_64 \\支持的硬件平臺(tái)
    Install Date: Tue 13 Feb 2018 05:06:57 PM CST \\安裝時(shí)間
    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 \\打包的時(shí)間
    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程序的說明文檔和手冊(cè):
    [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手冊(cè),使用man 1 unzip可以查看這些手冊(cè)中的相關(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桌面依賴很多東西绳锅,所以手動(dòng)使用rpm解決依賴關(guān)系非常費(fèi)力西饵。
    查詢是/bin/bash由哪個(gè)程序所提供:
    [root@localhost Packages]# rpm -qf /bin/bash
    bash-4.2.46-19.el7.x86_64
    如果誤刪了某個(gè)文件,又不知道這個(gè)文件由哪個(gè)程序所提供鳞芙,還是可以使用-qf選項(xiàng)來查詢的眷柔,因?yàn)橄嚓P(guān)信息都存在rpm數(shù)據(jù)庫中。
    獲取一個(gè)rpm包原朝,在安裝前驯嘱,查詢它的依賴關(guān)系,可以加上-p選項(xiàng)喳坠,比如查詢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開頭的程序有幾個(gè):
    [root@localhost ~]# rpm -qa | grep ^c | wc -l
    48

3、yum命令

百科中的定義:
Yum(全稱為 Yellow dog Updater, Modified)是一個(gè)在Fedora和RedHat以及CentOS中的Shell前端軟件包管理器壕鹉√昊希基于RPM包管理,能夠從指定的服務(wù)器自動(dòng)下載RPM包并且安裝晾浴,可以自動(dòng)處理依賴性關(guān)系负乡,并且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載脊凰、安裝抖棘。

可以將Yum當(dāng)作一個(gè)C/S架構(gòu)的服務(wù),客戶端是yum命令狸涌,服務(wù)器端就是yum的倉庫指向切省。所以要使用yum,首先得有yum倉庫杈抢,并且在本地的yum配置文件中指明倉庫的位置数尿。

(1) yum倉庫

yum倉庫(yum repository,又稱yum repo)惶楼,其中存儲(chǔ)了:

  1. 眾多rpm程序包右蹦;
    所以yum倉庫首先是一個(gè)文件服務(wù)器。
  2. 程序包的相關(guān)元數(shù)據(jù)文件歼捐。
    元數(shù)據(jù)文件存放在repodata這個(gè)特定的目錄下何陆,而yum配置文件中倉庫的位置就是指定repodata目錄所在的位置。

可以自己創(chuàng)建yum倉庫豹储,創(chuàng)建命令:
createrepo [options] <directory>

(2) yum的配置文件

yum的配置文件主要有兩類:

  1. /etc/yum.conf
    這是yum命令的配置文件贷盲,為所有yum倉庫提供公共配置。
    # man 5 yum.conf \\查看yum.conf配置文件的詳細(xì)說明
  2. /etc/yum.repos.d/*.repo
    /etc/yum.repos.d/目錄下所有以.repo結(jié)尾的文件,用于指定yum倉庫指向的配置文件巩剖,每個(gè)文件中可以指定多個(gè)yum倉庫铝穷。

*.repo配置文件中,倉庫指向的定義:

  • [repositoryID]
    yum倉庫的標(biāo)識(shí)
  • name=Name for this repository
    yum倉庫的名字
  • baseurl=url://path/to/repository/ (等號(hào)左右沒有空格)
    yum倉庫的url佳魔,即repodata目錄所在的位置
    在指定url時(shí)曙聂,某個(gè)站點(diǎn)會(huì)包含多個(gè)適用于不同系統(tǒng)的yum倉庫,它們的路徑會(huì)按系統(tǒng)版本和支持的平臺(tái)等來命名鞠鲜,如果通過手動(dòng)指定會(huì)因系統(tǒng)的不同而比較繁瑣宁脊,且容易出錯(cuò),所以yum的repo配置文件中定義了一些可用的變量:
  1. $releasever:當(dāng)前OS的發(fā)行版的主版本號(hào)贤姆;
  2. $arch:平臺(tái)
  3. $basearch:基礎(chǔ)平臺(tái)
  4. $YUM0-$YUM9:自定義

這些變量會(huì)獲取系統(tǒng)版本和平臺(tái)榆苞,自動(dòng)補(bǔ)全到url路徑中去。

  • enabled={1|0}
    是否啟動(dòng)(未指定的話霞捡,默認(rèn)啟動(dòng))
  • gpgcheck={1|0}
    是否檢查來源合法性和完整性
  • repo_gpgcheck={1|0}
    是否檢查repo元數(shù)據(jù)
  • gpgkey=URL
    指明密鑰文件
  • enablegroups={1|0}
    是否支持在此倉庫上執(zhí)行組坐漏,來批量管理程序包
  • failovermethod={roundrobin|priority}
    baseurl指向多個(gè)時(shí),如何挑選(默認(rèn)為roundrobin弄砍,隨機(jī)挑選)仙畦;
  • cost=1000
    默認(rèn)都為1000

(3) 通過yum命令管理程序

語法格式

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

常用的command
  1. repolist - 顯示倉庫列表
    yum repolist [all|enabled|disabled]
    可以顯示全部、已啟用和未啟用的(默認(rèn)顯示已啟用的)
  2. list - 顯示程序包
    yum list [all | glob_exp1] [glob_exp2] [...]
    yum list {available|installed|updates} [glob_exp1] [...]
    可以根據(jù)通配符進(jìn)行匹配顯示音婶。
  3. install - 安裝程序包
    yum install package1 [package2] [...]
    默認(rèn)安裝最新版本
    yum reinstall package1 [package2] [...]
    重新安裝
  4. update - 升級(jí)程序包(如果不指定程序包慨畸,會(huì)升級(jí)所有已安裝的程序)
    yum update [package1] [package2] [...]
  5. downgrade - 降級(jí)程序包
    yum downgrade [package1] [package2] [...]
  6. check-update - 檢查可用升級(jí)
  7. remove | erase - 卸載程序包
    yum remove | erase package1 [package2] [...]
  8. info - 查看程序包信息
  9. provides | whatprovides - 查看指定的特性(或文件)是由哪個(gè)程序包所提供:
    yum provides | whatprovides feature1 [feature2] [...]
  10. clean - 清理本地緩存
    yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all]
  11. makecache - 構(gòu)建緩存
    yum makecache [fast]
  12. search - 以指定的關(guān)鍵字搜索程序包名及summary信息
    yum search string1 [string2] [...]
  13. deplist - 查看指定包所依賴的capabilities
    yum deplist package1 [package2] [...]
  14. history - 查看yum事務(wù)歷史
    yum history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
  15. 包組管理的相關(guān)命令
    yum grouplist [hidden] [groupwildcard] [...]
    yum groupinstall group1 [group2] [...]
    yum groupupdate group1 [group2] [...]
    yum groupremove group1 [group2] [...]
    yum groupinfo group1 [...]
常用的options
  1. --nogpgcheck:禁止進(jìn)行g(shù)pg check(即使配置文件中指定gpgcheck=1,也可以禁止)衣式;
  2. -y:自動(dòng)回答為“yes”寸士;
  3. -q:--quiet:靜默模式;
  4. --enablerepo=repoidglob:臨時(shí)啟用此處指定的repo碴卧;
  5. --disablerepo=repoidglob:臨時(shí)禁用此處指定的repo弱卡;
  6. --noplugins:禁用所有插件;

(4) yum倉庫配置示例

  • 如何使用光盤或鏡像文件當(dāng)作本地yum倉庫

    1. 首先掛載光盤或鏡像文件至某目錄
      [root@localhost ~]# mount -rt iso9660 /dev/cdrom /mnt/cdrom/
    2. 在/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)示例

  1. 搜索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
    以下省略
  2. 查看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
    以下省略
  3. 列出yum倉庫中可提供升級(jí)的本機(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
    以下省略
  4. 列出哪個(gè)程序提供了/bin/zsh這個(gè)文件
    [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 \\在哪個(gè)yum倉庫
    Matched from:
    Filename : /bin/zsh
    以下省略
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市荧飞,隨后出現(xiàn)的幾起案子凡人,更是在濱河造成了極大的恐慌,老刑警劉巖叹阔,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挠轴,死亡現(xiàn)場離奇詭異,居然都是意外死亡耳幢,警方通過查閱死者的電腦和手機(jī)岸晦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人启上,你說我怎么就攤上這事邢隧。” “怎么了冈在?”我有些...
    開封第一講書人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵府框,是天一觀的道長。 經(jīng)常有香客問我讥邻,道長,這世上最難降的妖魔是什么院峡? 我笑而不...
    開封第一講書人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任兴使,我火速辦了婚禮,結(jié)果婚禮上照激,老公的妹妹穿的比我還像新娘发魄。我一直安慰自己,他們只是感情好俩垃,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開白布励幼。 她就那樣靜靜地躺著,像睡著了一般口柳。 火紅的嫁衣襯著肌膚如雪苹粟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,262評(píng)論 1 308
  • 那天跃闹,我揣著相機(jī)與錄音嵌削,去河邊找鬼。 笑死望艺,一個(gè)胖子當(dāng)著我的面吹牛苛秕,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播找默,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼艇劫,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了惩激?” 一聲冷哼從身側(cè)響起店煞,我...
    開封第一講書人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎咧欣,沒想到半個(gè)月后浅缸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡魄咕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年衩椒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恳啥。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡纹腌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出猴誊,到底是詐尸還是另有隱情阁将,我是刑警寧澤膏秫,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站做盅,受9級(jí)特大地震影響缤削,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜吹榴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一亭敢、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧图筹,春花似錦帅刀、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至瓜晤,卻和暖如春锥余,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背活鹰。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來泰國打工哈恰, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人志群。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓着绷,卻偏偏與公主長得像,于是被迫代替她去往敵國和親锌云。 傳聞我的和親對(duì)象是個(gè)殘疾皇子荠医,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • Linux 程序包管理 linux系統(tǒng)中的諸多程序都是由源代碼編譯或者由二次發(fā)行商選擇性編譯分布,其大部分的程序安...
    魏鎮(zhèn)坪閱讀 5,812評(píng)論 1 8
  • Linux 程序包管理 linux系統(tǒng)中的諸多程序都是由源代碼編譯或者由二次發(fā)行商選擇性編譯分布桑涎,其大部分的程序安...
    星空下奔跑閱讀 787評(píng)論 0 0
  • 各大Linux發(fā)行版軟件包管理參考(http://www.freeoa.net/osuport/botinstal...
    IRONYT閱讀 7,296評(píng)論 0 12
  • 時(shí)間總是猝不及防的給我們些驚喜彬向,有些驚喜真的承受不來。攻冷。娃胆。 我從來不知道愛一個(gè)人是這種感覺,我可以為了他在角落里等曼,...
    夔越閱讀 256評(píng)論 0 1
  • 我也曾想過若生在古時(shí) 我將會(huì)是一個(gè)怎樣的角色 可能會(huì)是在陽光收割的春天 采摘油菜花的女子 在悠長歲月里念著年歲 邀...
    人間觀光錄閱讀 287評(píng)論 9 7