我有源代码,需要创建一个 .deb 包。安装时,它会编译源代码并在安装 deb 软件包时安装生成的二进制文件。
我知道当我们已经有了二进制文件时创建包。
我只是有一个抽象的想法。它与创建 PRE_INSTALL 脚本有关吗?该脚本将编译源代码以提供二进制文件..,稍后将安装?
答案1
可以通过将包指定为“所有”体系结构并使用安装后和预删除脚本(而不是预安装)来实现此目的。 但这是一个非常糟糕的主意。 它破坏了 .deb 文件的许多本来意图。
您需要使您的 .deb 文件依赖于编译器(gcc?)以及您的代码所依赖的任何库的开发包,而不仅仅是库本身。
您将需要创建一个安装后脚本来编译代码,并将二进制文件放在正确的位置。您需要创建一个预删除脚本,以便在删除包时删除所有已安装的二进制文件。
即使在那之后,您仍然会得到一个无法正确告知 dpkg 安装程序所有二进制文件所在位置的软件包。它无法检测您的包裹与其他包裹之间的碰撞。
这是一个非常糟糕的主意,我强烈建议你不要这样做。