列出包
有几个 yum 命令可以列出系统上启用或者安装的任何存储库中的软件包。
我们可以列出特定类型的包,并使用包含任何包名称、架构、版本或者发行版的包规范来细化列表。
要列出所有存储库中的所有软件包以及系统上安装的所有软件包,请使用以下命令:
# yum list
要列出系统上安装的所有软件包,请使用以下命令:
# yum list installed
要列出可安装在系统上任何启用的存储库中的所有可用软件包,请使用以下命令:
# yum list available
以下示例查找文件(例如,/etc/sysconfig/atd)所属的包的名称:
# yum provides /etc/sysconfig/atd at-3.1.13-17.el7.x86_64 : Job spooling tools ...
更新所有包
要更新所有软件包及其依赖项,请输入 yum update(不带任何参数):
# yum update
更新和安装内核
使用 yum 时,我们无需担心安装和升级内核包的区别。
无论我们使用 yum update 还是 yum install,yum 总是安装新内核。
更新单个包
要更新单个包,请使用以下命令语法:
# yum update package_name
例如,要更新 bind-libs 包,请输入:
# yum update bind-libs
yum 检查依赖项,显示已解决的依赖项和事务摘要,提示“是否可以 [y/N]”,等待响应,然后下载并安装该软件包以及所需的任何依赖软件包。
使用 yum -y 绕过提示。
yum 存储库
Linux 将有关每个存储库的信息存储在 /etc/yum.repos.d 目录中的单独文件中。
下面是一个例子:
# ls -lrt /etc/yum.repos.d total 20 -rw-r--r-- 1 root root 733 Jan 27 18:09 rhel7.2.repo -rw-r--r-- 1 root root 358 Nov 5 14:00 rhel7.3.repo
存储库文件定义要使用的存储库。
每个 repo 文件都包含几个相关存储库的规范。
例如,
[epel] name=Extra Packages for Enterprise Linux 7 - $basearch baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Repo文件中的指令包括:
指令 | 作用 |
---|---|
name | 描述存储库 |
baseurl | 是主存储库的位置(http://、ftp:// 或者 file://) |
enabled | 设置为 1 时,yum 使用存储库。 如果设置为 0,则存储库被禁用。 |
yum 存储库也可以在本地访问,而不仅仅是通过 Internet。
使用 createrepo 命令创建本地 yum 存储库,然后将 baseurl 设置为本地目录。
yum 实用程序通常是执行包管理任务的最快方式。
它提供的功能超出了 rpm 和图形包管理工具所提供的功能。
yum 命令有很多,但下面提供了常见任务的示例。
Linux 系统上的所有软件都分为可以安装、卸载、升级、查询和验证的包。
CentOS/RHEL 系统使用 Red Hat Package Manager (RPM) 来方便软件包的安装、升级和删除。
CentOS/RHEL 还提供了 yum(Yellowdog Updater, Modified) 实用程序,它与 RPM 包一起工作。
当 yum 安装或者升级软件包时,它也会安装或者升级任何软件包依赖项。
yum 实用程序从存储库下载包头和包。
存储库是可以从中检索和安装软件包的存储位置。
查询更新
要查看系统上哪些已安装的软件包有可用更新,请使用以下命令:
# yum check-update
包名称加上架构、更新包的版本和存储库(或者
ULN 通道)显示。
输入 yum list update 返回相同的输出。
Yum 配置文件
yum 的主要配置文件是 /etc/yum.conf 。
定义存储库的配置文件位于 /etc/yum.repos.d 目录中。
/etc/yum.conf 的示例如下:
# cat /etc/yum.conf [main] cachedir=/var/cache/yum/$basearch/$releasever keepcache=0 debuglevel=2 logfile=/var/log/yum.log exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 installonly_limit=3
全局配置在 [main] 部分定义:
参数 | 作用 |
---|---|
cachedir | 存放下载包的目录 |
keepcache | 设置为 0 以指示在安装后删除软件包。 |
debuglevel | 记录的信息量,从 0 到 10 |
logfile | yum 日志文件 |
exactarch | 当设置为 1 时,yum 只更新具有相同架构的包。 |
obsoletes | 设置为 1 时,yum 会在更新期间替换过时的软件包。 |
gpgcheck | 设置为 1 时,yum 会检查 GPG 签名以验证包的真实性。 gpgkey 指令指定 GPG 密钥的位置。 |
plugins | 设置为 1 时,启用扩展功能的 yum 插件。 |
installonly_limit | 任何单个包可以同时安装的最大版本数 |
更新包
我们可以选择一次更新单个包、多个包或者所有包。
如果包(或者包)的任何依赖项有可用更新,它们也会更新。
删除包
要删除包,请使用以下语法:
# yum remove package_name
例如,要删除 zsh 包,请输入:
# yum remove zsh
安装包
要将新包与任何包依赖项一起安装,请使用以下语法:
# yum install package_name
例如,要安装 zsh 包,请输入:
# yum install zsh