使CentOS系统保持最新状态,安装安全更新,是整个系统安全性中最重要的部分之一。如果您不使用最新的安全补丁更新操作系统的软件包,则您的计算机将很容易受到攻击。

推荐的方法是使用yum-cron自动执行更新。另一种选择是手动更新系统。在本教程中,我们将向您展示如何在CentOS上手动更新系统软件包。相同的说明适用于CentOS 6。包括使用yum安装指定软件包或者所有软件包的更新,使用yum-plugin-versionlock锁定软件包或者命令版本。

先决条件

要安装和更新软件包,您需要以root用户或具有sudo权限的用户登录。

在CentOS更新软件包

RPM是Red Hat及其衍生产品(例如CentOS)使用的软件包管理器。Yum是CentOS中的默认软件包管理器工具。它用于从CentOS官方存储库以及其他第三方存储库中安装,删除,下载,查询和更新软件包。在运行更新之前,您可以使用以下命令检查可用更新:

sudo yum check-update

输出将包含所有可用于更新的软件包的列表:

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.s.uw.edu
 * centos-sclo-rh: centos.s.uw.edu
 * centos-sclo-sclo: centos.s.uw.edu
 * epel: mirror.cherryservers.com
 * extras: centos.s.uw.edu
 * updates: centos.s.uw.edu

bind-libs-lite.x86_64                    32:9.9.4-74.el7_6.2             updates
bind-license.noarch                      32:9.9.4-74.el7_6.2             updates
curl.x86_64                              7.29.0-51.el7_6.3               updates
device-mapper.x86_64                     7:1.02.149-10.el7_6.8           updates
device-mapper-event.x86_64               7:1.02.149-10.el7_6.8           updates
device-mapper-event-libs.x86_64          7:1.02.149-10.el7_6.8           updates
device-mapper-libs.x86_64                7:1.02.149-10.el7_6.8           updates

要更新单个程序包,请使用yum install命令,后跟要更新的软件包的名称。例如,要仅更新curl命令,应运行:

sudo yum install curl

Yum将为您提供将要更新的软件包的摘要,并提示您进行确认。键入y,软件包将被更新。

Dependencies Resolved

================================================================================
 Package         Arch           Version                   Repository       Size
================================================================================
Updating:
 curl            x86_64         7.29.0-51.el7_6.3         updates         269 k
Updating for dependencies:
 libcurl         x86_64         7.29.0-51.el7_6.3         updates         222 k

Transaction Summary
================================================================================
Upgrade  1 Package (+1 Dependent package)

Total download size: 492 k
Is this ok [y/d/N]:

要更新所有软件包,请使用yum install命令:

sudo yum check-update

该命令将更新存储库,并为您提供所有可以更新的软件包的列表。出现提示时,键入y继续。

防止软件包被更新

有时候,您可能希望限制软件包更新到最新版本。 Yum插件versionlock允许您将软件包锁定到特定版本。默认情况下未安装该插件,因此,您首先需要安装它:

sudo install yum-plugin-versionlock

在安装过程中,将在系统上创建两个配置文件,存储在/etc/yum/pluginconf.d目录中。配置文件versionlock.conf和包锁定的配置文件versionlock.list。默认情况下,此文件中未列出任何软件包。

要锁定软件包的版本,您可以在文件中手动添加软件包名称,也可以使用yum versionlock命令后跟软件包名称。例如,要阻止所有PHP软件包(所有以php-开头的软件包)的更新,您可以运行:

sudo yum versionlock php-*

这会将PHP库/软件包锁定为当前版本。

查看yum日志

如你需要查看yum安装和更新的软件包的历史记录。您可以使用cattail命令查看/var/log/yum文件中最新记录:

sudo tail /var/log/yum.log

输出将包含有关软件包安装和更新的记录:

Jul 23 16:00:04 Installed: 7:squid-3.5.20-12.el7_6.1.x86_64
Jul 31 22:27:16 Updated: libcurl-7.29.0-51.el7_6.3.x86_64
Jul 31 22:27:16 Updated: curl-7.29.0-51.el7_6.3.x86_64

结论

安装更新并使CentOS系统保持最新非常简单,但是如果您管理多台CentOS计算机,则可能会很耗时,有时甚至会忽略重要的更新。最好的选择是设置自动更新。如果您有任何疑问或反馈,请随时发表评论。