如何创建不包含可用依赖项包的 .deb 包?

如何创建不包含可用依赖项包的 .deb 包?

目前,我正在深入研究 .deb 打包系统。我对此很陌生,所以我想问你一个问题,因为我在其他网站上找不到准确的答案。

假设我想为 创建一个(可分发的).deb 包Software Apbuilder依赖项是libqrencodelibconfiglibABC。对于前两个依赖项,官方 Ubuntu 存储库中已经有包。因此,我只需将这两个库添加到文件中debian/control(并pbuilder完成其余操作)。但是libABC官方存储库中没有 .deb 包,也没有 PPA 等。

例如,我唯一拥有的就是来自 GitHub 的源代码。

所以,我的问题是我应该如何处理这个问题?

  • 我是否必须libABC从系统上的源代码进行编译?但是我如何将其“添加”到pbuilder系统中?
  • 或者我是否还必须libABC先创建另一个 .deb 包?我如何将其“添加”到pbuilder?如果libABC没有现有的 .deb 包,又有依赖项怎么办?
  • 或者这是一种完全不同的方法?

在此先感谢您的帮助!

答案1

您尝试做的事情很可能不会成功,或者需要花费很多精力才能按您希望的方式进行。

pbuilder等均sbuild原始chroot核心,其中包含chroot构建软件所需的某些关键包。问题是,当你将源包传递到其中任何一个时,你最终必须下载依赖项放入chroot,并且解决这个问题的方法很少。

仅有的解决这个问题的方法是进入chroot原始环境,然后手动安装chrootUbuntu 发行版的软件包(是的,chroot您的系统上可以有不同版本的 Ubuntu)。这会成为一个非常令人头痛的问题 - 因为您不仅需要构建软件包的依赖项,还需要依赖项的依赖项,以及为各种库、编码语言、系统确定的额外依赖项等安装的其他软件包。

最终,我不是建议在离线情况下创建可再发行软件包,而无需依赖任何依赖项。使用pbuildersbuild或您选择的基于 chroot 的软件包构建环境,但要使用 Internet 连接。chroot除非您首先chroot在 Internet 连接上修改了,否则不要尝试运行基于 - 的构建,或者使用专门用于构建的系统,该系统可以选择性地通过 Internet 访问 Ubuntu 存储库。

相关内容