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