Today's entry (and the next three days) is around installing CPAN modules. If you have the sufficent rights ('root' or 'Administrator') you can install directly into the system directories of your Perl installation. I prefer to avoid that. So, a system upgrade does not interfer with my installed modules.
There are a few ways to tell your system Perl where your locally installed modules are:
- environment variable PERL5LIB
- 'use lib ...' in your script
- 'perl -I...' in the command line or shebang line
To install a CPAN module in a custom directory, you can use
INSTALL_BASE for
ExtUtils::MakeMaker (Makefile.PL) or
install_base for
Module::Build (Build.PL). I don't want to go into detail here, because I want to show you a much simpler solution:
local::lib. It configures your CPAN.pm config and helps you setting the right environment variables for your shell.
You need to
follow the bootstrapping technique:
- download and unpack the tarball from CPAN
- perl Makefile.PL --bootstrap
- make test && make install
- perl -I~/perl5 -Mlocal::lib
- copy the above output into ~/.bashrc (depending on your shell)
- open a new shell, so that the new environment variables are present
Now you can use
cpan and
perldoc like usual, but all installs go into
~/perl5. If you want to run perl scripts outside your shell environment (e. g. in Apache or crontab), set
PERL5LIB to the value from your
~/.bashrc.
Links:
You can also do:
ReplyDelete$ eval $(perl -I~/perl5 -Mlocal::lib)
at your shell prompt, so you don't have to open a new shell.
In fact I have the above line in .bashrc, so it looks that much less cluttered :)