perlbrew 0.20 features three major changes:
perlbrew install
command
In short, paste this line to your terminal:
curl -L https://github.com/gugod/App-perlbrew/raw/master/perlbrew-install | bash
If you've installed perlbrew from CPAN and you're upgrading, you can still upgrade with CPAN. However, after upgrading App::perlbrew
, you need to run:
perlbrew init
The install command now takes 3 different kinds of arguments, a perl distribution name, a path to git checkout directory, or a URL to a perlbrew distribution tarball:
perlbrew install perl-5.12.3
perlbrew install ~/src/perl
If you choose to build from a git checkout directory, you may do a git checkout v5.12.3
or git checkout <SHA1>
to jump to any reversion you want to build, and run perlbrew install ~/src/perl
from there. perlbrew will use the output of git describe
as the installation name. That's something like perl-v5.14.0-RC1-8-g2cf7ccf
.
In some use cases, many people may want to share one PERLBREW_ROOT
on the same machine instead having redundant copies all over the hard drives.
perlbrew had been using a symlink named current
to record currently activated perl. That is a global setting, and is now deprecated.
The switch
command now stop updating the current
symlink. Instead, it stores that piece information under ~/.perlbrew
directory.
Notice that symbolic links are still used when installing development releases of perl. The perl executables are named with version numbers, like perl5.13.9
, cpan5.13.9
. In those cases, Un-versioned executable symlinks are created to point to their versioned counterparts (perl -> perl5.13.9
, cpan -> cpan5.13.9
.)
For a while, CSH / TCSH users cannot use 'use' command to temporarily switch to a given perl installation,
they now can. However, the user experiences is different. perlbrew use
essentially launch a sub-shell that need to be exit
ed. Like the illustration here:
> perl -v # 5.12.3
> perlbrew use perl-5.13.9
> perl -v # 5.13.9
> exit
> perl -v 5.12.3
The behavior of switch
command also changes for CSH users. In order to make perlbrew multi-user friendly, the current
symlink is removed, which essentially limits the approach of implementation of switch
command. The switch
command now prompts user to quit current shell and start a new one, or run exec tcsh
in order to make if effective.