Debian Linux Perl installation (testing dist)

B

bill

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


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)?

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/.

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?

Thanks!

bill
 
G

gnari

bill said:
I have three questions for anyone knowledgeable about Linux Debian's
Perl installation.

you might want to sent these questions to one of the debian mailing lists,
debuian user or there might be a debian perl mailing list even.
they are ususally quite helpful
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:

if you do not agree with a binary distribution's setting, you use the
source.

to make sure you have all build tools installed:
apt-get install build-essential
get the source
apt-get source perl
now the source has been unpacked. enter the source dir,
make your changes.
and if my memory serves me:
dpkg-buildpackage
this will create new debian packages you can install with dpkg


alternatevely, download original perl source tarball
and install as usual under /usr/local/

-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN -Dcccdlflags=-fPIC -Darchn
ame=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 -Dman3d
ir=/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_d
osuid -des

just curious, what specifically offends you here?
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

the /usr/local stuff is for modules installed by you (as opposed to
from debian packages)
the /share stuff is arch independent (pure perl)
...

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?

debian have their own strict standards, that will usually overide the
original package's. this (usually) results in easier maintainance,
fewer depedency problems and smoother upgrades
Will apt-get and dpkg get hopelessly confused if
I manually create these arch-dependent directories and move the
auto subdirectories to them?

yes.
the package system is aware what package owns what file, and
will not be able to remove moved items at package upgrade or
uninstallation.

gnari
 
E

Eric Schwartz

bill said:
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:

I think you're confused; the bits you cite are from Perl's
configuration, not dpkg or apt-get's. Debian is based on binary
packages; if you don't like them, you may compile your own (but then
you miss out on the automatic dependency tracking that Debian does for
you).
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?

See FHS. /usr/share is for arch-independent stuff that can be shared
among many different types of machines. /usr/lib is for
arch-dependent stuff (i.e., XS modules). Debian doesn't touch
/usr/local, except to provide the directory hierarchy for you to put
local modules there if you like.
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)?

Did you read the Debian Perl policy? There are reasons for that, and
(e-mail address removed) is more likely to get you answers than
clpm. Short answer: perl/5.8.2 is for core modules provided with
5.8.2 and perl5/ is for "other" modules that theoretically don't care
which version of Perl they're used with, as long as it's 5.something.

Full policy is at:
http://www.debian.org/doc/packaging-manuals/perl-policy/

debian-perl archives are at:
http://lists.debian.org/debian-perl/
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/.

Yes, because you can share /usr/share between machines of a different
architecture, but /usr/lib is defined by FHS (itself a subcomponent of
LSB) to be architecture-dependent. I'm not a member of the Debian
Perl team, but I imagine they decided that since /usr/lib is already
arch-dependent, there's no reason to add yet another directory there.
But again, this is sheer guessing, and you'd be best off asking
debian-perl about that.
This can lead to installation bugs (as I've posted in another clpm
thread).

That appears to be from trying to keep Debian's perl around while you
compile your own. As you've noted, that's a royal PITA, but perhaps
someone on the debian-perl list might be able to help. Normally, I'd
say just uninstall perl, but since it's in base, and a ton of other
things depend on it, you might have to install your version under /opt
or /usr/local/perl or some such.
What's Debian's rationale from deviating from Perl's standard here?

Why don't you ask them, instead of asking here?
Will apt-get and dpkg get hopelessly confused if
I manually create these arch-dependent directories and move the
auto subdirectories to them?

Probably, but you'd be better served by asking on a Debian mailing
list than a Perl one, I imagine.

-=Eric
 
T

Tassilo v. Parseval

Also sprach bill:
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:

[...]

You can't. Debian gives you a precompiled package. Last time I looked (I
had the same problems: I don't want a threaded perl for example) they
only had one.

So just compile your own Perl. This is what I always do.

Tassilo
 

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,965
Messages
2,570,148
Members
46,710
Latest member
FredricRen

Latest Threads

Top