我在服务器上安装了 Perl 5.12,但是当我尝试检查正在运行的版本时,它显示的是 5.10。
我之前安装了 5.10,那么如何停用这个旧版本并将 5.12 设为默认版本?我在 Fedora 上运行。
答案1
一般来说,你不是想要删除/卸载系统 perl。这是坏的。
相反,只需将新 perl 的安装路径添加到您的 PATH 中。或者将该 perl 符号链接或硬链接到您的 PATH 中的某个位置。
问题在于您的系统是针对特定级别的 Perl 进行测试的。您所使用的发行版附带的工具可能无法更新以与较新级别的 perl 配合使用。此外,如果您有一个二进制发行版(例如,基于 debian 或 RPM 等的发行版),您可能会从您的发行版安装包含包含 XS(C 代码)的 perl 模块的程序,而 debian/RPM/whatever 不一定能与新版本的 Perl 配合使用(绝对不能跨越 5.8/5.10 界限)。
所以你应该不要管系统 perl。
我所做的是:将 ~/bin 添加到我的 PATH 中,在 /usr/bin 之前,然后在那里将 perl 硬链接到所需的 Perl(我有多个)。然后我可以运行“perl工具如果我想使用我的 perl,或者我可以使用“#!/home/myuser/bin/perl”作为第一行来实现同样的想法。但是,对于通常位于 /usr/bin 或 /usr/sbin 中的系统工具,它们将以“#!/usr/bin/perl”作为第一行,并由该 perl 运行。
不要弄乱你的发行版。如果出现任何问题,你只能靠自己了。
答案2
首先,您需要检查您使用的是新版本的 perl 还是旧版本(在安装新版本之前您是否卸载了旧版本?要执行此操作:
$ whereis perl
perl: /usr/bin/perl /usr/share/man/man1/perl.1.gz
然后你需要检查你的安装介质,看看新版本在哪里安装。如果不是同一个目录,那么你需要更新你的路径,在检查旧版本 perl 的目录之前,先搜索安装新版本 perl 的目录,或者直接卸载旧版本
答案3
如上所述,检查您的路径。运行其中(1)查看它在哪里找到正在执行的 perl 二进制文件:which perl
应该可以解决问题。
而且您不需要卸载旧版本(尽管您可能想这么做):您运行的某些脚本可能需要旧版本。您永远不知道。
确保您的 perl 脚本的第一行是 shebang(命令 shell 使用它来选择要执行的脚本的解释器)。perl 的 shebang 行如下所示:
#!/path/to/desired/instance/of/perl -any -desired -perl -options -here
如果你的 perl 脚本看起来像
#!/usr/bin/perl
您将在该位置安装 perl 二进制文件。