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

Re: Debian's Perl installation



I can only answer some of these questions, but have forwarded the rest
to the debian-perl mailing list.

kynn@panix.com wrote:
>   ======================================================================
>   ( posted by "bill" in comp.lang.perl.misc)
> 
> 
> 
>   I have three questions for anyone knowledgeable about Linux Debian's
>   Perl installation.
> 
>   The first question is, how can I change the Configure parameters
>   that apt-get or dpkg -i use?  The default installation (at least for
>   the testing distribution) has these values, which I don't entirely
>   agree with:
> 
>   -Dusethreads -Duselargefiles -Dccflags=-DDEBIAN -Dcccdlflags=-fPIC -Darchname=i386-linux -Dprefix=/usr -Dprivlib=/usr/share/perl/5.8.2 -Darchlib=/usr/lib/perl/5.8.2 -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.8.2 -Dsitearch=/usr/local/lib/perl/5.8.2 -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3 -Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Uusesfio -Uusenm -Duseshrplib -Dlibperl=libperl.so.5.8.2 -Dd_dosuid -des

apt and dpkg do not compile software, they download preconpiled
software. Use apt-get source to download the source package, and edit
debian/rules to change how it configures perl, then dpkg-buildpackage
will build a modified set of perl .debs. Note that you run a risk
of breaking your system by changing how perl is configured or installed.
 
>   My second question has to do with the default installation's library
>   directory structure.  Mine (again, testing distribution) has library
>   files in
> 
>   /usr/lib/perl/5.8.2/
>   /usr/lib/perl5
>   /usr/local/lib/perl/5.8.2/
>   /usr/share/perl/5.8.2/
>   /usr/local/share/perl/5.8.2/
>   /usr/share/perl5
> 
>   What's up with lib vs. share?  And perl/5.8.2 vs. perl5?  What's the
>   rationale for breaking things up this way?  Why not just a single
>   perl/5.8.2 directory, or at most /usr/lib/perl/5.8.2 and
>   /usr/local/lib/perl/5.8.2 (with corresponding arch-dependent
>   directories)?

/usr/lib/perl is for architecture dependent perl modules. This can
include binary modules, but could also include perl code that is tightly
bound to such modules, or to a given architecture. /use/share/perl is
for perl code that can be shared between architectures.

Of course the /usr/local/ stuff is for overriding or locally installing
perl modules. Note that "local" can include across a network of systems,
which is why we have the seemingly paradoxical /usr/loval/share, which
is in fact mentioned in the Filesystem Hierarchy Standard (FHS).

The distinction between the perl/<version> and perl5 directories is that
the former are modules provided in perl itself, as part of the perl
core, while for latter are "vendor" modules, provided in this case as
add-on modules by other debian packages. Note that it's possible for a
vendor module to override a core module, and in fact there are a few
perl module packages in debian that override a module in the perl core
with a newer version.

>   My third question has to do with the location of auto subdirectories
>   and other architecture-dependent stuff.  It appears that Debian's
>   default is to put this stuff directly in /usr/lib/perl/5.8.2/ and
>   /usr/local/lib/perl/5.8.2/, instead of segregating in directories
>   like /usr/lib/perl/5.8.2/some-architecture-string/ and
>   /usr/local/lib/perl/5.8.2/some-architecture-string/.

I can't answer this.

>   This can lead to installation bugs (as I've posted in another clpm
>   thread).  What's Debian's rationale from deviating from Perl's
>   standard here?  Will apt-get and dpkg get hopelessly confused if I
>   manually create these arch-dependent directories and move the auto
>   subdirectories to them?

I can answer this. They will stop managing the files you have moved, and
leave the moved versions as they are on upgrade, while in the meantime
unpacking new versions to the old location. Debian's perl will also
not see the files in the new location, and will break.

-- 
see shy jo

Attachment: signature.asc
Description: Digital signature


Reply to: