我使用perlbrew
来管理我的Perl环境。
当我第一次根据文档安装perlbrew
时,它将所有内容安装到~/perl5/perlbrew
,我现在认为这是不合需要的。
文档说明:
目录〜/ perl5 / perlbrew将包含所有安装perl可执行文件,库,文档,lib,site_libs。在文档中,该目录称为" perlbrew root"。如果您需要将其设置到其他位置,因为您的HOME配额有限,您可以通过在运行安装程序之前设置PERLBREW_ROOT环境变量来实现:
export PERLBREW_ROOT=/opt/perl5/perlbrew curl -kL http://install.perlbrew.pl | bash
问题:如何将PERLBREW_ROOT
目录移至/opt/perl5/perlbrew
而不是~/perl5/perlbrew
?
答案 0 :(得分:7)
不幸的是,你不能简单地移动已安装的Perl。对于初学者,添加到@INC
的路径是硬编码的。我向您介绍了四种解决方案,其中我推荐第三种解决方案。
但首先,我建议使用/opt/perlbrew
代替/opt/perl5/perlbrew
,因为不需要额外的级别。下面的代码片段假设您遵循了此建议。
从头开始,重新安装您拥有的任何版本的perl
。
Con:对于每个构建,您还必须重新安装构建已安装的所有模块。这意味着您需要重新测试所有应用程序。这非常耗时,而且没有风险。
移动perlbrew
目录,但尝试修复安装。
如果~
和/opt
位于同一文件系统上,请按以下步骤移动安装:
mv ~/perl5/perlbrew /opt/
# Adjust file ownership and permissions as desired.
如果~
和/opt
位于不同的文件系统上,请按以下步骤移动安装:
( cd ~/perl5 ; tar c perlbrew ) | ( cd /opt ; tar x )
# Adjust file ownership and permissions as desired.
然后,编辑由以下内容打印的每个文件中的路径:
for q in /opt/perlbrew/perls/* ; do
"$q/bin/perl" -le'
use Config;
require "Config_heavy.pl";
print $INC{"Config.pm"};
print $INC{"Config_heavy.pl"};
'
done
您还需要编辑许多脚本的shebang(#!
)行。
Con:很多工作(尽管不如第一个选项差不多),脆弱,并且不能保证工作。
在/opt/perlbrew
中创建未来版本,但保留现有版本。
在perlbrew
中安装/opt/perlbrew
后,请运行以下命令:
cd /opt/perlbrew/perls
for q in ~/perl5/perlbrew/perls/* ; do
ln -s "$q"
done
亲:超级简单快捷。随着时间的推移,您可以逐步淘汰~/perl5/perlbrew
(通过删除不需要的构建,按照选项1替换它们,或按照选项2移动它们)。
骗局:应该有权访问/opt/perlbrew
的每个人都需要访问您的~/perl5/perlbrew
。
请勿更改PERLBREW_ROOT
。只需将/opt/perlbrew
设为符号链接。
ln -s ~/perl5/perlbrew /opt/perlbrew
亲:超级简单快捷。
骗局:应该有权访问/opt/perlbrew
的每个人都需要访问您的~/perl5/perlbrew
。