====== Perl ======
===== CPAN =====
==== To install Modules Locally ====
local::lib enables you to install modules into a specified directory, \\
without requiring root or administrator access. See the bootstrapping technique for how to get started.\\
You can create a directory per user/project/company and deploy to other servers,\\
by copying the directory (as long as you are on the same operating system).
[[http://search.cpan.org/~apeiron/local-lib/ | CPAN Local::lib ]]\\
But you can also manually do it.
**First export your username**
export username=ketan
Still you have to modify / change "$username" manually at many places
**create the .cpan directories**
mkdir $HOME/.cpan/
mkdir $HOME/.cpan/CPAN/
# This is so it ignores the global CPAN config
echo "\$CPAN::Config->{cpan_home}='/home/$username/.cpan';" > /home/$username/.cpan/CPAN/MyConfig.pm
Then Execute a CPAN shell
perl -MCPAN -e shell
OR
cpan
Then when in the shell type:
o conf init
to reconfigure CPAN, replace all */root/.cpan/* with /home/$username/.cpan/*
change the makepl_arg so it should look like.
'makepl_arg' => q[INSTALLDIRS=site PREFIX=/home/$username/perl/],
Finally the env variable PERL5LIB needs to point to the new module installation paths:
export PERL5LIB="/home/$username/perl/share/perl/custom_lib/:/home/$username/perl/lib/perl/custom_lib/";
and then you should be able to use CPAN to install modules.
I then modified following file
export PERL_LOCAL_LIB_ROOT="/home/$username/perl";
export PERL_MB_OPT="--install_base /home/$username/perl";
export PERL_MM_OPT="INSTALL_BASE=/home/$username/perl";
export PERL5LIB="/home/$username/perl/share/perl/custom_lib/:/home/$username/perl/lib/perl/custom_lib/";
export PATH="/home/$username/perl/bin:$PATH";