分发我的二进制文件并安装依赖项

分发我的二进制文件并安装依赖项

我有一个二进制文件,我想将其分发给我们的用户,并且它的大多数依赖项在构建期间都是静态链接的,但很少有像leveldb这样的依赖项需要安装。这些依赖项是使用apt get install命令安装的。

分发这个的最佳方式是什么?我的想法只是一个简单的 zip 文件存档,其中包含二进制文件,而不是使用 deb 或 docker,因为我觉得这是一种矫枉过正,但我​​如何“自动化”依赖项的安装?也许像这样的 bash 文件run.sh包含apt get install运行二进制文件之前的行,但是如何在安装依赖项之前检查依赖项是否不可用?

答案1

“最佳”方法是针对您的目标操作系统使用正确的打包系统。软件包的全部要点就是准确地执行您所描述的操作。制作 deb 或 rpm 或任何您希望用户安装的东西。

如果您坚持不这样做,那么另一种常见的方法是提供一个 tar.gz 文件(不是 zip!),其中包含二进制文件和一个名为 的脚本configure。这些通常伴随着编译源代码的 Makefile,但在您的情况下,您可以简单地让配置脚本检查依赖项是否存在,并在需要时安装它们。既然你提到了apt get,我假设你只针对 Debian 和 Debian 派生系统,在这种情况下,检查会很容易,因为你只需要dpkg,所以你可以这样做:

dpkg -l | awk '$1=="ii" && $2=="leveldb"' >/dev/null || apt install leveldb

然而,所有这些感觉都是错误的:在基于 Debian 的系统上,用户期望一个 deb 文件,这就是程序的分发方式。

相关内容