如何为手动安装的5.11.x系列内核实现(半)自动补丁级更新
如何为手动安装的5.11.x系列内核实现(半)自动补丁级更新
刚好我之前也碰到过和你一模一样的情况——手动装了特定版本的主线内核,想跟进同系列的补丁更新又不想每次都手动找包操作。下面分享几个实用的方法,你可以根据自己的需求选:
方法一:利用Mainline工具实现半自动更新
既然你已经用Mainline装了5.11.22,那这个工具本身就能帮你省不少事:
- 打开Mainline图形界面(在应用菜单里搜“Mainline”就能找到),进入设置选项,找到自动检查更新的开关并打开。之后工具会定期扫描主线内核的更新源,一旦5.11系列出了新补丁(比如5.11.23、24),就会弹出提示,你只需要点几下就能完成安装,属于省心的半自动模式。
- 如果偏好命令行操作,可以用Mainline的CLI版本(大部分安装包都带这个),写个简单的定时脚本。先确认命令参数:
mainline --help,找到安装同系列最新补丁的参数(一般是mainline install-latest --series 5.11),然后用crontab -e添加定时任务,比如每天凌晨2点运行:
这样就能自动安装5.11系列的最新补丁了,日志会存在0 2 * * * /usr/bin/mainline install-latest --series 5.11 > /var/log/mainline-kernel-update.log 2>&1/var/log/mainline-kernel-update.log方便排查问题。
方法二:自建本地DEB仓库实现全自动化更新
如果你想要完全交给系统的APT来处理更新,可以自建一个本地内核仓库:
- 先创建一个存放内核包的目录,比如:
sudo mkdir -p /var/local/kernel-repo - 写一个自动下载脚本(比如
/usr/local/bin/update-511-kernel.sh),内容大概是这样(记得替换成你的架构,比如amd64):#!/bin/bash REPO_DIR="/var/local/kernel-repo" SERIES="5.11" ARCH="amd64" # 获取5.11系列最新补丁版本号 LATEST_VERSION=$(curl -s https://kernel.ubuntu.com/~kernel-ppa/mainline/ | grep -E "v${SERIES}\.[0-9]+" | sort -V | tail -n1 | sed 's/.*v\([0-9.]\+\).*/\1/') # 下载对应版本的deb包(镜像、头文件、模块) wget -P $REPO_DIR https://kernel.ubuntu.com/~kernel-ppa/mainline/v${LATEST_VERSION}/linux-image-unsigned-${LATEST_VERSION}-generic_${LATEST_VERSION}-0ubuntu1_${ARCH}.deb wget -P $REPO_DIR https://kernel.ubuntu.com/~kernel-ppa/mainline/v${LATEST_VERSION}/linux-headers-${LATEST_VERSION}-generic_${LATEST_VERSION}-0ubuntu1_${ARCH}.deb wget -P $REPO_DIR https://kernel.ubuntu.com/~kernel-ppa/mainline/v${LATEST_VERSION}/linux-modules-${LATEST_VERSION}-generic_${LATEST_VERSION}-0ubuntu1_${ARCH}.deb # 生成仓库索引 cd $REPO_DIR && dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz - 给脚本加执行权限:
sudo chmod +x /usr/local/bin/update-511-kernel.sh - 添加本地仓库到APT源:在
/etc/apt/sources.list.d/下新建local-kernel-repo.list文件,内容是:deb [trusted=yes] file:///var/local/kernel-repo ./ - 用crontab设置脚本定时运行,比如每天凌晨1点:
之后你只需要定期运行0 1 * * * /usr/local/bin/update-511-kernel.sh > /var/log/local-kernel-update.log 2>&1sudo apt update && sudo apt upgrade,系统就会自动更新到5.11系列的最新补丁版本了。
方法三:第三方PPA(谨慎使用)
有些第三方PPA会持续维护特定系列的主线内核,添加后就能用APT自动更新。但要注意:第三方PPA不受Ubuntu官方维护,存在安全风险,一定要选口碑好、可信的源。如果找不到合适的,还是优先前两种方法更稳妥。
注意事项
- 即使是同系列的补丁更新,偶尔也可能出现驱动兼容性小问题,所以半自动模式(方法一)其实更稳妥,能让你先确认更新内容再安装。
- 记得检查GRUB默认启动项,确保系统会自动选择最新安装的内核:打开
/etc/default/grub,确认GRUB_DEFAULT设置为0(默认选第一个启动项,也就是最新内核),修改后运行sudo update-grub生效。
备注:内容来源于stack exchange,提问作者Joooeey
相关产品推荐
相关产品推荐

