0

我正在尝试为我的工作创建 deb 包,但遇到了以下问题。 deb包构建截图

如屏幕截图所示,正在使用的 dkms 版本是 2.2.1.0。即使使用 dkms 2.8.3 我也试过了,但我得到了同样的错误。

我不确定下一步该做什么或尝试下一步,因为我无法理解。需要一些指导。

正在显示的确切问题如下。有一个以Dh_Lib.pm子例程命名的 Perl 模块should_use_root(),如下所示错误,并且问题已在此处标记。

Building binary package...dpkg-buildpackage: warning: using a gain-root-command while being root
 dpkg-source --before-build .
 fakeroot debian/rules clean
Initialization of state variables in list context currently forbidden at /usr/share/perl5/Debian/Debhelper/Dh_Lib.pm line 2021, near ");"
BEGIN not safe after errors--compilation aborted at /usr/share/perl5/Debian/Debhelper/Dh_Lib.pm line 2743.
Compilation failed in require at /usr/bin/dh_testdir line 11.
BEGIN failed--compilation aborted at /usr/bin/dh_testdir line 11.
make[1]: *** [debian/rules:25: clean] Error 2
dpkg-buildpackage: error: fakeroot debian/rules clean subprocess returned exit status 2
(bad exit status: 2)
Error! There was a problem creating your deb.
make: *** [Makefile.dkms:28: deb] Error 7
root@VEHERE:/home/vehere/Release/probe/deps/PF_RING-7.9.0/kernel#



# Return true if we should use root.
# - Takes an optional keyword; if passed, this will return true if the keyword is listed in R^3 (Rules-Requires-Root)
# - If the optional keyword is omitted or not present in R^3 and R^3 is not 'binary-targets', then returns false
# - Returns true otherwise (i.e. keyword is in R^3 or R^3 is 'binary-targets')

sub should_use_root {
        my ($keyword) = @_;
        my $rrr_env = $ENV{'DEB_RULES_REQUIRES_ROOT'} // 'binary-targets';
        $rrr_env =~ s/^\s++//;
        $rrr_env =~ s/\s++$//;
        return 0 if $rrr_env eq 'no';
        return 1 if $rrr_env eq 'binary-targets';
        return 0 if not defined($keyword);

        state %rrr = map { $_ => 1 } split(' ', $rrr_env);   << ---- issues
        return 1 if exists($rrr{$keyword});
        return 0;
}

正在使用的 perl 版本是 5.24.1

4

0 回答 0