You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Aptly无法创建包含指定内核版本的镜像问题求助

Aptly无法创建包含指定内核版本的镜像问题求助

我完全懂你现在的困扰——明明apt-cache能搜到6.2.0-35的内核包,用aptly按当前规则创建镜像却只拿到了5.15系列的版本,问题出在你用的过滤目标不对,咱们来拆解一下:

问题根源

你当前过滤的linux-image-generic和linux-headers-generic是Ubuntu Jammy(22.04)的默认内核元包,它们默认绑定的是Jammy初始发布的5.15.x系列内核。而你要的6.2.x内核属于Jammy的HWE(Hardware Enablement)版本,对应的元包是另一套;而且如果要精准锁定6.2.0-35这个特定版本,直接过滤元包也达不到目的,因为元包会自动指向同系列的最新版本。

解决方案

根据你的需求,有两种调整方式:

方式一:拉取HWE系列内核(适合需要整个6.x分支的情况)

把过滤规则换成HWE对应的元包,这样aptly会拉取Jammy当前的HWE内核及依赖:

export PACKAGE_FILTER="Name (= linux-image-generic-hwe-22.04) | Name (= linux-headers-generic-hwe-22.04)"

之后重新创建并更新镜像即可。不过要注意,这个方式会拉取该HWE分支的最新版本,如果6.2.0-35已经被更新版本替代,你可能需要结合版本过滤来锁定。

方式二:精准指定6.2.0-35的具体包(完全匹配你的需求)

如果明确要linux-image-6.2.0-35-generic和linux-headers-6.2.0-35-generic这两个包,直接把过滤规则改成具体的包名:

export PACKAGE_FILTER="(Name (= linux-image-6.2.0-35-generic)) | (Name (= linux-headers-6.2.0-35-generic))"

搭配你原本的-filter-with-deps参数,aptly会自动拉取这两个包的所有依赖,确保镜像完整性。

额外注意事项

  1. 确认包是否存在于当前仓库:Ubuntu会定期将旧版本的包移至old-releases仓库,如果你用apt-cache show linux-image-6.2.0-35-generic能查到,但aptly拉不到,可能需要把镜像源换成http://old-releases.ubuntu.com/ubuntu/。
  2. 明确仓库组件:创建镜像时可以加上components=main参数(内核包在main组件下),避免组件遗漏:
aptly -filter-with-deps -with-udebs -dep-follow-recommends -dep-follow-all-variants -filter="$PACKAGE_FILTER" -architectures=amd64 mirror create jammy-updates http://archive.ubuntu.com/ubuntu/ jammy-updates main

备注:内容来源于stack exchange,提问作者mvolden

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 10:33:05