Reputation: 13
UPDATE: I tried again and realized that perl said that when it tried to load the module, it got a "permission denied" error. So, I just re-ran the script using sudo...and it worked. I guess it must be some sort of permissions changes.
Original:
I just updated OS X to 10.10.5 and suddenly, Perl can no longer locate any of my CPAN-installed modules. Even newly installed modules are not found. I know that the update installed Perl 5.18.2, but even when I explicitly use 5.16, the modules still cannot be located.
The output of perl -V is here:
Summary of my perl5 (revision 5 version 18 subversion 2) configuration: Platform: osname=darwin, osvers=14.0, archname=darwin-thread-multi-2level uname='darwin osx228.apple.com 14.0 darwin kernel version 14.0.0: tue jun 2 11:49:04 pdt 2015; root:xnu-2782.1.97.1.3~1development_x86_64 x86_64 ' config_args='-ds -e -Dprefix=/usr -Dccflags=-g -pipe -Dldflags= -Dman3ext=3pm -Duseithreads -Duseshrplib -Dinc_version_list=none -Dcc=cc' 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='cc', ccflags ='-arch i386 -arch x86_64 -g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -fstack-protector', optimize='-Os', cppflags='-g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -fstack-protector' ccversion='', gccversion='4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)', 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='cc -mmacosx-version-min=10.10.5', ldflags ='-arch i386 -arch x86_64 -fstack-protector' libpth=/usr/lib /usr/local/lib libs= perllibs= libc=, so=dylib, useshrplib=true, libperl=libperl.dylib gnulibc_version='' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' ' cccdlflags=' ', lddlflags='-arch i386 -arch x86_64 -bundle -undefined dynamic_lookup -fstack-protector' Characteristics of this binary (from libperl): Compile-time options: HAS_TIMES MULTIPLICITY PERLIO_LAYERS PERL_DONT_CREATE_GVSV PERL_HASH_FUNC_ONE_AT_A_TIME_HARD PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP PERL_PRESERVE_IVUV PERL_SAWAMPERSAND 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 Locally applied patches: /Library/Perl/Updates/ comes before system perl directories installprivlib and installarchlib points to the Updates directory Built under darwin Compiled at Jul 9 2015 01:30:43 %ENV: PERL5LIB="/Users/jrg/perl5/lib/perl5:" PERL_LOCAL_LIB_ROOT=":/Users/jrg/perl5" PERL_MB_OPT="--install_base /Users/jrg/perl5" PERL_MM_OPT="INSTALL_BASE=/Users/jrg/perl5" @INC: /Users/jrg/perl5/lib/perl5/darwin-thread-multi-2level /Users/jrg/perl5/lib/perl5 /Library/Perl/5.18/darwin-thread-multi-2level /Library/Perl/5.18 /Network/Library/Perl/5.18/darwin-thread-multi-2level /Network/Library/Perl/5.18 /Library/Perl/Updates/5.18.2/darwin-thread-multi-2level /Library/Perl/Updates/5.18.2 /System/Library/Perl/5.18/darwin-thread-multi-2level /System/Library/Perl/5.18 /System/Library/Perl/Extras/5.18/darwin-thread-multi-2level /System/Library/Perl/Extras/5.18 .
Any help and suggestions would be greatly appreciated!
Upvotes: 0
Views: 336
Reputation: 13
I'm going to go ahead and answer this as I figured out a way for it to work, though it poses yet another question: Why were permissions changed for where Perl modules are installed? Thankfully, this is only on my dev computers and nothing is accessed via the web, for which I use linux servers.
I tried again and realized that perl said that when it tried to load the module, it got a "permission denied" error. So, I just re-ran the script using sudo...and it worked. I guess it must be some sort of permissions changes.
Upvotes: 0
Reputation: 385496
Locating them is not going to help. You need to reinstall them anyway. Perl doesn't maintain binary API compatibility between version (though you can safely upgrade to a newer release of the same version).
Upvotes: 0