Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Comment on

( #3333=superdoc: print w/ replies, xml ) Need Help??

CAVEAT

Respected monks have mentioned drawbacks to this approach, and alternative methods.   This method has worked well for me so far, but I'd encourage you to read and consider the other posts in this thread. Props to da monks for feedback.   8^)

OBJECTIVE

Install a second, parallel & independant, Perl on a Debian host without breaking Debian's dependance on its own provided Perl, *and* without dipping into Debian testing or unstable distributions.

BACKGROUND

The Debian GNU/Linux distribution uses Perl for some of its key/core operations, and many Debian packages require deb-packaged perl modules, which are generally quite old.   This can cause problems for a Debian-using Perler, which boil down to conflicts between Debian and Perl's package management systems.

By installing a parallel Perl, a Debian user can install deb-packaged Perl modules to his heart's content, while still intalling ofttimes newer modules from CPAN to the second Perl.   The only drawback I know of is that modules will need to be installed separately for each Perl install - via apt-get for system, and CPAN for user.

Comments, corrections, and improvements are welcome and invited.


PREREQUISITES/ASSUMPTIONS

  • working installation of Debian Woody
  • active Internet connection
  • competence (not necessarily expertise) with both Linux and Perl
  • Debian Woody (stable)
  • Debian Perl 5.6.1
  • Perl Perl 5.8.0

ACTIONS

1.fetch, extract, and install Perl 5.8.0

wget http://cpan.org/src/stable.tar.gz
tar -zxvf stable.tar.gz
cd perl-5.8.0
rm -f config.sh Policy.sh
sh Configure -de
make
make test
make install

2.revert system Perl to Debian-standard 5.6.1

cd /usr/bin
rm perl
ln -isv perl5.6.1 perl

3.set user Perl to 5.8.0

cd /usr/local/bin
rm perl
ln -isv perl5.8.0 perl

4.confirm new Perl 5.8.0 is user Perl

perl -e 'print "$]\n";' should tell you "5.008".
Make sure this is right before proceeding to step 5, or you won't be doing what you want to be doing, and may very well hork your Debian install beyond recognition.   Here there be dragons.

5.install desired modules

Use your favorite method (CPAN or CPAN autobundle or CPANPLUS or fetch/perl Makefile.PL/make/make test/make install) to install your favorite modules for your favorite shiny new Perl.

A snippet to list installed non-core modules:

#!/usr/bin/perl -w # modver.pl 2003-08-22 07:05 CDT ybiC # commandline tool gens list of installed non-core Perl modules & thei +r versions # shamelessly stolen from, I mean inspired by, jeffa & hacker use strict; use ExtUtils::Installed; my $delim = shift || ' '; my $inst = ExtUtils::Installed->new(); print $inst->version($_), $delim, $_, $/, for $inst->modules();

perldoc perllocal will do similarly, but with significantly more verbose output.


SUNDRY NOTES

check path and Perl versions

set|grep PATH
PATH= ...:/usr/local/bin:/usr/bin:...
whereis perl
  perl: /usr/bin/perl /usr/local/bin/perl ...

perl -e 'print "$]\n";' 5.008
/usr/local/bin/perl -e 'print "$]\n";' 5.008
/usr/bin/perl -e 'print "$]\n";' 5.006001

Perl binary executables

/usr/bin/perl              symlinked to ./perl5.6.1 by /me
 /usr/bin/perl-5.6          Debian-standard
 /usr/bin/perl5.6.1         Debian-standard
 /usr/bin/perl5.8.0         from source
 /usr/local/bin/perl        symlinked to ./perl5.8.o by /me
 /usr/local/bin/perl5.8.0   from source

perl module directories

core debian:
   /usr/lib/perl/5.6.1/
   /usr/share/perl/5.6.1/
non-core debian:
   /usr/lib/perl5/
core from source:
   /usr/local/lib/perl5/5.8.0/
none-core installed by user:
   /usr/local/lib/perl5/site_perl/5.8.0/

Debian docs

/usr/share/doc/debian-policy/perl-policy.html/
/usr/share/doc/libperl5.6
/usr/share/doc/perl/
/usr/share/doc/perl-base/
/usr/share/doc/perl-doc/
/usr/share/doc/perl-modules/

Debian admin/config perl scripts, modules

/usr/share/perl5/

LINKS


CREDITS

Thanks to hacker, jeffa, tye, and I forget who else for consciously or otherwise helping me get this much figured out.   Oh yeah, and some guy named vroom.


TODO

  • include info from Intrepid's excellent reply below, as viable alternative.
  • clarify problems caused by Debian's internal use of Perl, Debian's CPAN module packaging, and by Perl's CPAN package handling, as suggested below by brer theorbtwo
  • Document making Debian package(s) of additional Perls

UPDATES

2003-09-14   12:55 CDT
  • break out 'sundry notes' into sections
  • number 'actions'
  • add bit o'verbosity to step 4
  • add 'prerequisites'
  • squink CPAN, Debin links to avoid lateral scrolling of page as per brer tye
  • further formatting tweaks for same
  • balanced <readmore> tags
  • clarify verbage in 'objective'
  • fix splleing error as per by brer ChemBoy
  • break out 'background' from 'objective'
  • mention CPAN autobundlue as per ser menolly
  • mention perdoc perllocal
  • add 'to do'
  • correct "cd /usr/bin/perl" (brain|typ)o as perl brer barrd
  • trailing <hr /> for visual separation, instead of equal signs in <h2>s, courtesy brer Aristotle
  • add 'debianize packages' to TODO, courtesy brer Fatvamp


In reply to Install parallel Perl on Debian by ybiC

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • Outside of code tags, you may need to use entities for some characters:
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?
    Username:
    Password:

    What's my password?
    Create A New User
    Chatterbox?
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others exploiting the Monastery: (15)
    As of 2014-07-28 15:49 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?

      My favorite superfluous repetitious redundant duplicative phrase is:









      Results (204 votes), past polls