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

Re: installsitearch & installsitelib in perl-modules



On Wed, Oct 10, 2001 at 06:39:26PM -0300, Adriano Nagelschmidt Rodrigues wrote:
>The modules I download from CPAN are being installed under
>/usr/local/{lib,share}/perl/5.6.1
>
>Is it really necessary to keep the full version number, and have
>multiple 5.6.x directories (which need also be present in @INC)?
>
>Wouldn't /usr/local/{lib,share}/perl/5.6 do?
>
>I recall that v5.6 isn't binary compatible with earlier v5 versions. I
>guess it could happen again with future 5.x versions, leaving
>/usr/local/{lib,share}/perl5 out of the question...
>
>Maybe I'm missing something ;-)

You're missing section 1.3 of the Perl Policy document where the
ordering of @INC is given.  What that section is perhaps missing is a
rationale as to why that ordering has been chosen.

Note that directories for previous compatible versions are only included
if they exist.  Try this and then look at the resulting @INC:

  mkdir -p /usr/local/lib/perl/5.6.0 /usr/local/lib/perl/5.005 \
      /usr/local/share/perl/5.6.0 /usr/local/share/perl/5.005

The reason for splitting current site and old site directories is due
Debian's ordering of @INC reversing the normal sequence, placing site
directories before both the vendor directories (where module packages
install) and the core perl directories.

As structured, the administrator may install packages locally which will
override packaged and core modules for the version of perl it was
installed with.

When perl is upgraded, those locally installed modules should still be
available although will no longer shadow the packaged and core
modules--the reasoning being that the current release of perl
theoretically contains the current version of modules which we don't
wish to override with an older version.

Regards,
-- 
Brendan O'Dea                                        bod@compusol.com.au
Compusol Pty. Limited                  (NSW, Australia)  +61 2 9810 3633



Reply to: