我想使用来自 GitHub 的最新源代码编译 nginx(带有自定义库)。但是如果我从 GitHub 下载代码,显然没有“debian”文件夹和内部文件。
因此,当我使用 debuild 命令时:即,debuild clean
我看到错误:
debuild: fatal error at line 629:
cannot find readable debian/changelog anywhere!
Are you in the source code tree?
是否可以自动生成 debian 文件夹中的所有文件?还是我必须手动执行此操作?
答案1
一可以制作一个自动生成简单软件包的系统,但我没有看到。据我所知,所有 Debian 软件包都有手工构建的rules
文件。除此之外,debian
子目录中的大多数文件在各个软件包之间看起来都差不多(但可编写脚本的差异很大)。
值得一提的是,我已经为我的自己的工作,并在源码包中提供相应的脚本,但放在不同的子目录中,以避免与 Debian 的打包程序发生冲突。Debian 不会在源码包中分发他们的构建脚本,因为他们的政策是分发补丁反对原始的(未修改)上游源代码。因此,您唯一能看到两者结合的来源很可能是来自构建自己软件包的开发人员。
您可能能够调整给定 Debian 软件包中的脚本(尽管有些脚本有奇怪的怪癖)。首先,您需要找到软件包脚本。我通常会转到错误报告页面
https://www.debian.org/Bugs/
并且(并非所有软件包的命名都是一致的),搜索该软件包上的错误,例如 nginx在此处输入链接描述。 在那页面,是指向包页面. 其中有指向不同版本软件包的链接,例如,杰西 (稳定), 和以下那链接将带你进入一个页面,该页面(最右侧)有以下链接:
- [nginx_1.6.2.原始版本.tar.gz](原始来源)
- [nginx_1.6.2-5.debian.tar.xz](Debian 脚本)
Debian 的构建系统假设这些部分是单独提供的;对于我自己的构建,我编写了一个脚本,它假设我的脚本位于所提及的不同位置。对于任一解决方案,您可能都需要阅读其他内容。