帮助文档 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
帮助文档 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 云服务器 ECS
  4. 服务支持
  5. 操作系统问题
  6. Linux实例中如何禁用或启用包管理器进行内核升级

Linux实例中如何禁用或启用包管理器进行内核升级

  • 操作系统问题
  • 发布于 2025-04-01
  • 0 次阅读
文档编辑
文档编辑

在使用Linux实例的过程中,采用更新版本的内核可以实现性能提升、安全漏洞修复以及新功能的支持。然而,如果您的业务需要特定的Linux内核版本,或者您不希望升级至更新版本的内核,则需要禁用包管理器对内核版本的升级。本文将为您提供在Linux实例中禁用或启用包管理器升级内核的具体方法。

背景说明

升级Linux内核属于高风险操作,可能导致硬件驱动不兼容、安全模块(SELinux)失效以及实例启动失败等问题。因此,建议您在进行内核升级之前,充分了解相关升级内容,并确认内核升级的必要性。

前提条件

在进行内核升级之前,请确保已完成相关的兼容性测试,并为实例创建快照,以确保业务数据的安全。

禁用或启用包管理器更新内核

如果您不希望通过包管理器自动更新Linux实例内核,您可以通过配置包管理器来禁用内核的自动更新,相关操作如下。

Alibaba Cloud Linux/CentOS

  1. 使用Workbench工具以SSH协议登录Linux实例。

  2. 运行如下命令,查看当前Linux系统内核版本信息。

    sudo uname -r

    回显信息示例如下,表明当前使用的内核版本为5.10.134-16.al8.x86_64。

    5.10.134-16.al8.x86_64
  3. 运行如下命令,查看当前安装的Linux内核软件包的信息。

    sudo rpm -qa | grep kernel

    回显结果示例如下,表明当前内核软件包名称为kernel-5.10.134-16.al8.x86_64。

    kernel-devel-5.10.134-18.al8.x86_64
    kernel-core-5.10.134-16.al8.x86_64
    kernel-modules-5.10.134-16.al8.x86_64
    kernel-modules-extra-5.10.134-16.al8.x86_64
    kernel-modules-internal-5.10.134-16.al8.x86_64
    kernel-tools-libs-5.10.134-16.al8.x86_64
    kernel-tools-5.10.134-16.al8.x86_64
    kernel-5.10.134-16.al8.x86_64
    kernel-devel-5.10.134-16.al8.x86_64
    kernel-headers-5.10.134-16.al8.x86_64
  4. 运行如下命令,打开yum包管理器配置文件。

    sudo vi /etc/yum.conf
  5. 按i进入编辑模式,为配置文件新增如下内容。

    exclude = kernel*
    说明
    • 上述操作将会阻止所有内核更新,包括内核的安全更新。请根据自身需求进行选择,以避免错过重要的内核安全补丁,从而引发实例安全风险。

    • 如需重新启用包管理器自动更新内核,请删除或者注释掉上述步骤5中添加的内容即可。

  6. 按Esc键,输入:wq退出编辑模式。

  7. (可选)配置完成后,您可以运行如下命令,测试内核版本锁定是否生效。

    sudo yum update --assumeno | grep kernel

    回显信息示例如下,表明内核版本不会被升级。

    kernel-core                             x86_64  5.10.134-18.al8              alinux3-plus      32 M
     kernel-modules                          x86_64  5.10.134-18.al8              alinux3-plus      23 M
     kernel-modules-extra                    x86_64  5.10.134-18.al8              alinux3-plus     1.5 M
     kernel-modules-internal                 x86_64  5.10.134-18.al8              alinux3-plus     1.0 M
     kernel-headers                          x86_64  5.10.134-18.al8              alinux3-plus     2.3 M
     kernel-tools                            x86_64  5.10.134-18.al8              alinux3-plus     1.1 M
     kernel-tools-libs                       x86_64  5.10.134-18.al8              alinux3-plus     947 k
    Operation aborted.

Ubuntu/Debian

  1. 使用Workbench工具以SSH协议登录Linux实例。

  2. 运行如下命令,查看当前Linux系统内核版本信息。

    sudo uname -r

    回显信息示例如下,表明当前使用的内核版本为5.4.0-204-generic。

    5.4.0-204-generic
  3. 运行如下命令,查看当前安装的Linux内核软件包的信息。

    sudo dpkg -l | grep linux-image

    回显信息如下,表明当前内核软件包名称为linux-image-5.4.0-204-generic。

    ii  linux-image-5.4.0-204-generic         5.4.0-204.224                     amd64        Signed kernel image generic
    ii  linux-image-5.4.0-42-generic          5.4.0-42.46                       amd64        Signed kernel image generic
    ii  linux-image-generic                   5.4.0.204.200                     amd64        Generic Linux kernel image
  4. 运行以下命令,锁定Linux内核软件包。

    sudo apt-mark hold linux-image-*
    说明
    • 上述操作将会阻止所有内核更新,包括内核的安全更新。请根据自身需求进行选择,以避免错过重要的内核安全补丁,从而引发实例安全风险。

    • 如需重新启用包管理器自动更新内核,请运行如下命令。

      sudo apt-mark unhold linux-image-*

  5. (可选)运行以下命令,查看当前配置的锁定版本软件包列表。列表中存在的软件包将不会被自动升级。

    sudo apt-mark showhold

