使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
安装和更新的软件包的历史记录。您可以使用cat
或tail
命令查看/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计算机,则可能会很耗时,有时甚至会忽略重要的更新。最好的选择是设置自动更新。如果您有任何疑问或反馈,请随时发表评论。