我在多台机器上安装并使用了程序模块工具,但这次我无法正常工作(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
.
这可能与这有关吗?输出中的所有其他内容都是相同的。
已解决!: 我再次安装了整个虚拟机,这次我用
安装了cpanmsudo yum install "perl(App::cpanminus)"
我不记得我以前是怎么做的,但是上一次我不得不给cpanm设置一些设置,然后一次选择“ local :: lib”而不是“ sudo”。我猜我应该选择“ sudo”。但是,现在开始变态了,谢谢
答案 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/
的所有依赖项在哪里