如何将PERLBREW_ROOT移动到另一个目录?

xvw2m8pv  于 2022-11-15  发布在  Perl
关注(0)|答案(1)|浏览(122)

我使用perlbrew来管理我的Perl环境。当我第一次按照文档安装perlbrew时,它将所有内容都安装到~/perl5/perlbrew,我现在发现这是不可取的。
该文件规定:
目录~/perl 5/perlbrew将包含所有安装perl的可执行文件、库、文档、lib、site_libs。在文档中,该目录被称为“perlbrew根目录”。如果您需要将其设置为其他位置,例如,您的HOME有限制的配额,您可以通过在运行安装程序之前设置PERLBREW_ROOT环境变量来实现:

export PERLBREW_ROOT=/opt/perl5/perlbrew
curl -kL http://install.perlbrew.pl | bash

**问题:**如何将PERLBREW_ROOT目录移动到/opt/perl5/perlbrew而不是~/perl5/perlbrew

wztqucjr

wztqucjr1#

不幸的是,您不能简单地移动已安装的Perl。对于初学者,添加到@INC的路径是硬编码的。我向您介绍了四种解决方案,其中我推荐第三种。
但是首先,我建议使用/opt/perlbrew而不是/opt/perl5/perlbrew,因为不需要额外的级别。
1.从头开始,重新安装您拥有的任何perl版本。
缺点:对于每个版本,你还必须重新安装该版本已经安装的所有模块。这意味着你需要重新测试所有的应用程序。这很耗时,也不是没有风险。
1.移动perlbrew目录,但尝试修复安装。
按照以下步骤移动装置:

mv ~/perl5/perlbrew /opt/
# 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(#!)行。
缺点:大量的工作(虽然没有第一种选择那么多),脆弱,而且不能保证工作。
1.在/opt/perlbrew中创建将来的构建,但保留现有构建。
/opt/perlbrew中安装perlbrew后,运行以下命令:

cd /opt/perlbrew/perls
for q in ~/perl5/perlbrew/perls/* ; do
   ln -s "$q"
done

优点:超级简单快捷。随着时间的推移,你可以逐步淘汰你的~/perl5/perlbrew(通过删除不需要的构建,通过按照选项1替换它们,或者通过按照选项2移动它们)。
缺点:每个应该访问/opt/perlbrew的人也需要访问你的~/perl5/perlbrew
1.不要更改PERLBREW_ROOT,只需将/opt/perlbrew设置为符号链接即可。

ln -s ~/perl5/perlbrew /opt/perlbrew

亲:超级简单快捷。
缺点:每个应该访问/opt/perlbrew的人也需要访问你的~/perl5/perlbrew

相关问题