Fedora

  1. 使用Workbench工具以SSH协议登录Linux实例。

  2. 运行如下命令,查看当前Linux系统内核版本信息。

    sudo uname -r

    回显信息示例如下,表明当前使用的内核版本为6.10.10-200.fc40.x86_64。

    6.10.10-200.fc40.x86_64
  3. 运行如下命令,查看当前安装的Linux内核软件包的信息。

    sudo rpm -qa | grep kernel

    回显结果示例如下,表明当前内核软件包名称为kernel-6.10.10-200.fc40.x86_64。

    kernel-modules-core-6.8.5-301.fc40.x86_64
    kernel-core-6.8.5-301.fc40.x86_64
    kernel-modules-6.8.5-301.fc40.x86_64
    libreport-plugin-kerneloops-2.17.15-1.fc40.x86_64
    kernel-6.8.5-301.fc40.x86_64
    kernel-devel-6.8.5-301.fc40.x86_64
    kernel-headers-6.10.3-200.fc40.x86_64
    abrt-addon-kerneloops-2.17.6-1.fc40.x86_64
    kernel-modules-core-6.10.10-200.fc40.x86_64
    kernel-core-6.10.10-200.fc40.x86_64
    kernel-modules-6.10.10-200.fc40.x86_64
    kernel-devel-6.10.10-200.fc40.x86_64
    kernel-6.10.10-200.fc40.x86_64
    kernel-tools-libs-6.8.5-301.fc40.x86_64
    kernel-tools-6.8.5-301.fc40.x86_64
  4. 运行如下命令,打开dnf包管理器配置文件。

    sudo vi /etc/dnf/dnf.conf
  5. 按i进入编辑模式,为配置文件新增如下内容。

    exclude = kernel*
    说明
    • 上述操作将会阻止所有内核更新,包括内核的安全更新。请根据自身需求进行选择,以避免错过重要的内核安全补丁,从而引发实例安全风险。

    • 如需重新启用包管理器自动更新内核,请删除或者注释掉上述步骤5中添加的内容即可。

  6. 按Esc键,输入:wq退出编辑模式。

  7. (可选)配置完成后,您可以运行如下命令,测试内核版本锁定是否生效。

    sudo dnf update --assumeno | grep kernel

    回显信息示例如下,表明内核版本不会被升级。

    Operation aborted.
重要

上述锁定内核软件包的方法仅为一种常见的思路。若您的实例对Linux内核版本有特定要求,建议您结合自身实际情况,制定相应方案,以避免因内核版本升级而引发的问题。

常见问题

  • 问题现象:在Alibaba Cloud Linux/CentOS实例中升级内核时,提示“No package marked for Update”。

  • 问题原因:该问题可能是在实例的/etc/yum.conf配置文件中,配置了禁止kernel升级的配置项,导致内核无法升级或升级失败。

  • 解决方案:

    • 使用Workbench工具以SSH协议登录Linux实例。

    • 运行如下命令,打开yum包管理器配置文件。

      sudo vi /etc/yum.conf
    • 按i进入编辑模式,删除或者注释掉上述添加的内容即可。

      # 如需注释如下内容,请在该行行首增加一个#。
      exclude = kernel*
    • 按Esc键,输入:wq退出编辑模式。

相关文档

如需了解如何升级Linux内核,请参见升级Linux ECS实例内核。

相关文章

ECS实例使用的Windows系统激活失败如何解决? 2025-04-01 12:01

本文主要介绍ECS实例使用的Windows系统激活失败的原因以及解决方案。 可能原因 Windows系统ECS实例默认配置激活脚本,正常情况下,实例能够与KMS服务器通讯来激活系统。但是可能因为以下原因导致激活失败: Software Protection异常导致激活失败

slmgr.vbs文件类型变化导致无法激活Windows系统如何处理? 2025-04-01 12:01

本文介绍slmgr.vbs文件类型变化导致无法激活Windows系统问题的原因及解决方案。 问题描述 Windows系统中无法运行slmgr.vbs文件,且slmgr.vbs文件类型发生改变,由VBScript改变为VBS,导致无法激活系统。如下图所示,右侧的文件类型为正常情况。

Windows 2008实例更新补丁出现“8000FFFF Windows Update 遇到未知的错误”报错如何处理? 2025-04-01 12:01

本文介绍Windows 2008实例更新补丁出现“8000FFFF Windows Update 遇到未知的错误”报错如何处理。 问题描述 Windows 2008实例更新补丁时出现“8000FFFF Windows Update 遇到未知的错误”报错,如下图所示。

Windows NTFS文件系统中大量小文件导致空间统计异常如何处理? 2025-04-01 12:01

本文介绍Windows NTFS文件系统中存在大量小文件导致空间统计异常的问题原因及解决方案。 大量小于1 KB文件占用空间问题 问题描述 如下图所示,Windows系统中从文件统计看占用磁盘空间1.56 MB,共计409,600个小文件,每个文件包含几个字符,容量大约为几个字节,但磁盘显示使用空间

Windows Server 2008 R2因驱动签名无法验证导致启动失败 2025-04-01 12:01

本文介绍Windows Server 2008 R2系统因无法验证驱动的数字签名导致系统启动失败问题的原因和解决方案。 问题现象 Windows Server 2008 R2系统无法启动,如下图所示,提示无法验证此文件的数字签名。

Windows Server 2008连接VPN出现812错误怎么办? 2025-04-01 12:01

本文介绍Windows Server 2008连接VPN出现812错误的原因及解决方案。 问题描述 连接到VPN连接出错,错误提示代码为812。 问题原因 VPN账号里网络访问权限

目录
Copyright © 2025 your company All Rights Reserved. Powered by 博智数字服务平台.
闽ICP备08105208号-1