我收到了一个 Perl 脚本,该脚本无法运行,因为 Perl 的路径已被删除。我如何修改路径,以便将其指向 /opt/perl/lib/5.28.2 任何帮助将不胜感激。预先非常感谢。
[root@server1 ~]# perl -V
Can't locate Config.pm in @INC (you may need to install the Config module) (@INC contains: /xyz/perl/lib/site_perl/5.28.2/x86_64-linux /xyz/perl/lib/site_perl/5.28.2 /xyz/perl/lib/5.28.2/x86_64-linux /xyz/perl/lib/5.28.2).
BEGIN failed--compilation aborted.
[root@server1 ~]# perl -e "print \"@INC\""\
/xyz/perl/lib/site_perl/5.28.2/x86_64-linux /xyz/perl/lib/site_perl/5.28.2 /xyz/perl/lib/5.28.2/x86_64-linux /xyz/perl/lib/5.28.2
[root@server1 ~]#
[root@server1 ~]# yum install perl
Loaded plugins: langpacks, ulninfo\
Package 4:perl-5.16.3-299.el7_9.x86_64 already installed and latest version\
Nothing to do\
[root@server1 ~]# whereis perl
perl: /usr/bin/perl /opt/perl/bin/perl /usr/share/man/man1/perl.1.gz
[root@server1 ~]#
答案1
如果您想采用干净安装路线,请先卸载:
# yam remove perl
# yam install perl
对于单个模块,您将需要进行升级(尽管不适用于 Config.pm,因为它描述了 perl 本身和基础包的一部分)。但有时对于其他库很有用:
# cpan
> upgrade SomeModule
如果您无法做到这一点,您可以使用 PERLLIB 环境变量。找到缺少的 .pm 所在位置,并将该路径添加到 PERLLIB 中:
# export PERLLIB=/somepath:$PERLIB
您需要将该行添加到您自己的或全局配置文件中。
如果您只需要执行某个单个脚本,您可以修改它:
#!/usr/bin/perl
use lib '/somepath'; # now this path is in @INC and modules from it can be used