perlinstallationbuilddependenciesautogen

Can't locate Data/Dumper.pm when building dssp - perl is installed but cannot be found?


I am trying to build dssp (https://github.com/cmbi/dssp) on a server-node (not on server-login), and I am facing a problem with how the system finds dependencies. I am working on a centos 7.

The procedure of building dssp is : run ./autogen to get a configure.sh file and then execute that one. Then run make.

Running whereis perl and whereis perl5 I get:

[mavridks@haswell-182 dssp-2.3.0]$ whereis perl
perl: /usr/bin/perl /usr/share/man/man1/perl.1.gz

[mavridks@haswell-182 dssp-2.3.0]$ whereis perl5
perl5: /usr/lib64/perl5 /usr/share/perl5

Then, running ./autogen I get the error:

Can't locate Data/Dumper.pm in @INC
   (@INC contains:
   /hits/sw/shared/apps/Autoconf/2.69-GCC-4.8.4/share/autoconf
   /usr/local/lib64/perl5
   /usr/local/share/perl5 
   /usr/lib64/perl5/vendor_perl
   /usr/share/perl5/vendor_perl
   /usr/lib64/perl5
   /usr/share/perl5 
   .)
   at /hits/sw/shared/apps/Autoconf/2.69-GCC-4.8.4/share/autoconf/Autom4te/C4che.pm line 33.
BEGIN failed--compilation aborted
   at /hits/sw/shared/apps/Autoconf/2.69-GCC-4.8.4/share/autoconf/Autom4te/C4che.pm line 33.
Compilation failed in require
   at /hits/sw/shared/apps/Autoconf/2.69-GCC-4.8.4/bin/autom4te line 37.
BEGIN failed--compilation aborted
   at /hits/sw/shared/apps/Autoconf/2.69-GCC-4.8.4/bin/autom4te line 37.
aclocal: error: echo failed with exit status: 2

(Line breaks added for readability.)

It seems to me that this error when autoconf is called has something to do with not locating correctly the Perl files or having more paths than it should? Another thought would be that I don't have root privileges on the server and that perhaps this creates a problem?

Any ideas or suggestions are welcomed.

NOTE: The server uses a module system to load various dependencies. I need Autotools and Boost. The module I am using, if this is something of importance, are

[mavridks@haswell-182 dssp-2.3.0]$ module list

Currently Loaded Modules:
1) numactl/.2.0.10-GCC-4.8.4 (H)
2) hwloc/.1.10.1-GCC-4.8.4 (H)
3) OpenMPI/1.8.4-GCC-4.8.4
4) OpenBLAS/0.2.13-GCC-4.8.4-LAPACK-3.5.0
5) gompi/1.7.20                                                
6) FFTW/3.3.4-gompi-1.7.20                                    
7) ScaLAPACK/2.0.2-gompi-1.7.20-OpenBLAS-0.2.13-LAPACK-3.5.0
8) goolf/1.7.20
9) bzip2/.1.0.6-goolf-1.7.20 (H)
10) zlib/.1.2.8-goolf-1.7.20 (H)
11) Boost/1.58.0-goolf-1.7.20
12) slurm/18-08-4-1-hits
13) GCC/4.8.4
14) gcc/dummy
15) sge/dummy            
16) M4/1.4.17-GCC-4.8.4
17) Autoconf/2.69-GCC-4.8.4
18) Automake/1.15-GCC-4.8.4
19) libtool/2.4.6-GCC-4.8.4
20) Autotools/20150215-GCC-4.8.4

Where:
H:  Hidden Module

EDIT:

After the comment of Håkon Hægland I get:

[mavridks@haswell-005 ~]$ perl --version | grep 'This is'
This is perl 5, version 30, subversion 0 (v5.30.0) built for x86_64-linux-thread-multi

[mavridks@haswell-005 ~]$ perl -MData::Dumper -E 'say $INC{"Data/Dumper.pm"}'
/hits/sw/shared/apps/Perl/5.30.0-GCCcore-8.3.0/lib/perl5/5.30.0/x86_64-linux-thread-multi/Data/Dumper.pm

EDIT 2: Here is the result after re-running the ./autogen

