CentOS下如何用yum命令升级所有安装的软件?

在CentOS系统中,YUM(Yellowdog Updater, Modified)是核心的软件包管理工具,它极大地简化了软件的安装、更新和卸载过程,定期使用YUM升级系统软件不仅是获取新功能的方式,更是确保系统安全、稳定和性能优化的关键实践,本文将详细介绍如何利用YUM在CentOS上进行软件升级,涵盖从基础操作到高级技巧的完整流程。

CentOS下如何用yum命令升级所有安装的软件?

理解YUM与软件仓库

在开始操作之前,理解YUM的工作原理至关重要,YUM本身并不包含软件文件,它是一个前端工具,负责从配置好的“软件仓库”中下载软件包及其依赖关系,并自动处理安装过程,这些仓库可以是官方的CentOS源,也可以是第三方提供的源,如EPEL(Extra Packages for Enterprise Linux),YUM会读取位于/etc/yum.repos.d/目录下的配置文件,以知晓从何处获取软件。

升级前的准备工作

执行系统升级是一项敏感操作,充分的准备可以避免不必要的麻烦。

  1. 备份数据:这是最重要的一步,在进行任何大规模升级之前,务必备份所有重要的数据和配置文件,虽然YUM非常可靠,但意外情况(如断电、磁盘空间不足)仍可能导致系统损坏。
  2. 检查当前系统版本:了解你正在运行的CentOS版本有助于判断更新的范围,可以使用以下命令查看:
    cat /etc/centos-release
  3. 清理YUM缓存:随着时间的推移,YUM缓存会占用大量磁盘空间,在升级前清理缓存,可以确保下载到最新的软件包元数据。
    sudo yum clean all

检查与执行升级

准备工作完成后,就可以开始实际的升级流程了。

检查可用更新

在直接升级之前,最好先查看一下有哪些软件包可供更新,这能让你对即将发生的变化有一个预期。

sudo yum check-update

执行此命令后,YUM会列出所有可以升级的软件包列表,如果没有任何输出,则表示系统中的所有软件包都已是最新的版本,输出结果通常包含软件包名称、版本和来源仓库。

执行升级命令

YUM提供了两个主要的升级命令:yum updateyum upgrade,它们在功能上略有不同。

命令 功能描述 推荐场景
yum update 升级所有已安装的软件包,但不会删除因版本更新而被废弃的旧软件包。 日常维护,安全更新,保守升级。
yum upgrade 升级所有已安装的软件包,同时删除系统中原有的、但新版本已不再提供的过时软件包。 大版本更新,或希望系统保持“干净”,移除冗余组件。

对于大多数日常维护场景,推荐使用 yum update,因为它更加保守和安全。

升级单个软件包:
如果你只想升级特定的软件,nginx,可以指定包名:

sudo yum update nginx

升级整个系统:
要升级系统中所有可用的软件包,执行:

CentOS下如何用yum命令升级所有安装的软件?

sudo yum update

在执行过程中,YUM会计算依赖关系,并显示一个将要下载和安装的软件包列表,以及总体下载大小,它会询问你是否确认:

Is this ok [y/d/N]:
  • 输入 y 并回车,确认下载并安装。
  • 输入 d 并回车,仅下载软件包到缓存,不安装。
  • 输入 N 并回车,取消本次操作。

高级技巧与最佳实践

掌握一些高级技巧,可以让你更精细地控制系统的更新过程。

仅安装安全更新

在生产环境中,有时我们只希望应用关键的安全补丁,而不引入其他可能影响稳定性的功能性更新,这需要安装yum-plugin-security插件(通常已预装)。

sudo yum install yum-plugin-security

安装后,可以使用以下命令检查并仅安装安全更新:

sudo yum update --security

排除特定软件包

在某些情况下,你可能不希望某个特定的软件包被自动升级,例如一个经过特殊编译的内核或一个定制化的应用,可以通过编辑YUM配置文件来实现。

编辑 /etc/yum.conf 文件,在 [main] 部分添加 exclude 指令,要排除所有以 kernel 开头的软件包:

[main]
exclude=kernel*

保存后,下次执行 yum update 时,所有匹配 kernel* 的软件包都将被忽略。

