yum 工具详解

2016-12-11

yum 工具详解

yum 工具可以联网去下载所需要的 rpm 包,然后自动安装。在这个工程中如果要安装的 rpm 包有依赖关系,yum 会帮我们解决掉这些依赖关系依次安装所有的 rpm 包。

列出所有可用的 rpm 包

[root@localhost ~]# yum list |head -n 12
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.bit.edu.cn
 * epel: mirrors.aliyun.com
 * extras: mirrors.sina.cn
 * updates: mirror.bit.edu.cn
已安装的软件包
ConsoleKit.x86_64                           0.4.1-3.el6                  @anaconda-CentOS-201508042137.x86_64/6.7
ConsoleKit-libs.x86_64                      0.4.1-3.el6                  @anaconda-CentOS-201508042137.x86_64/6.7
ConsoleKit-x11.x86_64                       0.4.1-3.el6                  @anaconda-CentOS-201508042137.x86_64/6.7
GConf2.x86_64                               2.28.0-6.el6                 @anaconda-CentOS-201508042137.x86_64/6.7
MAKEDEV.x86_64                              3.24-6.el6                   @anaconda-CentOS-201508042137.x86_64/6.7

从上例可以看到有@符号,代表着此 rpm 包已安装,未安装不会出现@。如果该 rpm 包已安装但需要升级则显示 updates。

搜索一个 rpm 包

命令 yum search [相关关键词]

[root@localhost ~]# yum search vim
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.bit.edu.cn
 * epel: mirrors.aliyun.com
 * extras: mirrors.sina.cn
 * updates: mirror.bit.edu.cn
==================================================== N/S Matched: vim ====================================================
beakerlib-vim-syntax.noarch : Files for syntax highlighting BeakerLib tests in VIM editor
docker-io-vim.x86_64 : vim syntax highlighting files for docker
protobuf-vim.x86_64 : Vim syntax highlighting for Google Protocol Buffers descriptions
vim-X11.x86_64 : The VIM version of the vi editor for the X Window System
vim-clustershell.noarch : VIM files for ClusterShell
vim-common.x86_64 : The common files needed by any version of the VIM editor
vim-enhanced.x86_64 : A version of the VIM editor which includes recent enhancements
vim-filesystem.x86_64 : VIM filesystem layout
vim-minimal.x86_64 : A minimal version of the VIM editor
vim-halibut.noarch : Syntax file for the halibut manual tool
  Name and summary matches only, use "search all" for everything.

还可以用 grep 过滤

[root@localhost ~]# yum list |grep vim
vim-common.x86_64                           2:7.4.629-5.el6              @base
vim-enhanced.x86_64                         2:7.4.629-5.el6              @base
vim-filesystem.x86_64                       2:7.4.629-5.el6              @base
vim-minimal.x86_64                          2:7.4.629-5.el6              @anaconda-CentOS-201508042137.x86_64/6.7
beakerlib-vim-syntax.noarch                 1.11-1.el6                   epel
docker-io-vim.x86_64                        1.7.1-2.el6                  epel
protobuf-vim.x86_64                         2.3.0-9.el6                  epel
vim-X11.x86_64                              2:7.4.629-5.el6              base
vim-clustershell.noarch                     1.7.1-1.el6                  epel
vim-halibut.noarch                          1.0-2.20100504svn8934.el6    epel

安装一个 rpm 包

命令 yum install [-y] [rpm 包名]

如果不加 -y 选项,则会以与用户交互的方式安装。会询问是否安装,y/n

[root@localhost ~]# yum install vim-X11
已加载插件:fastestmirror
设置安装进程
Loading mirror speeds from cached hostfile
 * base: mirror.bit.edu.cn
 * epel: mirrors.aliyun.com
 * extras: mirrors.sina.cn
 * updates: mirror.bit.edu.cn
解决依赖关系
--> 执行事务检查
---> Package vim-X11.x86_64 2:7.4.629-5.el6 will be 安装
--> 完成依赖关系计算
依赖关系解决
==========================================================================================================================
 软件包                     架构                      版本                                  仓库                     大小
==========================================================================================================================
正在安装:
 vim-X11                    x86_64                    2:7.4.629-5.el6                       base                    1.1 M
