我尝试做一些我希望非常简单的事情:用一个修改过的配置选项重新编译现有的内核版本。
我按照此维基页面,这似乎是您在 Ubuntu wiki 上能找到的与编译内核相关的几个页面中最新的页面(有更全面的页面,但它们通常已经过时了五年)。
编译工作正常,我命名了我的内核版本4.4.0-57.78+foo
- 我通过修改debian/changelog
文件来实现这一点,该文件最初有如下第一行:
linux (4.4.0-57.78) xenial; urgency=low
到:
linux (4.4.0-57.78+foo) xenial; urgency=low
我不知道这是否正确,因为文档对这一点没有明确说明(例如,如果我应该代替部分.78
或添加内容)。
这创建了一堆.deb
文件,分别是:
linux-cloud-tools-4.4.0-57_4.4.0-57.78+foo_amd64.deb linux-image-4.4.0-57-generic_4.4.0-57.78+foo_amd64.deb
linux-cloud-tools-4.4.0-57-generic_4.4.0-57.78+foo_amd64.deb linux-image-extra-4.4.0-57-generic_4.4.0-57.78+foo_amd64.deb
linux-cloud-tools-common_4.4.0-57.78+foo_all.deb linux-source-4.4.0_4.4.0-57.78+foo_all.deb
linux-doc_4.4.0-57.78+foo_all.deb linux-tools-4.4.0-57_4.4.0-57.78+foo_amd64.deb
linux-headers-4.4.0-57_4.4.0-57.78+foo_all.deb linux-tools-4.4.0-57-generic_4.4.0-57.78+foo_amd64.deb
linux-headers-4.4.0-57-generic_4.4.0-57.78+foo_amd64.deb linux-tools-common_4.4.0-57.78+foo_all.deb
我使用以下方式安装了它们:
sudo dpkg -i ../linux-*foo*.deb
现在,apt-get
坏了。每个命令(例如,sudo apt-get install <whatever>
抱怨:
The following packages have unmet dependencies:
linux-signed-image-4.4.0-57-generic : Depends: linux-image-4.4.0-57-generic (= 4.4.0-57.78) but 4.4.0-57.78+foo is to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
在这种情况下我该如何满足apt-get
?大多数对此错误消息的引用都是关于损坏的 apt-get 状态,但不清楚它在这里是如何应用的。提到“linux-signed-image*”的消息很有趣 - 在本地构建的内核上,这些模块不可用(也许这些模块用于安全启动场景,显然我无法签署这些模块?)。