in reply to Re^4: How to install Perl modules locally on Unix?
in thread How to install Perl modules locally on Unix?

I did add that line to .bashrc

What do you mean by "that line"? Note that you should run the echo 'eval... command I showed at the command line, and not add that line to .bashrc. If you did run that command, you should be able to look at your .bashrc with something like tail ~/.bashrc, and at the end of the file, see several variable definitions like PATH=..., PERL5LIB=..., and PERL_.... If you don't see those, then perhaps something went wrong with the echo 'eval ...' >>~/.bashrc command.

If you do see those variables, and you've logged out and back in again, you should be able to do echo $PATH and somewhere in the output find something similar to /home/yourusername/perl5/bin, and if you do echo $PERL5LIB, see a path perl5/lib/perl5 below your home directory. If you can see those things, then at the moment I don't see why the command to install cpanm should fail - did you get any error messages? If you could show (inside <code>) tags the exact commands you tried and the output you got (including the output of the commands I showed here, like echo $PATH), that would be helpful.

Replies are listed 'Best First'.
Re^6: How to install Perl modules locally on Unix?
by slugger415 (Monk) on Nov 28, 2017 at 21:48 UTC

    Ok I did misunderstand about the line, I had run it as a command earlier. My .bashrc seems to have what it needs.

    export PERL_LOCAL_LIB_ROOT="$PERL_LOCAL_LIB_ROOT:/home/slugger415/perl +5"; export PERL_MB_OPT="--install_base /home/slugger415/perl5"; export PERL_MM_OPT="INSTALL_BASE=/home/slugger415/perl5"; export PERL5LIB="/home/slugger415/perl5/lib/perl5:$PERL5LIB"; export PATH="/home/slugger415/perl5/bin:$PATH";

    Running the curl command:

    [nyssa]$ curl -L https://cpanmin.us | perl - App::cpanminus % Total % Received % Xferd Average Speed Time Time Time + Current Dload Upload Total Spent Left + Speed 100 298k 100 298k 0 0 2305k 0 --:--:-- --:--:-- --:--: +-- 2311k ! ! Can't write to /usr/local/share/perl/5.18.2 and /usr/local/bin: Inst +alling modules to /home/slugger415/perl5 ! To turn off this warning, you have to do one of the following: ! - run me as a root or with --sudo option (to install to /usr/local +/share/perl/5.18.2 and /usr/local/bin) ! - Configure local::lib in your existing shell to set PERL_MM_OPT e +tc. ! - Install local::lib by running the following commands ! ! cpanm --local-lib=~/perl5 local::lib && eval $(perl -I ~/per +l5/lib/perl5/ -Mlocal::lib) ! App::cpanminus is up to date. (1.7043)

    variable output:

    [nyssa]$ echo $PATH /home/slugger415/.gems/bin:/usr/lib/ruby/gems/1.8/bin/:/usr/local/bin: +/usr/bin:/bin:/usr/bin/X11:/usr/games

    HMMM I see echo $PERL5LIB produces nothing, though it's obviously in my .bashrc file, so something's amiss here...

    and obviously my $PATH is wrong, no idea where it's getting that stuff... not reading .bashrc apparently. Oh and yes I did log out and back in.

      Maybe your shell isn't bash? IIRC, the default is dash on modern Ubuntus for /bin/sh, some people use ksh or zsh, and my boss at $job[0] used tcsh.

      ($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,