我尝试将 dkms 安装到没有 make 或 gcc 的计算机上。 我打算只将二进制文件推送到那些目标计算机。
在我的构建计算机上,我计划使用 dkms 构建 dkms 启用的模块,然后使用dkms mktarball ... --binaries-only
创建tarball以进行分发。
我想将这些tarball推送到目标机器,并在那些机器上我
想使用dkms ldtarball
,所以目标机器确实需要 dkms ,
但他们不需要 gcc (或 make )。
apt-get install dkms
会自动引入 gcc apt-get download dkms
)并使用dpkg --install --ignore-depends=gcc ... dkms.deb
进行安装
确实有效,但是依赖关系没有得到解决,因此任何未来的 apt-get (例如安装其他一些包)都会失败。在dkms README(第3节)中有关于此的说明,但没有关于如何完成它的指导。 "如果您选择不在系统上加载模块源,或者您选择不加载模块源 编译器...... DKMS仍可用于安装模块。"。
(对不起,如果标签有误导性...... dkms 没有可用的标签)
答案 0 :(得分:0)
创建一个本地虚拟包,假装安装gcc以及您想要阻止系统的任何其他deps。 equivs
包可以用于此,但它也很简单,也可以手工完成。
答案 1 :(得分:0)
非常感谢Darik Horn的出色(离线)答案。
他建议使用/etc/apt/preferences.d来 pin 不需要的软件包。该解决方案看起来很有希望,我将进一步探讨(并在可能的情况下发布结果)。
我能够找到另一个解决方案Ubuntu Forums和Superuser看起来很有希望。
脚本执行的步骤可以手动完成,基本上就是这样: