我尝试升级 Perl,却把我的电脑搞得一团糟
我目前运行的是 RHEL6.5,64 位,事情是这样的:
- 我安装了 perl-5.10.1,并且运行良好。这是安装好的,
我可以从百胜看到它
- 我想安装 Padre,一个 Perl IDE,但这至少需要 v5.11 [我已经非常接近了! :( ]
- 我可以访问的存储库中没有 Perl 的新版本(并且我有一个限制,无法添加新的存储库)
- 我得到老板的批准从 www.perl.org 下载 perl-5.20 .0 并尝试安装它
...混乱开始了!
- 首先,我使用自己的 id 安装了新的 perl,然后将 perl 推送到我的主目录下的某个位置
- 我使用“perl -v”进行测试,可以看到我的环境指向较新的安装,但是,yum 从未识别过它(不是真正的问题)
- 当我尝试安装 Padre 时,似乎不知何故它硬编码了原始 perl(来自 /usr/bin),并且仍然声称需要更新的版本(如 5.11)。
- 为了修复它,我再次安装了新的perl,现在使用root,使其将perl推送到/usr树下...它安装了,但将perl推送到/usr/local/bin,而不是/usr/bin
- 再次,我又安装了一个 perl,但 Padre 仍在 /usr/bin 上寻找那个
我放弃了 Padre,并删除了与其相关的文件,以及安装在我的主目录中的 perl,但是我现在已经编码的几个 perl 脚本抛出了如下错误:
perl -cw "xmltest.pl" (in directory: /home/myid/scripts/xmltest.pl)
perl: symbol lookup error: /usr/lib64/perl5/auto/Data/Dumper/Dumper.so: undefined symbol: Perl_Istack_sp_ptr
Compilation failed.
...而 Data::Dumper 并不是唯一的一个...每次我禁用其中一个模块时,另一个模块都会以相同或类似的方式挂起
从我读到的内容来看,这个问题似乎与最初为一个 perl 版本安装的模块有关,并被另一个版本调用,但是,我已经强制直接从 CPAN 重新安装我使用的模块,并且它们仍然失败
Question:我怎样才能安全地摆脱当前的 perl 安装,并执行新的全新安装,以便能够在没有这些版本冲突的情况下使用它?
我主要担心的是我拥有的众多依赖 Perl 的应用程序,而且我在卸载时并没有崩溃
任何帮助将不胜感激。
你应该:
-
cleanup
- 清理(注释掉)你的
~/.profile
来自任何不需要的路径等
- 清除您的所有新安装的 Perl
$HOME
(一定要转移到安全的地方)
- 简而言之,尝试返回您的环境进入之前的工作状态
重新登录,(注销,登录)
-
修复你的系统 perl。这意味着,
- 阅读@Sam Varshavchik 的回答
- 使用包管理器 (5.10) 从您的发行版重新安装它。
- 此步骤应该会覆盖您造成的混乱。
- 测试一下!
- 在确保一切正常之前不要继续。
学过的知识:永远不要覆盖你的系统 perl
-
learning
- 通读
perlbrew.pl
- 再次重复上一步,尤其是使用
- 主页
- http://perlbrew.pl/Perlbrew-and-Friends.html http://perlbrew.pl/Perlbrew-and-Friends.html
- https://metacpan.org/pod/App::perlbrew https://metacpan.org/pod/App::perlbrew
- https://metacpan.org/pod/perlbrew https://metacpan.org/pod/perlbrew
-
安装 perlbrew
- 运行安装命令
\wget -O - http://install.perlbrew.pl | bash
- 应该没有错误地完成
- 按照说明如何修改启动文件,例如
~/.profile
或这样的...(您需要在末尾添加一行)
- 检查你的
~/perl5/perlbrew/bin
应包含prelbrew
and patchperl
relog
-
设置新的 perl,运行
-
perlbrew init
#初始化环境
-
perlbrew available
#显示你可以安装什么perl
-
perlbrew install 5.20.0
#将需要几分钟 - 取决于您的系统速度
perlbrew install-cpanm
-
perlbrew list
#查看
-
perlbrew switch perl-5.20.0
#激活新安装的perl 5.20
检查您的安装
- in the
~/perl5/perlbrew/bin
你应该有 3 个脚本:prelbrew
, patchperl
, cpanm
-
perl -v
应该返回 5.20
-
type cpanm
- 应该返回~/perl5/perlbrew/bin/cpanm
你完成了。
- CPAN模块
您可以使用以下命令安装新模块cpanm
, like:
应用
- cpanm cpan 过时的 https://metacpan.org/pod/cpan-outdated
- cpanm App::Ack https://metacpan.org/pod/App::Ack
- cpanm Unicode::争斗 https://metacpan.org/pod/Unicode::Tussle
- cpanm Perl::整洁 https://metacpan.org/pod/Perl::Tidy
- cpanm Perl::评论家 https://metacpan.org/pod/Perl::Critic
收藏品
- cpanm 任务::驼鹿 https://metacpan.org/pod/Task::Moose
- cpanm 任务::普拉克 https://metacpan.org/pod/Task::Plack
- cpanm 任务::Unicode https://metacpan.org/pod/Task::Unicode
modules
- cpanm 路径::小 https://metacpan.org/pod/Path::Tiny
- cpanm 尝试::小 https://metacpan.org/pod/Try::Tiny
- cpanm JSON https://metacpan.org/pod/JSON
- cpanm YAML https://metacpan.org/pod/YAML
- etc...
检查~/perl5/perlbrew/perls/perl-5.20.0/bin/
对于新命令
您将需要更新your ownPerl 脚本的 shebang 行
#!/usr/bin/env perl
我希望不要忘记任何事情,也许其他更有经验的 perl 专家会添加/编辑/更正更多。
无论如何,实际上,步骤 5、6、7 听起来要容易得多(通过阅读本文),并且可以在几分钟内完成。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)