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.gztar -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/binrm perl
ln -isv perl5.6.1 perl
3.set user Perl to 5.8.0
cd /usr/local/binrm 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 PATHPATH= ...:/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
Back to
Meditations