[mavridks@haswell-112 dssp-2.3.0]
$ PERL5LIB=/hits/sw/shared/apps/Perl/5.30.0-GCCcore-8.3.0/lib/perl5/5.30.0 ./autogen.sh
/hits/sw/shared/apps/Automake/1.15-GCC-4.8.4/bin/aclocal:
   Perl lib version (5.30.0) doesn't match executable '/usr/bin/perl' version (5.16.3)
   at /hits/sw/shared/apps/Perl/5.30.0-GCCcore-8.3.0/lib/perl5/5.30.0/x86_64-linux-thread-multi/Config.pm line 62.
Compilation failed in require
   at /hits/sw/shared/apps/Automake/1.15-GCC-4.8.4/share/automake-1.15/Automake/Config.pm line 41.
BEGIN failed--compilation aborted
   at /hits/sw/shared/apps/Automake/1.15-GCC-4.8.4/share/automake-1.15/Automake/Config.pm line 41.
Compilation failed in require
   at /hits/sw/shared/apps/Automake/1.15-GCC-4.8.4/bin/aclocal line 37.
BEGIN failed--compilation aborted
   at /hits/sw/shared/apps/Automake/1.15-GCC-4.8.4/bin/aclocal line 37.

(Line breaks added for readability.)

EDIT 3:

After a lot of helpful comments and an answer I am adding some more info:

  1. First one connects to the server login-node. Running whereis perl gives:

    [mavridks@haswell-login ~]$ whereis perl

    perl: /usr/bin/perl /usr/share/man/man1/perl.1.gz

and also, running

[mavridks@haswell-login ~]$ perl --version

This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64- 
linux-thread-multi
(with 39 registered patches, see perl -V for more detail)

.Finally one gets:

[mavridks@haswell-login ~]$ perl -MData::Dumper -E 'say 
$INC{"Data/Dumper.pm"}'
/usr/lib64/perl5/vendor_perl/Data/Dumper.pm

Side-note: What do we get running perl -V?

a) On the login-node:

[mavridks@haswell-login ~]$ perl -V
Summary of my perl5 (revision 5 version 16 subversion 3) configuration:
   
  Platform:
    osname=linux, osvers=3.10.0-693.17.1.el7.x86_64, archname=x86_64-linux-thread-multi
    uname='linux x86-01.bsys.centos.org 3.10.0-693.17.1.el7.x86_64 #1 smp thu jan 25 20:13:58 utc 2018 x86_64 x86_64 x86_64 gnulinux '
    config_args='-des -Doptimize=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic -Dccdlflags=-Wl,--enable-new-dtags -Dlddlflags=-shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic -Wl,-z,relro  -DDEBUGGING=-g -Dversion=5.16.3 -Dmyhostname=localhost -Dperladmin=root@localhost -Dcc=gcc -Dcf_by=Red Hat, Inc. -Dprefix=/usr -Dvendorprefix=/usr -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl5 -Dsitearch=/usr/local/lib64/perl5 -Dprivlib=/usr/share/perl5 -Dvendorlib=/usr/share/perl5/vendor_perl -Darchlib=/usr/lib64/perl5 -Dvendorarch=/usr/lib64/perl5/vendor_perl -Darchname=x86_64-linux-thread-multi -Dlibpth=/usr/local/lib64 /lib64 /usr/lib64 -Duseshrplib -Dusethreads -Duseithreads -Dusedtrace=/usr/bin/dtrace -Duselargefiles -Dd_semctl_semun -Di_db -Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio -Dinstallusrbinperl=n -Ubincompat5005 -Uversiononly -Dpager=/usr/bin/less -isr -Dd_gethostent_r_proto -Ud_endhostent_r_proto -Ud_sethostent_r_proto -Ud_endprotoent_r_proto -Ud_setprotoent_r_proto -Ud_endservent_r_proto -Ud_setservent_r_proto -Dscriptdir=/usr/bin -Dusesitecustomize'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic',
    cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
    ccversion='', gccversion='4.8.5 20150623 (Red Hat 4.8.5-36)', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='gcc', ldflags =' -fstack-protector'
    libpth=/usr/local/lib64 /lib64 /usr/lib64
    libs=-lresolv -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc -lgdbm_compat
    perllibs=-lresolv -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
    libc=, so=so, useshrplib=true, libperl=libperl.so
    gnulibc_version='2.17'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,--enable-new-dtags -Wl,-rpath,/usr/lib64/perl5/CORE'
    cccdlflags='-fPIC', lddlflags='-shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -Wl,-z,relro '


