Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用perlbrew切换到系统Perl_Perl_Perlbrew - Fatal编程技术网

使用perlbrew切换到系统Perl

使用perlbrew切换到系统Perl,perl,perlbrew,Perl,Perlbrew,首先是一些背景 perlbrew是一种帮助将Perl安装到非标准目录(通常在主目录下)的工具 它还帮助您控制在交互式shell中执行Perl时使用的Perl安装。使用perlbrew-use和perlbrew-switch在安装之间切换perlbrew use仅影响当前shell,而perlbrew开关更持久 $ perl -V:version | $ perl -V:version version='5.20.0'; | version='5

首先是一些背景

perlbrew
是一种帮助将Perl安装到非标准目录(通常在主目录下)的工具

它还帮助您控制在交互式shell中执行
Perl
时使用的Perl安装。使用
perlbrew-use
perlbrew-switch
在安装之间切换
perlbrew use
仅影响当前shell,而
perlbrew开关
更持久

$ perl -V:version             |  $ perl -V:version
version='5.20.0';             |  version='5.20.0';
                              |
$ perlbrew use 5.18.2t        |  $ perlbrew switch 5.18.2t
                              |
$ perl -V:version             |  $ perl -V:version
version='5.18.2';             |  version='5.18.2';
                              |
$ bash -ic 'perl -V:version'  |  $ bash -ic 'perl -V:version'
version='5.20.0';             |  version='5.18.2';

perlbrew off
用于恢复使用系统Perl,但它是临时的,就像
perlbrew use
。有没有办法通过永久性的
perlbrew开关
恢复到系统Perl?

perlbrew
管理
Perl
未安装的
Perl
的安装,选择一个名称(在我的示例中是
system
),并创建一个指向其
bin
目录的链接,如下所示:

cd "${PERLBREW_ROOT:-$HOME/perl5/perlbrew}"
mkdir perls/system
ln -s /usr/bin perls/system/bin
它现在将出现在
perlbrew列表中

$ perlbrew list
  ...
  system (5.10.1)
  5.18.2t
* 5.20.0t
  ...
您将能够使用
perlbrew use
perlbrew开关

$ perl -V:version
version='5.20.0';

$ perlbrew switch system

$ perl -V:version
version='5.10.1';

$ bash -ic 'perl -V:version'
version='5.10.1';
这对于具有相同的
installbin
installvendorbin
(如果适用)和
installsitebin
目录的安装效果最好,这些目录由返回

perl -V:'install.*bin'

顺便说一下,可以使用类似的方法为
perlbrew
安装创建别名。比如说,

 ln -s 5.26.1 perls/5.26           # Point to the latest release of a version.
 ln -s 5.26.1 perls/project_name   # Point to the install used by a project.

您可以使用以下命令

perlbrew switch-off

哇,你回答自己的问题真的很快:)@jh314,这是一个很好的功能。当你问一个问题时,有一个复选框标记为“回答你自己的问题”。如果您选中该选项,则会出现一个答案表单。问题和答案同时提交。酷,我没看到!所以你问什么时候知道答案?@jh314 So的目的是建立一个有用问题和答案的数据库。用这种方法分享自己学到的东西同样有用,是的。特别是如果这是一个非常具体的问题,因此很容易搜索。我按照这些说明,在运行
perlbrew switch system
之后,我得到了:“一个子外壳启动,系统作为激活的perl。运行'exit'来完成它。”这似乎不是永久性的…@Marcus,您有一个安装不正确的
perlbrew
。看啊,不错。谢谢@ikegami。
关闭
并不总是
perlbrew
的一部分,但现在这显然是更好的解决方案:)另一个答案所使用的技术对于集成
perlbrew
未安装的其他
perl
构建仍然很有价值。