我在/clusterhome/myperl
的群集驱动器上安装了perl,并在/clusterhome
/home/chris/cluster
目录
运行perl显然可以从群集中正常工作,但是当我从工作站运行/home/chris/cluster/myperl/bin/perl
时,它找不到任何模块。 @INC
仍设置为
/clusterhome/myperl/lib/site_perl/5.16.3/x86_64-linux
/clusterhome/myperl/lib/site_perl/5.16.3
/clusterhome/myperl/lib/5.16.3/x86_64-linux
/clusterhome/myperl/lib/5.16.3
即使在工作站上预先添加了以下环境变量值,也会发生这种情况:
PATH /home/chris/cluster/myperl/bin
PERL5LIB /home/chris/cluster/myperl/lib
LD_LIBRARY_PATH /home/chris/cluster/myperl/lib
MANPATH /home/chris/cluster/myperl/man
有没有办法让这个perl能够在群集和工作站上工作?我经常(每晚)重新安装它,所以如果需要额外的制造标志,那就完全没问了。
答案 0 :(得分:3)
确切的安装位置(在哪里查看模块包含)被编译到perl的二进制文件中。安装目录名称还有其他用途(例如,在编译新模块时,会从这些编译的字符串中提供一堆编译选项)。
因此,您有以下选择:
确保文件在设计目录中的每台计算机上都可用(符号链接:ln -s
,绑定挂载:mount -o bind
,或者预先安装在那里),
为每个新位置编译一个新的perl。
您也可以忽略此编译目录,并指定每次要通过某个命令行或环境变量使用perl时要使用的目录。对于@INC
,您可以使用命令行选项-Idirectory
。