Characteristics of this binary (from libperl): 
  Compile-time options: HAS_TIMES MULTIPLICITY PERLIO_LAYERS
                        PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT
                        PERL_MALLOC_WRAP PERL_PRESERVE_IVUV USE_64_BIT_ALL
                        USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES
                        USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE
                        USE_LOCALE_NUMERIC USE_PERLIO USE_PERL_ATOF
                        USE_REENTRANT_API USE_SITECUSTOMIZE
  Locally applied patches:
    Fedora Patch1: Removes date check, Fedora/RHEL specific
    Fedora Patch3: support for libdir64
    Fedora Patch4: use libresolv instead of libbind
    Fedora Patch5: USE_MM_LD_RUN_PATH
    Fedora Patch6: Skip hostname tests, due to builders not being network capable
    Fedora Patch7: Dont run one io test due to random builder failures
    Fedora Patch9: Fix find2perl to translate ? glob properly (RT#113054)
    Fedora Patch10: Fix broken atof (RT#109318)
    Fedora Patch13: Clear $@ before "do" I/O error (RT#113730)
    Fedora Patch14: Do not truncate syscall() return value to 32 bits (RT#113980)
    Fedora Patch15: Override the Pod::Simple::parse_file (CPANRT#77530)
    Fedora Patch16: Do not leak with attribute on my variable (RT#114764)
    Fedora Patch17: Allow operator after numeric keyword argument (RT#105924)
    Fedora Patch18: Extend stack in File::Glob::glob, (RT#114984)
    Fedora Patch19: Do not crash when vivifying $|
    Fedora Patch20: Fix misparsing of maketext strings (CVE-2012-6329)
    Fedora Patch21: Add NAME headings to CPAN modules (CPANRT#73396)
    Fedora Patch22: Fix leaking tied hashes (RT#107000) [1]
    Fedora Patch23: Fix leaking tied hashes (RT#107000) [2]
    Fedora Patch24: Fix leaking tied hashes (RT#107000) [3]
    Fedora Patch25: Fix dead lock in PerlIO after fork from thread (RT#106212)
    Fedora Patch26: Make regexp safe in a signal handler (RT#114878)
    Fedora Patch27: Update h2ph(1) documentation (RT#117647)
    Fedora Patch28: Update pod2html(1) documentation (RT#117623)
    Fedora Patch29: Document Math::BigInt::CalcEmu requires Math::BigInt (CPAN RT#85015)
    RHEL Patch30: Use stronger algorithm needed for FIPS in t/op/crypt.t (RT#121591)
    RHEL Patch31: Make *DBM_File desctructors thread-safe (RT#61912)
    RHEL Patch32: Use stronger algorithm needed for FIPS in t/op/taint.t (RT#123338)
    RHEL Patch33: Remove CPU-speed-sensitive test in Benchmark test
    RHEL Patch34: Make File::Glob work with threads again
    RHEL Patch35: Fix CRLF conversion in ASCII FTP upload (CPAN RT#41642)
    RHEL Patch36: Do not leak the temp utf8 copy of namepv (CPAN RT#123786)
    RHEL Patch37: Fix duplicating PerlIO::encoding when spawning threads (RT#31923)
    RHEL Patch38: Add SSL support to Net::SMTP (CPAN RT#93823) [1]
    RHEL Patch39: Add SSL support to Net::SMTP (CPAN RT#93823) [2]
    RHEL Patch40: Add SSL support to Net::SMTP (CPAN RT#93823) [3]
    RHEL Patch41: Add SSL support to Net::SMTP (CPAN RT#93823) [4]
    RHEL Patch42: Do not overload ".." in Math::BigInt (CPAN RT#80182)
    RHEL Patch43: Fix CVE-2018-18311 Integer overflow leading to buffer overflow
  Built under linux
  Compiled at Jan 21 2019 22:09:19
  @INC:
    /usr/local/lib64/perl5
    /usr/local/share/perl5
    /usr/lib64/perl5/vendor_perl
    /usr/share/perl5/vendor_perl
    /usr/lib64/perl5
    /usr/share/perl5
    .
[mavridks@haswell-login ~]$ 

b) On the gpu-node:

[mavridks@haswell-179 ~]$ perl -V
Summary of my perl5 (revision 5 version 16 subversion 3) configuration:
   
  Platform:
    osname=linux, osvers=3.10.0-693.17.1.el7.x86_64, archname=x86_64-linux-thread-multi
    uname='linux x86-01.bsys.centos.org 3.10.0-693.17.1.el7.x86_64 #1 smp thu jan 25 20:13:58 utc 2018 x86_64 x86_64 x86_64 gnulinux '
    config_args='-des -Doptimize=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic -Dccdlflags=-Wl,--enable-new-dtags -Dlddlflags=-shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic -Wl,-z,relro  -DDEBUGGING=-g -Dversion=5.16.3 -Dmyhostname=localhost -Dperladmin=root@localhost -Dcc=gcc -Dcf_by=Red Hat, Inc. -Dprefix=/usr -Dvendorprefix=/usr -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl5 -Dsitearch=/usr/local/lib64/perl5 -Dprivlib=/usr/share/perl5 -Dvendorlib=/usr/share/perl5/vendor_perl -Darchlib=/usr/lib64/perl5 -Dvendorarch=/usr/lib64/perl5/vendor_perl -Darchname=x86_64-linux-thread-multi -Dlibpth=/usr/local/lib64 /lib64 /usr/lib64 -Duseshrplib -Dusethreads -Duseithreads -Dusedtrace=/usr/bin/dtrace -Duselargefiles -Dd_semctl_semun -Di_db -Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio -Dinstallusrbinperl=n -Ubincompat5005 -Uversiononly -Dpager=/usr/bin/less -isr -Dd_gethostent_r_proto -Ud_endhostent_r_proto -Ud_sethostent_r_proto -Ud_endprotoent_r_proto -Ud_setprotoent_r_proto -Ud_endservent_r_proto -Ud_setservent_r_proto -Dscriptdir=/usr/bin -Dusesitecustomize'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic',
    cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
    ccversion='', gccversion='4.8.5 20150623 (Red Hat 4.8.5-36)', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='gcc', ldflags =' -fstack-protector'
    libpth=/usr/local/lib64 /lib64 /usr/lib64
    libs=-lresolv -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc -lgdbm_compat
    perllibs=-lresolv -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
    libc=, so=so, useshrplib=true, libperl=libperl.so
    gnulibc_version='2.17'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,--enable-new-dtags -Wl,-rpath,/usr/lib64/perl5/CORE'
    cccdlflags='-fPIC', lddlflags='-shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -Wl,-z,relro '


Characteristics of this binary (from libperl): 
  Compile-time options: HAS_TIMES MULTIPLICITY PERLIO_LAYERS
                        PERL_DONT_CREATE_GVSV PERL_IMPLICIT_CONTEXT
                        PERL_MALLOC_WRAP PERL_PRESERVE_IVUV USE_64_BIT_ALL
                        USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES
                        USE_LOCALE USE_LOCALE_COLLATE USE_LOCALE_CTYPE
                        USE_LOCALE_NUMERIC USE_PERLIO USE_PERL_ATOF
                        USE_REENTRANT_API USE_SITECUSTOMIZE
  Locally applied patches:
    Fedora Patch1: Removes date check, Fedora/RHEL specific
    Fedora Patch3: support for libdir64
    Fedora Patch4: use libresolv instead of libbind
    Fedora Patch5: USE_MM_LD_RUN_PATH
    Fedora Patch6: Skip hostname tests, due to builders not being network capable
    Fedora Patch7: Dont run one io test due to random builder failures
    Fedora Patch9: Fix find2perl to translate ? glob properly (RT#113054)
    Fedora Patch10: Fix broken atof (RT#109318)
    Fedora Patch13: Clear $@ before "do" I/O error (RT#113730)
    Fedora Patch14: Do not truncate syscall() return value to 32 bits (RT#113980)
    Fedora Patch15: Override the Pod::Simple::parse_file (CPANRT#77530)
    Fedora Patch16: Do not leak with attribute on my variable (RT#114764)
    Fedora Patch17: Allow operator after numeric keyword argument (RT#105924)
    Fedora Patch18: Extend stack in File::Glob::glob, (RT#114984)
    Fedora Patch19: Do not crash when vivifying $|
    Fedora Patch20: Fix misparsing of maketext strings (CVE-2012-6329)
    Fedora Patch21: Add NAME headings to CPAN modules (CPANRT#73396)
    Fedora Patch22: Fix leaking tied hashes (RT#107000) [1]
    Fedora Patch23: Fix leaking tied hashes (RT#107000) [2]
    Fedora Patch24: Fix leaking tied hashes (RT#107000) [3]
    Fedora Patch25: Fix dead lock in PerlIO after fork from thread (RT#106212)
    Fedora Patch26: Make regexp safe in a signal handler (RT#114878)
    Fedora Patch27: Update h2ph(1) documentation (RT#117647)
    Fedora Patch28: Update pod2html(1) documentation (RT#117623)
    Fedora Patch29: Document Math::BigInt::CalcEmu requires Math::BigInt (CPAN RT#85015)
    RHEL Patch30: Use stronger algorithm needed for FIPS in t/op/crypt.t (RT#121591)
    RHEL Patch31: Make *DBM_File desctructors thread-safe (RT#61912)
    RHEL Patch32: Use stronger algorithm needed for FIPS in t/op/taint.t (RT#123338)
    RHEL Patch33: Remove CPU-speed-sensitive test in Benchmark test
    RHEL Patch34: Make File::Glob work with threads again
    RHEL Patch35: Fix CRLF conversion in ASCII FTP upload (CPAN RT#41642)
    RHEL Patch36: Do not leak the temp utf8 copy of namepv (CPAN RT#123786)
    RHEL Patch37: Fix duplicating PerlIO::encoding when spawning threads (RT#31923)
    RHEL Patch38: Add SSL support to Net::SMTP (CPAN RT#93823) [1]
    RHEL Patch39: Add SSL support to Net::SMTP (CPAN RT#93823) [2]
    RHEL Patch40: Add SSL support to Net::SMTP (CPAN RT#93823) [3]
    RHEL Patch41: Add SSL support to Net::SMTP (CPAN RT#93823) [4]
    RHEL Patch42: Do not overload ".." in Math::BigInt (CPAN RT#80182)
  Built under linux
  Compiled at Oct 30 2018 18:59:43
  @INC:
    /usr/local/lib64/perl5
    /usr/local/share/perl5
    /usr/lib64/perl5/vendor_perl
    /usr/share/perl5/vendor_perl
    /usr/lib64/perl5
    /usr/share/perl5
    .
  1. Then one connects to a gpu-node. It seems we still have the same perl:

    [mavridks@haswell-179 ~]$ whereis perl perl: /usr/bin/perl /usr/share/man/man1/perl.1.gz

but now Data/Dumber is no more ( running perl -MData::Dumper -E 'say $INC{"Data/Dumper.pm"}' ):

[mavridks@haswell-179 ~]$ perl -MData::Dumper -E 'say $INC{"Data/Dumper.pm"}'
Can't locate Data/Dumper.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .).
BEGIN failed--compilation aborted.
  1. Then the IT department suggested loading the perl module; the server is built on a module system where all groups have the ability to load software as modules ( appending the right files in the path - this is the system used https://lmod.readthedocs.io/en/latest/#overview). So, if we run module load Perl we have:

    [mavridks@haswell-179 ~]$ whereis perl perl: /usr/bin/perl /hits/sw/shared/apps/Perl/5.30.0-GCCcore-8.3.0/bin/perl /usr/share/man/man1/perl.1.gz

which means we have changed something( the distribution used may I say?). But now we have:

[mavridks@haswell-179 ~]$ perl -MData::Dumper -E 'say $INC{"Data/Dumper.pm"}'
/hits/sw/shared/apps/Perl/5.30.0-GCCcore-8.3.0/lib/perl5/5.30.0/x86_64-linux-thread-multi/Data/Dumper.pm

which means we have the Data/Dumper on the system.

  1. Finally, one need to load all the autotools as a module too. Then, it seems that the execution of the autogen.sh script is looking for perl modules from the system ( the one from login and not gpu) but of course it can't locate them.

    [mavridks@haswell-179 dssp-2.3.0]$ ./autogen.sh Can't locate Data/Dumper.pm in @INC (@INC contains: /hits/sw/shared/apps/Autoconf/2.69-GCC-4.8.4/share/autoconf /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /hits/sw/shared/apps/Autoconf/2.69-GCC-4.8.4/share/autoconf/Autom4te/C4che.pm line 33. BEGIN failed--compilation aborted at /hits/sw/shared/apps/Autoconf/2.69-GCC-4.8.4/share/autoconf/Autom4te/C4che.pm line 33. Compilation failed in require at /hits/sw/shared/apps/Autoconf/2.69-GCC-4.8.4/bin/autom4te line 37. BEGIN failed--compilation aborted at /hits/sw/shared/apps/Autoconf/2.69-GCC-4.8.4/bin/autom4te line 37. aclocal: error: echo failed with exit status: 2


Solution

  • You have two builds of perl installed.

    I shall dub them "system perl" and "modular perl" respectively.

    whereis shows only the system perl in your PATH, but later commands show perl invoking the modular perl. So either perl is an alias for the modular perl,[5] or you ran your tests in different environments (i.e. your PATH changed).


    Is it appropriate to set PERL5LIB?

    At one point, you set env var PERL5LIB to /hits/sw/shared/apps/Perl/5.30.0-GCCcore-8.3.0/lib/perl5/5.30.0. This is not appropriate.

    This is incorrect for the system perl.[6]

    This is unnecessary for the modular perl. It is redundant.[7]


    Why doesn't the system perl have Data::Dumper installed?

    Perl has certain modules that come with it. For virtually as long as support for modules has existed in Perl, this has included Data::Dumper. Data::Dumper should always be available.

    However, certain linux distros split Perl into multiple packages. It appears that Data::Dumper is found in the perl(Data::Dumper) package in CentOS 7.

    So the solution is to install that package.

    Since Data::Dumper is dual-lived, it can also be installed from CPAN. This doesn't require any special permissions. That said, I usually recommend installing perl locally instead of messing with the system perl. It seems you already have such a Perl. This leads us to the next sub-answer.


    What if I want to use the modular perl?

    I'm not sure.

    A quick experiment leads me to believe this can be solved by simply placing the modular perl in the PATH before /usr/bin.

    export PATH="/hits/sw/shared/apps/Perl/5.30.0-GCCcore-8.3.0/bin:$PATH"
    

    Alternatively, quick experiments suggest that both of the following also work:

    ./configure PERL=/hits/sw/shared/apps/Perl/5.30.0-GCCcore-8.3.0/bin/perl
    
    PERL=/hits/sw/shared/apps/Perl/5.30.0-GCCcore-8.3.0/bin/perl ./configure
    

    If these don't do the trick, this can be asked as a separate question.


    What if I disagree with something in this answer?

    Some of my statements were guesses. For example, /hits/sw/shared/apps/Perl/5.30.0-GCCcore-8.3.0/bin/perl wasn't mentioned anywhere in your question. If you believe I've made a mistake, please provide the output of the following command (parens and all):

    (
       echo 'System perl:'
       /usr/bin/perl -v | grep 'This is'
       PERL5LIB= /usr/bin/perl -e'CORE::say for @INC'
       echo
       echo "Data::Dumper in system perl?"
       PERL5LIB= /usr/bin/perl -e'
          use Data::Dumper;
          CORE::say $Data::Dumper::VERSION;
          CORE::say INC{"Data/Dumper.pm"};
       '
       echo
       echo 'Modular perl:'
       /hits/sw/shared/apps/Perl/5.30.0-GCCcore-8.3.0/bin/perl -v | grep 'This is'
       PERL5LIB= /hits/sw/shared/apps/Perl/5.30.0-GCCcore-8.3.0/bin/perl -e'CORE::say for @INC'
       echo
       echo "Data::Dumper in modular perl?"
       PERL5LIB= /hits/sw/shared/apps/Perl/5.30.0-GCCcore-8.3.0/bin/perl -e'
          use Data::Dumper;
          CORE::say $Data::Dumper::VERSION;
          CORE::say $INC{"Data/Dumper.pm"};
       '
       echo
       echo 'Perl env vars:'
       perl -e'CORE::say "$_: $ENV{$_}" for grep /^PERL/, keys(%ENV)'
       echo
       echo 'type perl:'
       type perl
    )
    

    Footnotes.

    1. This can be verified using

      /usr/bin/perl -v | grep 'This is'
      
    2. This can be verified using

      /hits/sw/shared/apps/Perl/5.30.0-GCCcore-8.3.0/bin/perl -v | grep 'This is'
      
    3. This can be verified using

      /usr/bin/perl -e'use Data::Dumper;'
      
    4. This can be verified using

      /hits/sw/shared/apps/Perl/5.30.0-GCCcore-8.3.0/bin/perl -e'use Data::Dumper;'
      
    5. In some shells (incl dash, bash and ksh), this can be verified using

      type perl
      
    6. This is what lead to Perl lib version (5.30.0) doesn't match executable '/usr/bin/perl' version (5.16.3).

    7. This can be verified using

      PERL5LIB= /hits/sw/shared/apps/Perl/5.30.0-GCCcore-8.3.0/bin/perl -e'CORE::say for @INC;'