Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses

Re^2: Confused about Perl module installation

by Anonymous Monk
on Dec 16, 2019 at 15:22 UTC ( #11110250=note: print w/replies, xml ) Need Help??

in reply to Re: Confused about Perl module installation
in thread Confused about Perl module installation

Hi choroba, thanks for your time! So, as I see it, I have v5.16.3 and Centos 7. I configured it to not use local::lib, so it installs whatever I install (as root) system-wide. Should I not run cpan as root? These modules are required by a web server that I am moving to a new VM.
  • Comment on Re^2: Confused about Perl module installation

Replies are listed 'Best First'.
Re^3: Confused about Perl module installation
by roboticus (Chancellor) on Dec 16, 2019 at 16:21 UTC

    Anonymous Monk:

    I've seen two common cases that give the symptoms you describe:

    1. There could be multiple versions of perl on your system. So when you log in as root and install modules from cpan, it affects the version of perl used by the root account.
      Note: If your operating system provides Perl, it's often because some of the operating system utilities use perl. So there's an operational risk in upgrading the system perl or installing/upgrading modules. Similarly, if your application is using perl, you don't want an operating system upgrade to cause you a problem by changing your perl under you (possibly exposing you to a new bug) or changing a module version. That's why we advise people to leave the system perl alone and install a different perl for your application and/or local use.
    2. The other common case is that some of the directories in your @INC path have restrictive permissions. So while the root account can access the directories to install the module(s), other accounts (such as the account your webserver is running under) don't have access, so they won't be able to find the module(s).

    Some people will compile a new perl from source manually, or use a tool like perlbrew to automate the process. I use perlbrew because it makes managing multiple versions of perl on my box simple. That way, my development box has all the versions of perl any of the production servers use.

    Since production changes have to go through testing and review processes, not all servers always run the same version of perl. So to fix a problem for a particular server, I can tell perlbrew to switch to a particular version, check out the application code and get to work. Or if I want to upgrade perl on a server, I can tell perlbrew to install the new version and run the application through its paces on my dev box to see if there are any problem areas.


    When your only tool is a hammer, all problems look like your thumb.

Re^3: Confused about Perl module installation
by Corion (Pope) on Dec 16, 2019 at 15:27 UTC

    Have you made sure that the module is not already available as a package by your OS vendor? I guess that Centos has perl-CPAN-Meta-Requirements as the vendor package. If you want to use the system Perl, you're well-advised to use the system package manager to install packages there.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://11110250]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (6)
As of 2021-04-19 07:13 GMT
Find Nodes?
    Voting Booth?

    No recent polls found