Mar 20
Install cpan on a server without root access
As you can see from reading this discussion, installing a cpan module, without root access, can be daunting. When you managed to install your own compiled Perl on a non-root account, this is in most cases earlier or later the next step/problem. Do this:
login via ssh
ssh remotehost.com -l myusername
Mostly, follow this guide from the CPAN FAQ:
"How do I manually install a module in a private/non-standard directory?
You need to set PREFIX and LIB when you run the Makefile.PL. LIB is where the module files will go and PREFIX is the stub directory for everything else. For example:
foo@barbell$ perl Makefile.PL LIB=/home/foobar/mylib PREFIX=/home/foobar/mylib"
That should work and you should stop reading now.
(If you set only PREFIX or only LIB, CPAN might end up trying to install parts with a prefix, and for example other parts, like man3, into the default... Possible errors include "Do not have write permissions on '/usr/local/bin'" or "ERROR: Can't create '/usr/local/man/man3'")
Still, if you'd like to sort of emulate what the above does, go on and create these directories:
myperl/man
myperl/man/man1
myperl/man/man3
then start your perl and cpan
path/to/my/perl -MCPAN -e 'shell'
in cpan enter:
cpan> o conf makepl_arg "LIB=/path/to/myperl/lib \
INSTALLMAN1DIR=/path/to/myperl/man/man1 \
INSTALLMAN3DIR=/path/to/myperl/man/man3"
the best thing to do is to copy in these lines via [CTRL]+[SHIFT]+[V] and after that remove all wrong newlines
Finally
cpan> o conf commit
sets this conf default for the future
After that, installing things like Bugzilla is simple:
install Bundle::Bugzilla
just remember to define the path to your libs in scripts
use lib "/path/to/lib/";
If you're still having problems
If all of this didn't help you. Or if some Modules are especially demanding and a bit of a pain to get working under this config, try this:
Make sure you have the latest CPAN running. You might also install it under your userspace ~/perl path, and then execute it with ~/perl/bin/cpan.
Have a look at your .bashrc and your MyConfig.pm and make sure they are working well together. Watch the "installing..." lines thrown at you by cpan on non-installing modules, so you see where everything ends up.
See how cpan behaves when you install a module, with OK at the end, and then - what it does if you try installing it again. Does it reinstall or tell you "it's up to date"? - which would be right.
If you have PREFIX and LIB configured in your MyConfig.pm, make sure that you understand that prefix should be =/perl while LIB would then be =/perl/lib - prefix is prepended in front of everything: lib, man, man/man3 etc.
If everything else fails, a "forced" module install might get over any warning and install stubborn modules.
February 1st, 2009 at 9:12 pm
Your "install your own compiled Perl on a non-root account" link needs to be updated to reflect the post's new location.
February 1st, 2009 at 9:12 pm
Your "install your own compiled Perl on a non-root account" link needs to be updated to reflect the post's new location.