Perl程序无法加载模块(CentOS 7)

时间:2019-07-18 18:50:37

标签: perl centos7

我在多台机器上安装并使用了程序模块工具,但这次我无法正常工作(CentOS 7)。一个问题是,我必须使用“ perl test.pl”而不是“ test.pl”来调用程序。 更大的问题是该程序无法运行,它会因错误而停止。

https://github.com/OTRS/module-tools

[root@localhost bin]# sudo -u otrs perl otrs.ModuleTools.pl Module::File::Link
Could not require Console::Command::List:
Attempt to reload Console/BaseCommand.pm aborted.
Compilation failed in require at /usr/share/perl5/vendor_perl/parent.pm line 20.
BEGIN failed--compilation aborted at /opt/module-tools/lib/Console/Command/List.pm line 16.
Compilation failed in require at /opt/module-tools/lib/System.pm line 60.

有人有想法吗?

编辑:我用cpanm安装了依赖项。 看起来该程序还以root用户身份运行。它不应该以root用户身份运行,因此会因错误而关闭,但会加载无法以其他用户身份运行的文件

Edit2: 当我运行“ perl -V”时,结果会有所不同。 根:

Built under linux
  Compiled at Jan 21 2019 22:09:19
  %ENV:
    PERL5LIB="/root/perl5/lib/perl5"
    PERL_LOCAL_LIB_ROOT="/root/perl5"
    PERL_MB_OPT="--install_base "/root/perl5""
    PERL_MM_OPT="INSTALL_BASE=/root/perl5"
  @INC:
    /root/perl5/lib/perl5/5.16.3/x86_64-linux-thread-multi
    /root/perl5/lib/perl5/5.16.3
    /root/perl5/lib/perl5/x86_64-linux-thread-multi
    /root/perl5/lib/perl5
    /usr/local/lib64/perl5
    /usr/local/share/perl5
    /usr/lib64/perl5/vendor_perl
    /usr/share/perl5/vendor_perl
    /usr/lib64/perl5
    /usr/share/perl5

其他用户:

Built under linux
  Compiled at Jan 21 2019 22:09:19
  @INC:
    /usr/local/lib64/perl5
    /usr/local/share/perl5
    /usr/lib64/perl5/vendor_perl
    /usr/share/perl5/vendor_perl
    /usr/lib64/perl5
    /usr/share/perl5
    .

这可能与这有关吗?输出中的所有其他内容都是相同的。

已解决!: 我再次安装了整个虚拟机,这次我用

安装了cpanm
sudo yum install "perl(App::cpanminus)"

我不记得我以前是怎么做的,但是上一次我不得不给cpanm设置一些设置,然后一次选择“ local :: lib”而不是“ sudo”。我猜我应该选择“ sudo”。但是,现在开始变态了,谢谢

1 个答案:

答案 0 :(得分:0)

从cpanfile安装依赖项。如果您的服务器上有cpanm,则可以通过以下方式进行操作:

cd ./module-tools
cpanm -l ./deps --installdeps .
perl -I ./deps/lib/perl5/ ./bin/otrs.ModuleTools.pl

我们可以强制cpanm使用-l标志将所有依赖项安装到selects目录中,然后,我们向解释器显示-I ./deps/lib/perl5/的所有依赖项在哪里