如何将硬件依赖放在 .deb 包上?

Zul*_*rib 4 cpu-architecture deb

构建针对任意 CPU 指令优化的 deb 包,如何将 CPU 指令作为对 deb 包的依赖?该软件包不适合大规模分发,但我不想让人们与崩溃混淆,因为他们的 CPU 对我的构建来说太旧了。

Ste*_*ris 6

我不确定dpkg格式本身是否可以满足您的要求。

但是,您可以使用预安装脚本。在这里,您可以测试 CPU 是否处于正确级别,如果不够好则中止。这样你的包就不会安装。

preinst脚本是controlpkg 部分的一部分;你可以在https://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics.en.html阅读它

这些有时称为预安装健全性脚本。如果它们以非零退出代码结尾,则软件包安装失败。

您的preinst脚本可以很简单

#!/bin/sh
set -e

flags=`grep ^flags /proc/cpuinfo | head -1`

if [ -z "`echo $flags | grep sse4`" ]
then
  echo Can only run on machines with SSE4 instructions.  Install failed
  exit 1
fi

exit 0
Run Code Online (Sandbox Code Playgroud)