一、 yum软件包管理器

 1、 yum的作用

  YUM: Yellowdog Update Modifier,rpm的前端程序,可解决软件包相关依赖性,可在多个库之间定位软件包,up2date 的替代工具。
  yum repository:(yum资源库) 以.repo结尾的yum库文件中存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下)
  yum库文件中支持的文件的服务器:
   http:// (外部网站的rpm包地址)
   https:// (外部网站的rpm包地址)
   ftp:// (内部网的共享rpm包地址)
   file:// (本机上存储的rpm包地址)

 2、 yum客户端配置文件:

  /etc/yum.conf:为所有仓库提供公共配置
  /etc/yum.repos.d/*.repo:为仓库的指向提供配置
  下面我们来看看这两个文件:
yum软件包管理器_第1张图片
  cachedir :指定缓存目录
  logfile : 日志文件
  gpgcheck : 是否查包的合法性
yum软件包管理器_第2张图片
  [repositoryID] (标题,这个库的id,相当于×××号,不可重复)
  name=Some name for this repository (库名字,名字可以重复)
  baseurl=url://path/to/repository/ (指定rpm包的路径)
  enabled={1|0} (是否有效0表示这个repo无效,1表示有效,默认值为1)
  gpgcheck={1|0} (是否检验包的合法性默认为1)
  gpgkey=URL (公钥路径)
  enablegroups={1|0} (是否开启组功能)
  failovermethod={roundrobin|priority} (一个源是可以跟多个地址(baseurl)的,此选项是设置多个地址的使用顺序的)
   roundrobin:意为随机挑选,默认值
   priority:按顺序访问
  cost= 默认为1000(优先级)

 3、 yum的repo配置文件中可用的变量

  $releasever: 当前OS的发行版的主版本号
  $arch: 平台,i386,i486,i586,x86_64等
  $basearch:基础平台;i386, x86_64
  $YUM0-$YUM9:自定义变量
  例如:
   http://server/centos/$releasever/$basearch/
   如果当前服务器是centos7版本x86_64平台的
    则实际网址为http://server/centos/7/x86_64
   如果当前服务器是centos6版本i384平台的
    则实际网址为http://server/centos/6/i384

 4、 yum源

  yum源路径指定的不是包含软件包的那个目录,而是指定在包含有repodata的目录的上一级目录
  阿里云repo文件:http://mirrors.aliyun.com/repo/
   CentOS系统的yum源
    阿里云: https://mirrors.aliyun.com/centos/$releasever/os/x86_64/
    教学环境: http://172.16.0.1/cobbler/ks_mirror/$releasever/
   EPEL的yum源:
    阿里云: https://mirrors.aliyun.com/epel/$releasever/x86_64
    教学环境: http://172.16.0.1/fedora-epel/$releasever/x86_64/

 5、 yum命令

  1. yum命令的用法:

   yum [options] [command] [package ...]
   yum的命令行选项:
    -y: 自动回答为“yes”,避免交互式
    -q:静默模式(但是仍会显示安装的过程,彻底静默建议使用yum -y install pkg1 &> /dev/null,把结果扔进垃圾桶)
    --nogpgcheck:临时不进行gpg check(不检验包的合法性)
    --disablerepo=repoidglob:临时禁用此处指定的repo
    --enablerepo=repoidglob:临时启用此处指定的repo
    --noplugins:禁用所有插件

  2. 显示仓库列表

   yum repolist [all|enabled|disabled]
    all 显示全部repo
    enabled 只显示生效的repo
    disabled 只显示无效的repo

  3. 显示程序包

   yum list [all] 显示所有的程序包
   yum list available 显示所有可用的,且未安装的
   yum list installed 显示所有已安装的包
   yum list updates 显示可更新的包

  4. 安装程序包

   yum install package1(包名) [package2]…
    安装软件包,可以同时跟多个包名,安装多个包
   yum reinstall package1 [package2]
    重新安装一个或多个已安装的包

  5. 升级程序包

   yum update [pkg1] [pkg2] (升级安装)(后跟多个包名可升级多个包)
   yum downgrade pkkg1 [pkg2] (降级安装)

  6. 检查可用升级

   yum check-update

  7. 卸载程序包

   yum remove 包名1 [包名3]… 删除程序包(后跟多个包名可同时删除多个包)
   yum erase 包名1 [包名2]… 卸载程序包

  8. 查看程序包

   yum info pkg 显示包的详细信息

  . 查看指定的特性(可以是某文件)是由哪个程序包所提供

   yum provides 文件路径(支持文件名通配符) 查询一个文件来自哪一个rpm安装包(不论这个包是否已安装)
   yum whatprovides 文件路径(支持文件名通配符) 查询一个文件来自于哪一个rpm安装包(不论这个包是否已安装)

  10. 清除本地缓存

   yum clean all 清空所有缓存

  11. 构建缓存

   yum makecache

  12. 搜索以指定的关键字搜索程序包名及summary信息

   yum search str1 [str2] (str代表关键字文本)

  13. 查看指定包所依赖的功能

   yum deplist pkg1 [pkg2]…

  14. 查看yum事务历史(下列#代表一个具体的数字)

   yum history 显示yum的历史操作
   yum history info # 详细显示某条历史记录
   yum history undo # 撤销某条yum的操作
   yum history redo # 重新执行一遍某条yum的操作

  15. 安装升级本地程序包(下列|代表或)

   yum localinstall |install rpm路径 安装本地的rpm包,并用yum解决依赖性关系
   yum localupdate |update rpm路径 更新本地的rpm包,并用yum解决依赖性关系

  16. 包组管理的相关命令

   yum groupinstall grppkg1 安装该包组(grppkg1)
   yum grouplist 列出所有的包组
   yum groupinfo grppkg1 显示该包组包含的rpm包
   yum groupremove grppkg1 卸载包组

  17. 创建yum仓库

   为什么yum能帮我们解决一些依赖性关系呢?其实是因为在yum仓库下有一个repodata的目录,而在这个目录下就保存着各个包的信息及其依赖性关系,所以yum仓库指定的位置必须指定在有repodata目录的上一层目录,而如果想自己创建一个yum仓库,除了在该目录下拷贝一些包以外还需要自动创建一个repodata的目录。createrepo这个命令就会帮助我们自动搜索该目录下的所有包及依赖性关系,并创建repodata目录将其保存在该目录下语法格式如下:
     createrepo 仓库路径(存放着rpm包的路径)
   创建一个yum仓库的步骤:

   1、 创建一个yum仓库的目录

   2、 拷贝一些rpm包至该目录下

   3、 使用createrepo命令创建repodata目录

   4、 在目录/etc/yum.repos.d下创建一个以.repo结尾的仓库文件,创建一个yum库,指定该yum仓库的路径

   提示:在centOS6中默认createrepo命令是没有安装的,所以可能会出错,想要安装createrepo命令可以用以下步骤哦:
   1、yum list createrepo 查询yum仓库里是否有createrepo的包
yum软件包管理器_第3张图片
   查出createrepo命令的安装包名为createrepo.noarch
    2、yum install createrepo.noarch 安装createrepo安装包
yum软件包管理器_第4张图片
   安装成功
   3、如果所有的rpm安装包都在/dvd目录下,想要将此目录设置成一个yum仓库来使用,如何使用createrepo命令来创建repodata目录?
yum软件包管理器_第5张图片
   如此这个/dvd目录就可以在yum仓库的配置文件中使用了