Linux软件管理 - YUM工具
文本关键字:Linux、软件管理、YUM工具、解决依赖前端
1、YUM介绍
1. YUM含义
YUM的全称是:Yellowdog Updater Modified,是一个基于RPM包管理的Shell前端软件包管理器。因为是基于RPM包管理器,那么使用的场景也就和RPM相似,主要支持的Linux操做系统为:RedHat、CentOS、Fedora。YUM还提供了图形化前端工具:yumex和kyum,须要在yum正常工做的前提下使用。python
2. YUM特色
- 使用python开发
- 须要对应的软件仓库(repository)
- 自动化升级、安装、移除rpm软件包
- 能够很好的解决RPM软件包依赖问题
- 能够自定义多个资源库/yum源(repository)
3. YUM工做流程
- 执行yum命令
- 读取yum配置文件,获取仓库信息
- 在仓库中搜索元数据文件,肯定所需软件及依赖的软件
- 下载相关软件包及校验文件
- 按顺序安装软件包
- 当远程仓库更新后能够经过相应的命令更新本地缓存(软件元信息)
2、经常使用操做
在系统安装完毕后已经默认配置了网络源,在网络畅通的状况下,可使用yum命令完成软件的安装、升级、卸载等操做。数据库
1. 经常使用指令
- install {package1} [package2] [...]
- 将安装最新版的软件以及相关的依赖,能够同时安装多个软件包,用空格隔开
- 指定的软件包能够是一个名称,也能够是一个rpm软件包文件
- 当指定为一个rpm软件包文件时,效果等同于localinstall
- update/update-to [package1] [package2] [...]
- 不填写软件包参数时将更新系统的全部软件至最新版
- 指定的软件包能够是一个名称,也能够是一个rpm软件包文件
- 当指定为一个rpm软件包文件时,效果等同于localupdate
- update-to:能够指定将软件升级至某一版本
- check-update:列出全部可更新的软件清单

- remove/erase {package1} [package2] [...]:删除指定的软件包
- list
- 不写任何参数时等同于all:列出全部可用的软件包信息以及已安装的软件包信息
- available:列出全部在yum源中可安装的软件包
- updates:列出全部在yum中可用于升级的软件包
- installed:列出全部已安装的软件包信息

- info:列出某一个软件或全部软件的详细信息,支持的选项与list相同

- clean
- 不填写参数时效果等同于clean all:将会清空全部本地缓存文件
- packages:清空已下载的全部软件包,默认状况下不会自动删除
- metadata:清空已下载的元信息缓存文件,再次运行yum时会从新下载进行缓存
- expire-cache:清除过时的缓存,若是缓存数据仍然可用,将不会执行删除操做
- rpmdb:清空全部缓存在本地的rpm软件数据库信息
- plugins:清空全部插件对应的缓存数据
- all:清空上面列出的全部缓存数据
- makecache:在本地缓存元数据

- search {string1} [string2] [...]:根据提供的信息搜索软件包,会优先根据名称搜索,若是未发现会使用描述信息和url匹配
- localinstall {rpmfile1} [rpmfile2] [...]:使用yum安装一个rpm软件包,会自动从可用源中搜索安装所需依赖软件
- localupdate {rpmfile1} [rpmfile2] [...]:使用yum升级一个rpm软件包,会自动从可用源中搜索安装所需依赖软件
- reinstall {package1} [package2] [...]:从新安装某个软件包,以最近一次安装的版本为准
- deplist {package1} [package2] [...]:列出某一个软件包相关的依赖软件列表

只截取了部份内容,嗯,果真,rpm软件依赖一不当心就会变成噩梦,yum,感谢有你。centos
- repolist [all/enabled/disabled]
- all:显示全部的yum源
- enabled:显示全部开启状态的yum源
- disabled:显示全部关闭状态的yum源

- check:检查本地rpm数据库和产品信息是否有误
2. 经常使用选项
- -y:自动使用yes应答过程当中的选项
- -q:取消输出内容,静默安装
- -v:输出详细信息
- -R:设置最大等待时长,单位为分钟
- --version:显示当前yum工具版本

- --skip-broken:解决卸载软件时产生的依赖错误问题
- --downloadonly:只进行软件的下载
- --downloaddir:指定软件包下载路径
3、YUM源的管理维护
1. yum配置文件
cd /etc/yum.repos.d
mv CentOS-Base.repo CentOS-Base.repo.bak
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

yum makecache
4、本地YUM源配置
1. 配置项说明
- [serverid]:repo的惟一标识,用于区分不一样的repo
- name:对repo的描述,支持使用$进行引用变量值的写法
- mirrorlist:镜像列表地址,打开以后是一个记录多个镜像地址的列表,会自动在这些列表中扫描选择镜像资源
- release:发行版本,对应的大版本号,如:6,7
- arch:系统架构,32位通常对应i386,64位对应x86_64
- repo:仓库类型,如os、fasttrack等
- infra:该选项可省略,对应值为stock,能够在/etc/yum/vars/infra中查看


- baseurl:直接指向一个yum源地址,支持多种协议
- http:网络传输协议
- ftp:文件传输协议
- file:文件协议,能够指向一个本地磁盘路径
- gpgcheck:是否开启gpg校验
- gpgkey:指定校验文件URL
- enabled:是否启用该配置
- failovermethode:对应仓库出现故障时如何挑选
- roundrobin:默认选项,随机挑选
- priority:按顺序挑选
2. 挂载光盘镜像
因为系统镜像中包含了大部分经常使用的软件包,因此在离线状况下通常都是使用系统镜像做为yum源。使用虚拟机时能够直接进行光盘镜像挂载,物理机时能够搭建ftp服务器或者将光盘镜像文件烧录至U盘后挂载,亦或是将其中的内容所有拷贝至系统某一个路径下。bash
光盘镜像挂载后,会在/dev下被识别为cdrom,使用以下命令进行挂载:服务器
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom

3. 修改配置文件
- 使默认的Base配置失效,不然在无网络链接的状况下会出现找不到服务器的错误
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
- 以Media文件为模板,将baseurl指定为光盘挂载路径,完整配置内容以下(CentOS-Media.repo):

[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom/
gpgcheck=0
enabled=1
若是gpgcheck指定为1,则须要正确指定gpgkey的值为校验文件所在路径,如:/mnt/cdrom/RPM-GPG-KEY-CentOS-6网络
4. 可用验证
yum makecache
