Skip to content
Kang-min Liu edited this page May 13, 2011 · 1 revision

Perlbrew Release 0.20

perlbrew 0.20 features three major changes:

  • Improved perlbrew install command
  • True multi-user friendliness
  • switch / use for CSH users

Installation / Upgrade

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

Improvements of the "install" command

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
  • perlbrew install http://search.cpan.org/CPAN/authors/id/J/JE/JESSE/perl-5.14.0-RC2.tar.bz2

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.

Multi-user friendliness

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.)

switch and use command for CSH users

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 exited. 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.

Clone this wiki locally