有没有办法以编程方式查询 Ubuntu 20.04 的最新内核版本 - 例如 5.4.0-88、5.4.0-91、5.4.0-92 等,也许查询某种 URL?
我需要构建一个自动化流程,将驱动程序重建为特定内核版本。通常,DKMS 会处理此问题,但该驱动程序适用于具有安全限制的服务器,无法在其上安装构建工具。它也无法联系互联网上的服务器,补丁是从本地服务器应用的。
构建过程将查询最新的 5.4.0-x 内核,如果有尚未安装标头的新内核,则安装适当的标头包,然后根据这些标头重建驱动程序。
谢谢你的帮助
答案1
这是我想出的一个相当粗略的解决方案。它本质上是通过读取 apt 存储库的 Packages 文件linux-image-generic
来获取软件包信息focal-updates
。然后提取软件包版本,如果这是您需要的格式,则将版本提取到依赖项名称中。
curl -s http://us.archive.ubuntu.com/ubuntu/dists/focal-updates/main/binary-amd64/Packages.gz | zcat | sed -n -e '/^Package: linux-image-generic$/,/^$/p' | sed -n -e '/^Depends:/s/^.*linux-image-\([-.0-9]*\)-.*/\1/p' -e '/^Version:/s/^Version: //p'
以下是实际执行的命令
$ curl -s http://us.archive.ubuntu.com/ubuntu/dists/focal-updates/main/binary-amd64/Packages.gz | zcat | sed -n -e '/^Package: linux-image-generic$/,/^$/p' | sed -n -e '/^Depends:/s/^.*linux-image-\([-.0-9]*\)-.*/\1/p' -e '/^Version:/s/^Version: //p'
5.4.0.92.96
5.4.0-92