事务概要
==========================================================================================================================
Install       1 Package(s)
总下载量:1.1 M
Installed size: 2.5 M
确定吗?[y/N]:y
下载软件包:
vim-X11-7.4.629-5.el6.x86_64.rpm                                                                   | 1.1 MB     00:00
运行 rpm_check_debug
执行事务测试
事务测试成功
执行事务
Warning: RPMDB altered outside of yum.
  正在安装   : 2:vim-X11-7.4.629-5.el6.x86_64                                                                         1/1
  Verifying  : 2:vim-X11-7.4.629-5.el6.x86_64                                                                         1/1
已安装:
  vim-X11.x86_64 2:7.4.629-5.el6
完毕!

卸载一个 rpm 包

命令 yum remove [-y] [rpm 包名]

[root@localhost ~]# yum remove vim-X11
已加载插件:fastestmirror
设置移除进程
解决依赖关系
--> 执行事务检查
---> Package vim-X11.x86_64 2:7.4.629-5.el6 will be 删除
--> 完成依赖关系计算
依赖关系解决
==========================================================================================================================
 软件包                     架构                      版本                                 仓库                      大小
==========================================================================================================================
正在删除:
 vim-X11                    x86_64                    2:7.4.629-5.el6                      @base                    2.5 M
事务概要
==========================================================================================================================
Remove        1 Package(s)
Installed size: 2.5 M
确定吗?[y/N]:y
下载软件包:
运行 rpm_check_debug
执行事务测试
事务测试成功
执行事务
  正在删除   : 2:vim-X11-7.4.629-5.el6.x86_64                                                                         1/1
  Verifying  : 2:vim-X11-7.4.629-5.el6.x86_64                                                                         1/1
删除:
  vim-X11.x86_64 2:7.4.629-5.el6
完毕!

升级一个 rpm 包

命令 yum update [-y] [rpm 包]

[root@localhost ~]# yum update libselinux
已加载插件:fastestmirror
设置更新进程
Loading mirror speeds from cached hostfile
 * base: mirror.bit.edu.cn
 * epel: mirrors.aliyun.com
 * extras: mirrors.sina.cn
 * updates: mirror.bit.edu.cn
不升级任何软件包

搭建本地 yum 仓库

挂载光盘

[root@localhost ~]# mount /dev/cdrom /mnt

删除 /etc/yum.repos.d 目录下所有的 repo 文件。先备份一个原有的。

[root@localhost ~]# cp -r /etc/yum.repos.d   /etc/yum.repos.d.bak
[root@localhost ~]# rm -rf /etc/yum.repos.d/*

创建新文件 dvd.repo

[root@localhost ~]# vim /etc/yum.repos.d/dvd.repo     //加入以下内容:
[dvd]
name=install dvd
baseurl=file:///mnt
enabled=1
gpgcheck=0

刷新 repos 生成缓存

[root@localhost ~]# yum makecache

如果不想使用本地 yum 源,需要删除/etc/yum.repos.d/dvd.repo 文件,然后恢复原来的配置文件。


安装 epel 扩展源

使用 yum 安装 rpm 包时,经常会遇到一些包没有,这时候可以尝试安装 epel 的扩展源,这里有系统不自带的 rpm 包。

[root@localhost ~]# yum install -y epel-release
[root@localhost ~]# yum list

这时会有很多 epel 的 rpm 包。


yum 保留已经安装过的包

可以设置使 yum 保留已经下载的 rpm 包,供以后升级或重新安装时使用。

修改 /etc/yum.conf 即可:

           [main]
           cachedir=/home/soft1/yumcache
           keepcache=1
           debuglevel=2

cachedir 是放置下载的包的地方,可以修改为自己想放置的位置

keepcache 为 1 时表示保存已经下载的 rpm 包


yum 只获取 rpm 包不自动安装

使用 yum-downloadonly 插件

yum 有一个 plugin 叫做 yum-downloadonly,它就可以为用户实现只下载软件包的功能:

[root@localhost ~]# yum install yum-downloadonly

安装完成后, yum 就多了两个命令参数,分别是:

--downloadonly

--downloaddir=/path/to/dir

示例:

[root@localhost ~]# yum install vim --downloadonly --downloaddir=/var

就会把 VIM 的安装包下载到/var 目录下了。


标题:yum 工具详解
作者:散宜生
地址:https://17kblog.com/articles/2016/12/11/1481425965856.html