How should I install more than one version of Perl?
I install all of my perls completely in their own directory so they don't share anything with any other perl. To do that, you just tell the Configure
script where to install everything. I like /usr/local/perls:
% ./Configure -des -Dprefix=/usr/local/perls/perl-5.x.y
When I do that for multiple versions, I get a directory that has separate installations.
% ls -1 /usr/local/perls perl-5.10.0 perl-5.10.1 perl-5.6.2 perl-5.8.8
They all have their own bin and lib directories:
% ls -1 /usr/local/perls/perl-5.10.0 bin lib man
Most of the common tools will figure out what to do if you call them with different perls:
/usr/local/perls/perl-5.10.0/bin/perl /usr/local/bin/cpan
However, you can take the perl you want to use the most and put it first in your path. I just make a symlink to /usr/local/bin/perl, but you can add directories to PATH as well.
The perlbrew does a lot of this for you and moves symlinks around to make one of them the default perl. I don't use it though because it doesn't make life easier for me. That's up to you decide on your own though.
You really should install the different versions into distinct directories.
When I want to try multiple versions of a package that doesn't exist as packages for my favorite Linux distribution, I use stow
or xstow
as a poor man's package manager:
- Create a directory
/usr/local/stow
- Install individual packages into
/usr/local/stow/$PACKAGE-$VERSION
- map a "package" into
/usr/local
:stow -d /usr/local/stow $PACKAGE-$VERSION
- deactivate a "package":
stow -d /usr/local/stow -D $PACKAGE-$VERSION
stow
does its work by creating and manipulating symlinks and it is able to detect conflicts.
If you're using CentOS/RHEL servers, you can use the relatively new Software Collection system to install other versions of Perl in addition to the "system Perl" (which is an ancient 5.10 on EL6 and 5.8 on EL5).
There are public repositories for a core set of Perl 5.16 packages:
http://mirror.centos.org/centos/6/SCL/x86_64/
The community is working on publishing a larger subset of CPAN as installable packages and publishing collections for other versions of Perl as well.
Split them into their own version specific directories, and then symlink perl
to the version you wish to use at the time. This is how having multiple JREs/JDKs installed works, so it would seem to make sense for Perl installations as well.