"perl" vs "site" vs "vendor"

K

kj

I've been using Perl for years, but I must confess I have *no idea*
what the ExtUtils::MakeMaker documentation means by the terms
"perl", "site", and "vendor" in the table

INSTALLDIRS set to
perl site vendor

PERLPREFIX SITEPREFIX VENDORPREFIX
INST_ARCHLIB INSTALLARCHLIB INSTALLSITEARCH INSTALLVENDORARCH
INST_LIB INSTALLPRIVLIB INSTALLSITELIB INSTALLVENDORLIB
etc., etc.

(Infuriatingly enough, this POD doesn't deign to define these
terms for the great unwashed.)

I have searched for what these terms ("perl"/"site"/"vendor") mean
in this context, but the definitions I've found have been, to me
at least, as clear as mud...

I think it would help me more to see some *concrete examples* of
the kinds of modules that correspond to each of the three terms.

In particular I would like to know which (if any) of these three
categories is the one for modules that are written in-house.

Thanks!

kj
 
B

Ben Morrow

Quoth kj said:
I've been using Perl for years, but I must confess I have *no idea*
what the ExtUtils::MakeMaker documentation means by the terms
"perl", "site", and "vendor" in the table

INSTALLDIRS set to
perl site vendor

PERLPREFIX SITEPREFIX VENDORPREFIX
INST_ARCHLIB INSTALLARCHLIB INSTALLSITEARCH INSTALLVENDORARCH
INST_LIB INSTALLPRIVLIB INSTALLSITELIB INSTALLVENDORLIB
etc., etc.

(Infuriatingly enough, this POD doesn't deign to define these
terms for the great unwashed.)

I have searched for what these terms ("perl"/"site"/"vendor") mean
in this context, but the definitions I've found have been, to me
at least, as clear as mud...

I think it would help me more to see some *concrete examples* of
the kinds of modules that correspond to each of the three terms.

My copy of perl was installed by my linux distro (Gentoo). Modules that
came with perl (e.g. Storable) are under PERLPREFIX, which in my case is
/usr/lib/perl5/5.8.7. Modules I installed using Portage (Gentoo's
package manager) are installed under VENDORPREFIX, which is
/usr/lib/perl5/vendor_perl/5.8.7. Modules I installed myself using
CPAN.pm (or otherwise) are installed under SITEPREFIX, which is
/usr/lib/perl5/site_perl/5.8.7.
In particular I would like to know which (if any) of these three
categories is the one for modules that are written in-house.

Site, unless you package it up into something your vendor's package
manager can install for you, when it will (or should) put it under
Vendor.

Ben
 
P

Peter J. Holzer

kj said:
I've been using Perl for years, but I must confess I have *no idea*
what the ExtUtils::MakeMaker documentation means by the terms
"perl", "site", and "vendor" in the table

INSTALLDIRS set to
perl site vendor

PERLPREFIX SITEPREFIX VENDORPREFIX
INST_ARCHLIB INSTALLARCHLIB INSTALLSITEARCH INSTALLVENDORARCH
INST_LIB INSTALLPRIVLIB INSTALLSITELIB INSTALLVENDORLIB
etc., etc.

(Infuriatingly enough, this POD doesn't deign to define these
terms for the great unwashed.)

I have searched for what these terms ("perl"/"site"/"vendor") mean
in this context, but the definitions I've found have been, to me
at least, as clear as mud...

perl is for the perl core installation.

vendor is for optional modules provided by the vendor (e.g., the Linux
distribution).

site is any additional modules installed by the site's sysadmin (either
from CPAN or developed in-house).

I think it would help me more to see some *concrete examples* of
the kinds of modules that correspond to each of the three terms.

It's not about the kinds of modules, it is about their source. Most Unix
and Linux systems have a packaging system which keeps track of which
package contains which files, and it's not a good idea to randomly
overwrite or delete files installed by the package manager. The
MakeMaker directory scheme keeps them in different directories, so that
modules you install via CPAN don't clash with modules installed via your
systems package management.
In particular I would like to know which (if any) of these three
categories is the one for modules that are written in-house.

site.

(That's also what MakeMaker uses unless you tell it otherwise)

hp
 
I

Ilya Zakharevich

[A complimentary Cc of this posting was NOT [per weedlist] sent to
Peter J. Holzer
It's not about the kinds of modules, it is about their source.

My personal mental model is that it is about who *administers* the
installed versions. And one more category is missing - user (see the
recent thread on c.l.p.moderated).

Hope this helps,
Ilya
 
P

Peter J. Holzer

Ilya said:
My personal mental model is that it is about who *administers* the
installed versions.

Yes, that's better. "Source" is a bit misleading.

hp
 
B

Big and Blue

Ilya said:
My personal mental model is that it is about who *administers* the
installed versions. And one more category is missing - user (see the
recent thread on c.l.p.moderated).

I agree. It's not about their source, it's about their destination.

Core modules are set to install to "perl" by default (even when you
download updates from CPAN).

Other CPAN modules install to "site" by default.

Modules written/supplied by vendors install to "vendor".

But you can install any CPAN module anywhere you want, provided you have
the rights to put the files there.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top