dpkg-buildpackage未识别的选项:`-runstedir =/run'

发布于 2025-02-07 23:56:46 字数 1682 浏览 0 评论 0 原文

我想从Source构建Debian的VIM软件包,并且在运行命令 dpkg-buildpackage -rfakeroot 时,我会遇到此

   dh_clean
 dpkg-source -b .
dpkg-source: info: using source format '3.0 (quilt)'
dpkg-source: info: building vim using existing ./vim_8.2.5106.orig.tar.gz
dpkg-source: info: using patch list from debian/patches/series
dpkg-source: warning: newly created empty file 'src/auto/config.h' will not be represented in diff
dpkg-source: info: building vim in vim_8.2.5106-1.debian.tar.xz
dpkg-source: info: building vim in vim_8.2.5106-1.dsc
 debian/rules build
dh build
   dh_update_autotools_config
   dh_autoreconf
   dh_auto_configure
        ./configure --build=i686-linux-gnu --prefix=/usr --includedir=\${prefix}/include --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=\${prefix}/lib/i386-linux-gnu --libexecdir=\${prefix}/lib/i386-linux-gnu --runstatedir=/run --disable-maintainer-mode --disable-dependency-tracking
configure: error: unrecognized option: `--runstatedir=/run'
Try `auto/configure --help' for more information
dh_auto_configure: ./configure --build=i686-linux-gnu --prefix=/usr --includedir=\${prefix}/include --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=\${prefix}/lib/i386-linux-gnu --libexecdir=\${prefix}/lib/i386-linux-gnu --runstatedir=/run --disable-maintainer-mode --disable-dependency-tracking returned exit code 1
make: *** [debian/rules:18: build] Error 2
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2

错误=/运行'未被认可。我该如何解决这个问题?

I wanted to build vim package for debian from source and I'm getting this error when running command dpkg-buildpackage -rfakeroot

   dh_clean
 dpkg-source -b .
dpkg-source: info: using source format '3.0 (quilt)'
dpkg-source: info: building vim using existing ./vim_8.2.5106.orig.tar.gz
dpkg-source: info: using patch list from debian/patches/series
dpkg-source: warning: newly created empty file 'src/auto/config.h' will not be represented in diff
dpkg-source: info: building vim in vim_8.2.5106-1.debian.tar.xz
dpkg-source: info: building vim in vim_8.2.5106-1.dsc
 debian/rules build
dh build
   dh_update_autotools_config
   dh_autoreconf
   dh_auto_configure
        ./configure --build=i686-linux-gnu --prefix=/usr --includedir=\${prefix}/include --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=\${prefix}/lib/i386-linux-gnu --libexecdir=\${prefix}/lib/i386-linux-gnu --runstatedir=/run --disable-maintainer-mode --disable-dependency-tracking
configure: error: unrecognized option: `--runstatedir=/run'
Try `auto/configure --help' for more information
dh_auto_configure: ./configure --build=i686-linux-gnu --prefix=/usr --includedir=\${prefix}/include --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=\${prefix}/lib/i386-linux-gnu --libexecdir=\${prefix}/lib/i386-linux-gnu --runstatedir=/run --disable-maintainer-mode --disable-dependency-tracking returned exit code 1
make: *** [debian/rules:18: build] Error 2
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2

If i understand this correctly the problem is in a flag `--runstatedir=/run' that is unrecognized. How can i solve this issue?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

陌上芳菲 2025-02-14 23:56:46

在继续之前,您是否正确安装了所有构建依赖性?

看看:

在并行中,您还可以启动命令 dpkg -depcheck -d ./configure 找到一些丢失的软件包。

VIM软件包定期更新,最后一个提交是2W前的,因此我非常惊讶它不会编译。

请看一下: https://salsa.debian.org/vim/vim-team/vim-team/vim-team/vim

Before continuing have you installed properly all build dependencies ?

Have a look at : https://www.debian.org/doc/manuals/maint-guide/dreq.en.html#control and more especially at the Build-Depends section.

In parallel you can also launch the command dpkg-depcheck -d ./configure to find some missing packages.

Vim package is regularly updated and last commit was 2w ago so I would be very astonished that it won’t compile.

Have a look at: https://salsa.debian.org/vim-team/vim

菊凝晚露 2025-02-14 23:56:46

我想您是从Debian来源的vim来源的较新的分发到较旧的发行版。

然后是由debhelper-> dh_auto_configure 添加此参数引起的。 dh_auto_configure 运行< source_dir>/configure 带有此参数。 < source_dir>/configure 是由 autoconf 生成的,在这种情况下,可能DebHelper-> autoreconf autoreconf ,它调用 autoreconf /code> - > autoconf 生成< source_dir>/configure 。如果 autoconf 的版本还不够最新,则生成的< source_dir>/configure lack -runstatedir =/run run 支持,因此您会看到此日志:

   dh_autoreconf
   dh_auto_configure
        ./configure --build=i686-linux-gnu --prefix=/usr --includedir=\${prefix}/include --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=\${prefix}/lib/i386-linux-gnu --libexecdir=\${prefix}/lib/i386-linux-gnu --runstatedir=/run --disable-maintainer-mode --disable-dependency-tracking
configure: error: unrecognized option: `--runstatedir=/run'

要解决它,您可以升级 autoconf 软件包版本,但是显然,这不是您一直想做的(您可能必须返回很多依赖项) 。因此,只是不要让 dh_auto_configure 传递此参数:
您可以在/usr/share/perl5/debian/debhelper/buildsystem/autoconf.pm 中看到此PERL代码:

        push @opts, "--runstatedir=/run" if not compat(10);

因此,将其值降低到 10 ,然后再次构建,现在 dh_auto_configure 绝不应该尝试通过 -runstatedir =/run 在调用&lt时;

I suppose you're backporting vim from debian source of a newer distribution to an older distribution.

Then it's caused by debhelper->dh_auto_configure adding this parameter. dh_auto_configure runs <source_dir>/configure with this parameter. <source_dir>/configure is generated by autoconf, in such case, likely debhelper->autoreconf, which calls autoreconf->autoconf to generate <source_dir>/configure. In case the version of autoconf is not up-to-date enough, the generated <source_dir>/configure lacks --runstatedir=/run support, and hence you see this log:

   dh_autoreconf
   dh_auto_configure
        ./configure --build=i686-linux-gnu --prefix=/usr --includedir=\${prefix}/include --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-silent-rules --libdir=\${prefix}/lib/i386-linux-gnu --libexecdir=\${prefix}/lib/i386-linux-gnu --runstatedir=/run --disable-maintainer-mode --disable-dependency-tracking
configure: error: unrecognized option: `--runstatedir=/run'

To solve it, you can upgrade your autoconf package version, but obviously that's not what you always want to do (you may have to backport a lot of dependencies). So instead, just don't let dh_auto_configure pass this argument:
You can see this perl code in /usr/share/perl5/Debian/Debhelper/Buildsystem/autoconf.pm:

        push @opts, "--runstatedir=/run" if not compat(10);

So just modify debian/compat in extracted debian source of vim, lower its value to 10, and build again, now dh_auto_configure should never try passing --runstatedir=/run when calling <source_dir>/configure any more.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文