App::perlbrew - Manage perl installations in your $HOME
# Initialize perlbrew init # Pick a preferred CPAN mirror perlbrew mirror # See what is available perlbrew available # Install some Perls perlbrew install 5.14.0 perlbrew install perl-5.8.1 perlbrew install perl-5.13.6 # See what were installed perlbrew list # Switch perl in the $PATH perlbrew switch perl-5.12.2 perl -v # Temporarily use another version only in current shell. perlbrew use perl-5.8.1 perl -v # Or turn it off completely. Useful when you messed up too deep. # Or want to go back to the system Perl. perlbrew off # Use 'switch' command to turn it back on. perlbrew switch perl-5.12.2 # Exec something with all perlbrew-ed perls perlbrew exec perl -E 'say $]'
perlbrew is a program to automate the building and installation of perl in the users HOME. At the moment, it installs everything to ~/perl5/perlbrew, and requires you to tweak your PATH by including a bashrc/cshrc file it provides. You then can benefit from not having to run 'sudo' commands to install cpan modules because those are installed inside your HOME too. It's a completely separate perl environment.
~/perl5/perlbrew
To use perlbrew, it is required to install curl or wget first. perlbrew depends on one of this two external commmands to be there in order to fetch files from the internet.
perlbrew
curl
wget
The recommended way to install perlbrew is to run this statement in your shell:
curl -kL http://xrl.us/perlbrewinstall | bash
After that, perlbrew installs itself to ~/perl5/perlbrew/bin, and you should follow the instruction on screen to setup your .bashrc or .cshrc to put it in your PATH.
~/perl5/perlbrew/bin
.bashrc
.cshrc
The downloaded perlbrew is a self-contained standalone program that embeds all non-core modules it uses. It should be runnable with perl 5.8 or later versions of perl.
This installer also installs a packed version of patchperl to ~/perl5/perlbrew/bin, which is required to build old perls.
patchperl
The directory ~/perl5/perlbrew will contain all install perl executables, libraries, documentations, lib, site_libs. If you need to install perlbrew, and the perls it brews, into somewhere else because, say, your HOME has limited quota, you can do that by setting a PERLBREW_ROOT environment variable before running the installer:
PERLBREW_ROOT
export PERLBREW_ROOT=/opt/perlbrew curl -kL http://xrl.us/perlbrewinstall | bash
By default, perlbrew looks for the intialization file that exports PERLBREW_ROOT in ~/.perlbrew/init. In some cases (for instance, if your home directory is shared across multiple machines), you may wish to have several different perlbrew setting per-machine. If so, you can use the PERLBREW_HOME environment variable to tell perlbrew where to look for the initialization file.
~/.perlbrew/init
PERLBREW_HOME
# on machine a $ PERLBREW_HOME=~/.perlbrew-a PERLBREW_ROOT=~/perl5/perlbrew-a ./perlbrew install # on machine b $ PERLBREW_HOME=~/.perlbrew-b PERLBREW_ROOT=~/perl5/perlbrew-b ./perlbrew install
If you specify PERLBREW_HOME, you will also need to specify both PERLBREW_HOME and PERLBREW_ROOT when you first install perlbrew. After that, you'll need to make sure PERLBREW_HOME is exported when you log in, before you source $PERLBREW_ROOT/etc/bashrc (or cshrc). Example .bashrc:
$PERLBREW_ROOT/etc/bashrc
cshrc
if [ "$(hostname)" == "machine-a" ]; then export PERLBREW_HOME=~/.perlbrew-a source ~/perl5/perlbrew-a/etc/bashrc elif [ "$(hostname)" == "machine-b" ]; then export PERLBREW_HOME=~/.perlbrew-b source ~/perl5/perlbrew-b/etc/bashrc fi
You may also install perlbrew from CPAN:
cpan App::perlbrew
However, please make sure not to run this with one of the perls brewed with perlbrew. It's the best to turn perlbrew off before you run that, if you're upgrading.
perlbrew off cpan App::perlbrew
You should always use system cpan (like /usr/bin/cpan) to install App::perlbrew because then it will be installed under a system PATH like /usr/bin, which is not affected by perlbrew switch or use command.
App::perlbrew
/usr/bin
switch
use
However, it is still recommended to let perlbrew install itself. It's easier, and it works better.
Please read the program usage by running
(No arguments.) To read a more detailed one:
perlbrew -h
perlbrew project uses github http://github.com/gugod/App-perlbrew/issues and RT <https://rt.cpan.org/Dist/Display.html?Queue=App-perlbrew> for issue tracking. Issues sent to these two systems will eventually be reviewed and handled.
Kang-min Liu <gugod@gugod.org>
<gugod@gugod.org>
Copyright (c) 2010, 2011 Kang-min Liu <gugod@gugod.org>.
The MIT License
See https://github.com/gugod/App-perlbrew/contributors
BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENCE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
To install App::perlbrew, copy and paste the appropriate command in to your terminal.
cpanm
cpanm App::perlbrew
CPAN shell
perl -MCPAN -e shell install App::perlbrew
For more information on module installation, please visit the detailed CPAN module installation guide.