保持 CentOS 系统的最新状态,安装最新的安全更新是整个系统安全性中最重要的部分之一。如果您未使用最新的安全修补程序更新操作系统的软件包,则您的计算机将容易受到攻击。
推荐的方法是使用自动化更新程序 yum-cron 。另一种选择是手动更新系统。
在本教程中,我们将向您展示如何在 CentOS 7 上手动更新系统包。相同的说明适用于 CentOS 6 。
先决条件
要安装和更新软件包,您需要以 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 update 命令:
sudo yum update
该命令将更新存储库,并为您提供可以更新的所有软件包的列表。提示输入 y 时继续。
禁用更新某些包
有时您可能希望将程序包限制为更新为较新的版本。 Yum 插件 versionlock 允许您将包锁定到特定版本。
默认情况下不安装该插件,因此首先需要安装它:
sudo yum install yum-plugin-versionlock
在安装过程中,将在系统上创建两个配置文件,这些文件存储在 /etc/yum/pluginconf.d 目录中。配置文件 versionlock.conf 和 versionlock.list 包含锁定包的文件。默认情况下,此文件中未列出任何包。
要锁定软件包的版本,您可以手动在文件中添加软件包名称,也可以使用 yum versionlock 命令后跟软件包名称。例如,为了防止所有 PHP 包(以 “php-” 开头的所有包)被更新,您将运行:
sudo yum versionlock php-*
这会将 PHP 包锁定到当前版本。
查看 Yum 日志
yum 安装和更新的软件包的历史记录记录在 /var/log/yum 文件中。您可以使用 cat 或者 tAIl 命令查看最新记录:
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 计算机,可能会非常耗时,有时您可能会忽略重要更新。最好的选择是设置自动更新。