Re: Updated to F20, now perl can't find installed modules

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 04/01/2014 02:57 PM, Sean Darcy wrote:
On 04/01/2014 02:34 PM, Sean Darcy wrote:
Just upgraded from F19 to F20. perl-5.18.2-289.fc20.x86_64

As root:

# perl -V
Summary of my perl5 (revision 5 version 18 subversion 2) configuration:

   Platform:
     osname=linux, osvers=3.11.9-200.fc19.x86_64,
archname=x86_64-linux-thread-multi
..........
   Built under linux
   Compiled at Jan  7 2014 14:47:21
   %ENV:

PERL5LIB="/root/perl5/lib/perl5/x86_64-linux-thread-multi:/root/perl5/lib/perl5"


     PERL_LOCAL_LIB_ROOT="/root/perl5"
     PERL_MB_OPT="--install_base /root/perl5"
     PERL_MM_OPT="INSTALL_BASE=/root/perl5"
   @INC:
     /root/perl5/lib/perl5/x86_64-linux-thread-multi
     /root/perl5/lib/perl5
     /usr/local/lib64/perl5
     /usr/local/share/perl5
     /usr/lib64/perl5/vendor_perl
     /usr/share/perl5/vendor_perl
     /usr/lib64/perl5
     /usr/share/perl5

BTW, there is no /root/perl5 folder.

# perl -e 'use strict; print map {"$_ => $INC{$_}\n"} keys %I'
strict.pm => /usr/share/perl5/strict.pm

As a user:

$ perl -e 'use strict; print "ok"'
Can't locate strict.pm:   Permission denied at -e line 1.
BEGIN failed--compilation aborted at -e line 1.

$ ls -l /usr/share/perl5/strict.pm
-rwxr-xr-x. 1 root root 3933 Jan  7 09:48 /usr/share/perl5/strict.pm

$ perl -e 'print join "\n", @INC'
/root/perl5/lib/perl5/x86_64-linux-thread-multi
/root/perl5/lib/perl5
/usr/local/lib64/perl5
/usr/local/share/perl5
/usr/lib64/perl5/vendor_perl
/usr/share/perl5/vendor_perl
/usr/lib64/perl5
/usr/share/perl5


This works as root. And used to work as a user in F19. And works on
another F19 machine.

Any help appreciated.

sean


And the user can read strict.pm:

$ cat /usr/share/perl5/strict.pm
package strict;

$strict::VERSION = "1.07";
...............


What's going wrong here?

sean


Got an answer:

The problem is that the module search behavior changed from 5.16 (F19) to 5.18 (F20). Now perl will stop looking for modules if any prior folder is not allowed. Before PERL5LIB extended @INC. Now if it includes /root. for instance, any module search by a non-root user will fail. Each non-root user needs to have PERL5LIB referring only to folders where it has read permission.

Whew. Figured this out with the great assistance of the Perl Monks.

--
users mailing list
users@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe or change subscription options:
https://admin.fedoraproject.org/mailman/listinfo/users
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct
Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines
Have a question? Ask away: http://ask.fedoraproject.org




[Index of Archives]     [Older Fedora Users]     [Fedora Announce]     [Fedora Package Announce]     [EPEL Announce]     [EPEL Devel]     [Fedora Magazine]     [Fedora Summer Coding]     [Fedora Laptop]     [Fedora Cloud]     [Fedora Advisory Board]     [Fedora Education]     [Fedora Security]     [Fedora Scitech]     [Fedora Robotics]     [Fedora Infrastructure]     [Fedora Websites]     [Anaconda Devel]     [Fedora Devel Java]     [Fedora Desktop]     [Fedora Fonts]     [Fedora Marketing]     [Fedora Management Tools]     [Fedora Mentors]     [Fedora Package Review]     [Fedora R Devel]     [Fedora PHP Devel]     [Kickstart]     [Fedora Music]     [Fedora Packaging]     [Fedora SELinux]     [Fedora Legal]     [Fedora Kernel]     [Fedora OCaml]     [Coolkey]     [Virtualization Tools]     [ET Management Tools]     [Yum Users]     [Yosemite News]     [Gnome Users]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [Fedora Sparc]     [Libvirt Users]     [Fedora ARM]

  Powered by Linux