perlcpan

How can I use CPAN as a non-root user?


I want to install perl modules on a shared server on which I do not have root access. How can I do this? They also seem to have an older version of CPAN (it complains about that when running the command), is it possible to update the CPAN command being used from my account without requiring root access?


Solution

  • You can use cpanminus and the local::lib module.

    The easiest method I have found so far is to say:

    wget -O- http://cpanmin.us | perl - -l ~/perl5 App::cpanminus local::lib
    eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`
    echo 'eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib`' >> ~/.profile
    echo 'export MANPATH=$HOME/perl5/man:$MANPATH' >> ~/.profile
    

    This assumes your profile is named .profile, you may need to change that to be .bash_profile, .bashrc, etc. After that you can install modules by saying

    cpanm Module::Name
    

    and simply use them the same way you would if the were installed in the root directories.


    What follows is a brief explanation of what the commands above do.

    Now,