http://www.perlmonks.org?node_id=1194376


in reply to Re^2: Install Module with no admin permission
in thread Install Module with no admin permission

Your suggestion included the --bootstrap option, which is primarily meant to download and install toolchain modules new enough for everything to work with local::lib. Your instructions include first upgrading ExtUtils::MakeMaker, but if an older CPAN.pm or Module::Build installed, the bootstrap process will try to upgrade them which in this case won't work. The bootstrapping process will ignore the failure and continue though. Also, the -I path used is wrong, but unnecessary. The proper paths to load the newly installed modules would be $HOME/perl5/lib/perl5, not $HOME/perl5/lib. But just passing a -I option wouldn't help the commands run by make find the newly installed ExtUtils::MakeMaker and its helper modules. The --bootstrap option takes care of getting the library paths set properly.

My suggestion for manual bootstrapping from pre-downloaded files would probably be to extract both local::lib and ExtUtils::MakeMaker, then install with:

eval `perl -I"$LOCAL_LIB_EXTRACTED_DIR/lib" -Mlocal::lib` cd $EXTUTILS_MAKEMAKER_EXTRACTED_DIR perl Makefile.PL && make test && make install cd $LOCAL_LIB_EXTRACTED_DIR perl Makefile.PL && make test && make install

Replies are listed 'Best First'.
Re^4: Install Module with no admin permission
by marto (Cardinal) on Jul 06, 2017 at 13:44 UTC

    Ah, yes, this is much cleaner! Would it be possible to add this to the documentation? If I could add one thing it'd be wget, extraction and cd lines, purely so that the note would a complete end to end process people could follow. Thanks.

Re^4: Install Module with no admin permission
by avico78 (Novice) on Jul 06, 2017 at 13:53 UTC

    Tnx, Honestly ... most of the Info u wrote is not really clear for me , as i never deal with Perl installation but coding onlyu Tried:

    [xxxxx@xxxx ExtUtils-MakeMaker-7.30]$ eval `perl -I"/testusers/env/tes +t/nadavp/perl5/lib" -Mlocal::lib` Bad : modifier in $ (/).

    Also:

    xxxp@illxxx ExtUtils-MakeMaker-7.30]$ ksh Hello !!!! $ export LOCAL_LIB_EXTRACTED_DIR=/testusers/env/test/nadavp/perl5 $ eval `perl -I"$LOCAL_LIB_EXTRACTED_DIR/lib" -Mlocal::lib` ksh: eval: line 1: ${?PERL_LOCAL_LIB_ROOT}: bad substitution

      Below is a version of what Haarg has kindly provided. Since you're having problems I've included the current working directory, listings of the extracted modules and the solution above using full paths:

      marto@pihost:~$ pwd /home/marto marto@pihost:~$ ls drwxr-xr-x 9 marto marto 4096 Jul 6 13:17 ExtUtils-MakeMaker-7. +30 drwxr-xr-x 9 marto marto 4096 Jul 6 13:41 local-lib-2.000023 ...... marto@pihost:~$ eval `perl -I"/home/marto/local-lib-2.000023/lib" -Mlo +cal::lib` marto@pihost:~$ cd ExtUtils-MakeMaker-7.30 marto@pihost:~$ perl Makefile.PL && make test && make install .... this works without issue marto@pihost:~$ cd ../local-lib-2.000023 marto@pihost:~$ perl Makefile.PL && make test && make install .... again, this works without issue

      Try to replicate this working setup, substituting paths where appropriate.