JohnTehan has asked for the wisdom of the Perl Monks concerning the following question:

My hosting service, Dreamhost, doesn't have Authen::Passphrase installed, but they will let me install locally. I've installed all of the dependencies, but the final make install command isn't working. I have a screenshot showing the results for Makefile, make, make test and make install, but I don't see a way to post the image? I've posted it here:

http://tehans.com/PerlMonks/Screenshot%202017-12-22%2007.26.52.png

Any help is greatly appreciated!

Replies are listed 'Best First'.
Re: Problem installing Authen::Passphrase
by choroba (Cardinal) on Dec 22, 2017 at 13:16 UTC
    It's better to copy'n'paste the text here, into <code>...</code> tags, and maybe also <readmore>, if it's long.

    The screenshot doesn't show any errors. How do you know the install didn't work?

    ($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,

      The module is not where it should be - every other install ended like this:

      [calhoun]$ cd Digest-CRC-0.22 [calhoun]$ perl Makefile.PL PREFIX=~/perlmods Checking if your kit is complete... Looks good Writing Makefile for Digest::CRC Writing MYMETA.yml and MYMETA.json Testing if you have a C compiler cc -c -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fstack-protector -fno-str +ict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_O +FFSET_BITS=64 -O2 -g -DVERSION=\"0.22\" -DXS_VERSION=\"0.22\" -fPIC + "-I/usr/lib/perl/5.18/CORE" test.c [calhoun]$ make cp lib/Digest/CRC.pm blib/lib/Digest/CRC.pm /usr/bin/perl /usr/share/perl/5.18/ExtUtils/xsubpp -typemap /usr/shar +e/perl/5.18/ExtUtils/typemap CRC.xs > CRC.xsc && mv CRC.xsc CRC.c cc -c -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fstack-protector -fno-str +ict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_O +FFSET_BITS=64 -O2 -g -DVERSION=\"0.22\" -DXS_VERSION=\"0.22\" -fPIC + "-I/usr/lib/perl/5.18/CORE" CRC.c Running Mkbootstrap for Digest::CRC () chmod 644 CRC.bs rm -f blib/arch/auto/Digest/CRC/CRC.so cc -shared -L/usr/local/lib -fstack-protector CRC.o -o blib/arch/aut +o/Digest/CRC/CRC.so \ \ chmod 755 blib/arch/auto/Digest/CRC/CRC.so cp CRC.bs blib/arch/auto/Digest/CRC/CRC.bs chmod 644 blib/arch/auto/Digest/CRC/CRC.bs Manifying blib/man3/Digest::CRC.3pm [calhoun]$ make test PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_h +arness(0, 'blib/lib', 'blib/arch')" t/*.t t/crc.t .. ok All tests successful. Files=1, Tests=31, 0 wallclock secs ( 0.03 usr 0.01 sys + 0.02 cusr + 0.02 csys = 0.08 CPU) Result: PASS [calhoun]$ make install Files found in blib/arch: installing files in blib/lib into architectu +re dependent library tree Installing /home/tehans/perlmods/lib/perl/5.18.2/auto/Digest/CRC/CRC.s +o Installing /home/tehans/perlmods/lib/perl/5.18.2/auto/Digest/CRC/CRC.b +s Installing /home/tehans/perlmods/lib/perl/5.18.2/Digest/CRC.pm Installing /home/tehans/perlmods/man/man3/Digest::CRC.3pm Appending installation info to /home/tehans/perlmods/lib/perl/5.18.2/p +erllocal.pod [calhoun]$

      When I look in /home/tehans/perlmods/lib/perl/5.18.2/Authen, it's not installed:

      [calhoun]$ pwd /home/tehans/perlmods/lib/perl/5.18.2/Authen [calhoun]$ ls -l total 12 -r--r--r-- 1 tehans pg610125 11716 Dec 22 03:58 DecHpwd.pm [calhoun]$

        I think part of the problem comes from the module using Module::Build instead of ExtUtils::MakeMaker. I don't see anything in the documentation of Module::Build::Compat that hints at supporting PREFIX= on the command line.

        You could try to learn about Module::Build and how to instruct it about where to install stuff (--install-base I think) or look at local::lib, which contains all the instructions.

        Update: After looking at the source code of Module::Build::Compat, it looks as if it could support PREFIX= on the command line, but at least in your case it doesn't seem to work that way.

        You could make life a lot easier for yourself if you use local::lib along with cpanm to install your modules.