【问题标题】:debian/rules:161: recipe for target 'config.status' faileddebian/rules:161: 目标“config.status”的配方失败
【发布时间】:2023-03-31 07:43:01
【问题描述】:

我最初是几天前在 askubuntu @ 上发布的 https://askubuntu.com/questions/1044708/debian-rules161-recipe-for-target-config-status-failed

很遗憾,我没有收到任何回复。因此寻找一些 StackOverflow 的帮助。

我正在尝试为collect-pw 构建一个deb 包。上游的焦油球是: http://perfwatcher.free.fr/download/collectd/collectd-5.4.0.20150311.tar.gz

为了构建这个包,我从 ubuntu repo 中提取了 collectd 的源包,并修改了 debian/controldebian/changelog 下的包名称。

现在,当我运行 pdebuild(或 debuild)时,它会失败并出现以下错误:

configure: exit 1
debian/rules:161: recipe for target 'config.status' failed
make: *** [config.status] Error 1
dpkg-buildpackage: error: debian/rules build gave error exit status 2

我无法弄清楚这里出了什么问题。该错误是一般错误。 如果我运行./configuremake,那么构建就可以了。

这里是来自debian/rules的相关行

160 config.status: configure
161         dh_testdir
162
163         PKG_CONFIG_PATH="$(CURDIR)/debian/pkgconfig:$$PKG_CONFIG_PATH" \
164         ./configure $(confflags) CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
165                 JAVAC="$(JAVAC)" JAR="$(JAR)" JAVA_CPPFLAGS="$(JAVA_CPPFLAGS)" \
166                 JAVA_LDFLAGS="$(JAVA_LDFLAGS)" \
167                 || ( status=$$?; cat config.log; exit $$status )

您能否提供有关此处可能出现问题的任何指示?或者 任何让它提供详细错误的建议都会有所帮助,因为 configure: exit 1 并没有提供太多可以采取行动的洞察力。

顺便说一句,我在debian/rules 中启用了export DH_VERBOSE=1

更新:

正如@GiacomoCatenazzi 所建议的:

  • 是的,我可以成功运行dh_testdir
  • 我将makedebian/rules 作为makefile 运行,并将详细启用为make -d -f debian/rules。这一次它在相同的config.status 步骤上再次失败,并添加了 2 条我无法理解的调试行。

这是上面make命令的最后几行输出:

...
...
...
#define HAVE_PLUGIN_VSERVER 1
#define HAVE_PLUGIN_WIRELESS 1
#define HAVE_PLUGIN_WRITE_GRAPHITE 1

configure: exit 1
Reaping losing child 0x1a103d0 PID 27476
debian/rules:161: recipe for target 'config.status' failed
make: *** [config.status] Error 1
Removing child 0x1a103d0 PID 27476 from chain.
  • 运行后,它创建了config.log,它有大约 30k 行。

日志最后几行如下:

29303 #define HAVE_PLUGIN_WIRELESS 1
29304 #define HAVE_PLUGIN_WRITE_GRAPHITE 1
29305
29306 configure: exit 1

这里也没有有用的信息:(

更新:

根据@Stephen Kitt 的建议,完整的config.log 可在此处获得:http://pasted.co/3767a043

【问题讨论】:

  • dh_testdir 的状态是什么?您能否使用 debian/rules 作为 Makefile 和 config.status 作为目标并使用详细标志运行 make。
  • 你能把完整的config.log贴在某个地方吗?它有错误的原因,但很难找到。
  • 感谢您的宝贵时间@Stephen。我已将config.log 添加到线程中。
  • exit 1 看起来像是故意返回错误,而当您以交互方式运行它时您只是没有注意到,因为当您以交互方式运行某些东西时通常不会查看它的退出代码.
  • 您能尝试再次使用pdebuild 构建并发布构建日志吗?它存储在源目录的父目录中扩展名为.build 的文件中。

标签: ubuntu debian configure dpkg


【解决方案1】:

配置失败,原因如下:

configure:59894: error: "Some plugins are missing dependencies - see the summary above for details"

摘要不包含在日志中,但应该已输出到您的终端。

你需要安装一些包来满足collect-pw的构建依赖。

您发布的日志文件,我认为来自您使用debian/rules 的直接尝试,表明缺少许多依赖项,其中至少有一些在debian/control 中列出,将由pdebuild 安装(pkg-configlibyajl-dev 等)。由于pdebuild 的构建也失败了,我猜collect-pw 的依赖项没有在collectddebian/control 中列出;您应该调查缺少的构建依赖项并将它们添加到debian/control(如果您想在本地构建,请在本地安装它们)。

【讨论】:

  • 这个信息给了我一些看和尝试的东西。当我得到它时,我会发布我的结果。谢谢。
  • 已经超过 5 天(从这个帖子开始,总共 2 周),我仍在努力解决缺少依赖项的问题。我尝试自定义configure,禁用插件......以及我能想到的许多其他事情(通过对代码进行逆向工程)。我在这方面花费了不必要的时间,因此放弃了。我非常感谢您的意见,因为它帮助我探索了 gnu automakeautoconf 的工作原理,并在此过程中学到了很多理论。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-14
  • 1970-01-01
  • 1970-01-01
  • 2021-08-17
  • 2018-11-24
  • 1970-01-01
相关资源
最近更新 更多