查看历史与回滚

YUM提供了一个强大的历史功能,允许你查看、撤销或重做过去的软件事务,这对于排查升级后出现的问题非常有用。

查看历史记录:

CentOS下如何用yum命令升级所有安装的软件?

yum history list

这个命令会列出所有已执行的事务ID、操作、日期等。

撤销某次操作:
假设某次升级(事务ID为15)导致了系统问题,你可以使用以下命令将其撤销:

sudo yum history undo 15

这会将系统恢复到执行该事务之前的状态。

从YUM到DNF的演进

值得注意的是,从CentOS 8开始,YUM已被其下一代版本DNF(Dandified YUM)所取代,DNF在性能、依赖解析能力和内存管理上都有显著提升,好消息是,DNF的命令行语法与YUM高度兼容,本文中提到的绝大部分命令(如 dnf update, dnf check-update, dnf history)在DNF中同样适用,只是将yum替换为dnf即可,掌握YUM的使用方法对于向新版本CentOS Stream或其他基于RPM的发行版(如Fedora、RHEL 8/9)迁移也大有裨益。


相关问答 (FAQs)


解答: 这取决于更新了哪些内容,如果更新的是用户空间的应用程序(如Nginx、MySQL、PHP等),通常不需要重启,这些服务可以通过 systemctl restart [service_name] 来重启以加载新版本,如果更新了核心组件,特别是Linux内核glibc(GNU C库)或systemd这类系统底层基础库,强烈建议重启系统,这是因为这些核心组件的旧版本文件可能仍在内存中被使用,只有重启才能确保所有进程都加载了新的、稳定的版本,你可以通过检查已安装的内核版本 (rpm -q kernel) 来判断内核是否被更新。

问题2:如果在升级过程中网络中断或系统意外关机,该怎么办?
解答: YUM具有良好的断点续传和事务恢复机制,当系统恢复后,首先尝试重新运行相同的升级命令(sudo yum update),YUM会检查事务状态,如果发现上次操作未完成,它会自动尝试清理并继续,如果常规的 yum update 命令报告错误或无法进行,可以尝试清理YUM的锁和数据库:

sudo rm -f /var/run/yum.pid
sudo yum clean all

之后再次尝试更新,如果问题依旧存在,可以使用 yum history 查看是否有未完成的事务,并使用 yum history redo [transaction_id] 来重试,在极端情况下,如果RPM数据库损坏,可能需要重建数据库(rpm --rebuilddb),但这属于高级排错操作,最好的预防措施始终是在升级前确保网络稳定和电源供应。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-06 02:53
下一篇 2025-10-06 02:56

相关推荐

  • 如何按照服务器建网站教程成功搭建自己的网站?

    摘要:本教程旨在指导用户如何搭建服务器并建立网站,涵盖了从选择适合的服务器硬件和软件,到安装必要的网络服务和配置网站的全过程。它为初学者提供了一个逐步引导,确保能够顺利地启动并运行自己的网站。

    2024-08-04
    007
  • 服务器ip 端口 密码_查看IP地址和端口

    要查看服务器的IP地址和端口信息,您可以使用以下命令:,,在Windows系统中,打开命令提示符(cmd),输入以下命令:,,“shell,netstat an,`,,在Linux或macOS系统中,打开终端,输入以下命令:,,`shell,netstat tuln,“,,这些命令将显示当前系统中所有网络连接的详细信息,包括本地和远程IP地址以及端口号。请根据您的操作系统选择相应的命令。

    2024-07-02
    0010
  • 服务器如何做cdn加速_CDN加速ECS资源

    CDN加速ECS资源,首先需要选择一个可靠的CDN服务提供商。然后在CDN平台上添加ECS资源,配置域名解析和缓存策略。最后测试访问速度和稳定性,根据需求调整配置。

    2024-07-15
    005
  • 如何根据服务器配置获取精准的报价信息?

    根据您提供的“服务器配置报价”主题,摘要如下:本文将详细介绍不同服务器配置的市场价格,包括处理器、内存、存储空间和网络选项等关键硬件组件。旨在帮助潜在买家根据需求和预算选择合适的服务器配置,并了解影响价格的主要因素。

    2024-08-04
    009

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信