首页 > 代码库 > Linux程序包管理之yum

Linux程序包管理之yum

update, Yellowdog Update Modifier, YUM


yum是什么?

        yum是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无需繁琐的一次次下载、安装。yum是基于yum数据库,它所支持的文件服务有4种,可以使用ftp、web、nfs还可使用本地文件file。yum实际是存储rpm包的仓库,它有一个缓存,缓存yum仓库中的元数据文件。

为什么使用yum软件包管理器?

     rpm包的安装有一个很大的缺点就是文件的关联性太大,有时候装一个软件要安装很多其它的软件包,很麻烦,所以为此RedHat开发了yum安装方法,可以彻底解决关联性的问题。



yum repository: yum仓库

存储了众多rpm包,以及包的相关元数据的文件(放在repodata目录中)服务器


文件服务:

http://  【这两个//表示转义符】

        ftp://   【这两个//表示转义符】

nfs://   【这两个//表示转义符】

file:///  【后一个/表示本地路径的根】


yum客户端:

配置文件:指向仓库的位置以及各种配置信息;每个yum客户可以有多个可用的yum仓库;


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

   /etc/yum.repos.d/*.repo


仓库定义:

[REPO_ID]  仓库ID,标识符

name=REPO description 描述符

baseurl=ftp://172.16.0.1/pub/CentOS6/ 仓库具体所在路径

enabled={1|0} 表示当前仓库是否被使用,默认为1启用

gpgcheck={1|0} 是否以gpg格式来验证数据的完整性,如果为1时,必须指定gpgkey=file的具体路径

gpgkey=ftp://172.16.0.1/pub/CentOS6/gpg-key 表示gpg具体的指定路径,这个路径可能在ftp、web上,也可能在本地路径上,要指定清楚

wKiom1R1da7gfuFVAAE1AzTnUl8920.jpg

yum命令:    yum [options] [command] [package ...]


yum仓库相关的命令:

列出所有可用仓库:# yum repolist

列出所有程序包:  # yum list {all|installed|available}

                 支持 globbing通配符:*

列出所有包组  :  # yum grouplist

缓存管理:    # yum clean {all|packages}

             # yum makecache


安装:yum install PACKAGE_NAME ...

wKioL1R1drXgrdrLAAJDGA8Kr50323.jpg


如果要安装指定的版本的程序:yum install PACKAGE-VERSION


重装指定的程序包:yum reinstall PACKAGE_NAME ...


升级:yum update PACKAGE_NAME


如果有多个版本的升级包可用,且仅期望升级到指定版本:

       yum update PACKAGE-VERSION


降级:yum downgrade PACKAGE_NAME


检查可用升级:yum check-update

wKioL1R1dyqw_K1CAAMgO-zk190187.jpg

卸载:yum erase|remove PACKAGE_NAME

依赖于指定程序包的其它包,会被一并卸载;


查询:yum list

      yum info PACKAGE_NAME

      yum search KEYWORD: 根据关键字模糊查询包名或包的sumary信息包含此KEYWORD的相关列表;

      yum provides|whatprovides /path/to/somefile


包组管理:

显示所有包组:yum grouplist

wKioL1R1d37QhhMyAAHa3rgPHnE593.jpg

显示某包组的相关信息:yum groupinfo "GROUP_NAME"

安装包组: yum groupinstall "GROUP_NAME"

          yum install @GROUP_NAME

卸载包组:

        yum groupremove "GROUP_NAME"

        yum remove @"GROUP_NAME"

升级包组:

        yum groupupdate "GROUP_NAME"


 yum命令还可用安装本地rpm包文件:

    yum localinstall /path/to/rpm_package_file ...


    CentOS 7: yum install /path/to/rpm_package_file ...


 选项:

       --enablerepo= 后跟repoID表示启用某yum仓库

       --disablerepo= 后跟repoID表示禁用某yum仓库

注意:优先级高于/etc/yum.repos.d/*.repo配置文件中定义的属性;

      -y: 自动回答为yes

      --nogpgcheck


如何构建yum仓库:createrepo


yum客户端配置的高级用法:


1、在yum客户定义仓库时可使用cost定义仓库的使用开销,默认为1000;

2、baseurl中指定路径时可使用变量

    $releasever: 当前OS发行版的主版本号

    $arch: 平台

    $basearch: 基础平台,例如i686,i586,i486,i386系列的基础平台都是i386;

    $YUM0-$YUM9


   例如:http://mirrors.sohu.com/centos/$releasever/os/$basearch

3、可以使用mirrorlist指令替换baseurl:

指向一个URL,此URL是一个文本文件,其中保存了大量镜像服务器列表;用户使用yum仓库时,会获取此列表文件,而后通过fastestmirror插件判断哪一个镜像为访问速度最快的服务器,并以之做为本次访问的baseurl;


本文出自 “囊萤映雪” 博客,请务必保留此出处http://664778789.blog.51cto.com/7534952/1582778

Linux程序包管理之yum