I tried to upgrade Perl and put my computer into a complete mess I am currently running RHEL6.5, 64bits, and this is the thing:
- I had perl-5.10.1 installed, and working nice. this came installed, and I could see it from yum
- I wanted to install Padre, an Perl IDE, but that required at least v5.11 [I was so close! :( ]
- There were no newer version for Perl in the repos that I have access to (and I have a limitation that I can't add new repos)
- I got approval from my boss to download perl-5.20 .0 from www.perl.org and tried to install it
... and the mess begins!
- First I installed the new perl with my own id, and that pushed perl to somewhere under my home dir
- I tested with 'perl -v' and could see that my env was pointing to the newer install, however, yum never recognized it (not really a problem)
- When I tried to install Padre, seems somehow it had the hardcoded the original perl (from /usr/bin) and still claiming for something as newer as 5.11.
- Trying to fix it, I did installed the new perl again, now using root, to make it push perl under /usr tree ... it installed, but pushed perl to /usr/local/bin, instead of /usr/bin
- So again, I had one more perl install but Padre still looking for the one on /usr/bin
I give up about Padre, and deleted the files related to it, as well as the perl installed on my home dir, however a couple of perl scripts that I had already coded now are throwing errors like:
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.
... and Data::Dumper in not the only one ... every time I disable one of the modules, another one hangs in the same, or similar way
From what I read about this, seems that this issue is related to modules that were originally installed for one perl version, and are being called by another, however, I already forced the modules that I use to be reinstalled directly from CPAN, and they still failing
Question: How can I, safely, get free from this current perl installs, and perform a new clean install be able to use it w/o these versions conflicts?
My major concern are about the numerous apps that I have that depends on Perl, and I my not broke then on a uninstall
Any help will be much appreciate.
You should:
cleanup
~/.profile
from any unwanted paths, and so on$HOME
(move to safe place for sure)relog, (logout, login)
repair your system perl. Thats mean,
Lesson learned: never overwrite your system perl
learning
perlbrew.pl
installing perlbrew
\wget -O - http://install.perlbrew.pl | bash
~/.profile
or such... (you need to add one line to the end)~/perl5/perlbrew/bin
should containprelbrew
andpatchperl
relog
setup new perl, run
perlbrew init
#init environmentperlbrew available
#show what perl you can installperlbrew install 5.20.0
#will take few minutes - depends on your system speedperlbrew install-cpanm
perlbrew list
#checkperlbrew switch perl-5.20.0
#activate newly installed perl 5.20Check your installation
~/perl5/perlbrew/bin
you should have 3 scripts:prelbrew
,patchperl
,cpanm
perl -v
should return 5.20type cpanm
- should return~/perl5/perlbrew/bin/cpanm
You're done.
You can install new modules with
cpanm
, like:applications
collections
modules
Check the
~/perl5/perlbrew/perls/perl-5.20.0/bin/
for new commandsYou will need update your own perl script's shebang line to
I hope don't forget anything, maybe other more experienced perl-gurus will add/edit/correct more.
Anyway, in the reality the steps 5,6,7 are much easier as sounds (by reading this) and could be done in few minutes.