Debian Linux Perl installation (testing dist)

Discussion in 'Perl Misc' started by bill, Feb 12, 2004.

  1. bill

    bill Guest

    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
     
    bill, Feb 12, 2004
    #1
    1. Advertising

  2. bill

    gnari Guest

    "bill" <> wrote in message
    news:c0ga9h$lhs$...
    >
    > 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
     
    gnari, Feb 12, 2004
    #2
    1. Advertising

  3. bill <> writes:
    > 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
    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
    --
    Come to think of it, there are already a million monkeys on a million
    typewriters, and Usenet is NOTHING like Shakespeare.
    -- Blair Houghton.
     
    Eric Schwartz, Feb 12, 2004
    #3
  4. 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
    --
    $_=q#",}])!JAPH!qq(tsuJ[{@"tnirp}3..0}_$;//::niam/s~=)]3[))_$-3(rellac(=_$({
    pam{rekcahbus})(rekcah{lrePbus})(lreP{rehtonabus})!JAPH!qq(rehtona{tsuJbus#;
    $_=reverse,s+(?<=sub).+q#q!'"qq.\t$&."'!#+sexisexiixesixeseg;y~\n~~dddd;eval
     
    Tassilo v. Parseval, Feb 12, 2004
    #4
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Replies:
    9
    Views:
    2,667
    Chris Mellon
    Dec 1, 2005
  2. Luke Kenneth Casson Leighton
    Replies:
    0
    Views:
    501
    Luke Kenneth Casson Leighton
    Dec 31, 2008
  3. Geoff Gardiner
    Replies:
    10
    Views:
    512
    Lawrence D'Oliveiro
    May 12, 2009
  4. Replies:
    3
    Views:
    122
    MenTaLguY
    Feb 26, 2007
  5. Petterson Mikael

    load modules that are not part of the perl dist

    Petterson Mikael, Jun 21, 2005, in forum: Perl Misc
    Replies:
    14
    Views:
    213
    Paul Lalli
    Jun 21, 2005
Loading...

Share This Page