|Perl: the Markov chain saw|
Install parallel Perl on Debianby ybiC (Prior)
|on Aug 22, 2003 at 14:51 UTC||Need Help??|
CAVEATRespected 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^)
OBJECTIVEInstall 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.
BACKGROUNDThe 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.
1.fetch, extract, and install Perl 5.8.0wget http://cpan.org/src/stable.tar.gz
tar -zxvf stable.tar.gz
rm -f config.sh Policy.sh
sh Configure -de
2.revert system Perl to Debian-standard 5.6.1cd /usr/bin
ln -isv perl5.6.1 perl
3.set user Perl to 5.8.0cd /usr/local/bin
ln -isv perl5.8.0 perl
4.confirm new Perl 5.8.0 is user Perlperl -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 modulesUse 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:
perldoc perllocal will do similarly, but with significantly more verbose output.
check path and Perl versionsset|grep PATH
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 admin/config perl scripts, modules/usr/share/perl5/
CREDITSThanks 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.
UPDATES2003-09-14 12:55 CDT