构建针对任意 CPU 指令优化的 deb 包,如何将 CPU 指令作为 deb 包的依赖项?该软件包不适合大规模分发,但我不想让人们对崩溃感到困惑,因为他们的 CPU 对于我的构建来说太旧了。
答案1
我不确定dpkg
格式本身是否可以满足您的要求。
然而你能利用预安装脚本。在此您可以测试 CPU 是否处于正确的级别,如果不够好则中止。这样你的包就不会安装。
该脚本是pkg 部分的preinst
一部分;control
你可以在以下位置阅读相关内容: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