[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Debian-Perl-Module mit lokalem Perl verwenden



Hi,

ich benutze debian woody. Da ich auch Perl5.8 nutzen möchte, habe ich
neben dem perl5.6 von woody Perl 5.8 aus dem Original-tar.gz von
Perl.com installiert.

Installationsziel war /usr/local. Perl5.8 läßt sich auch gut benutzen.

Perl 5.6 aus Debian möchte ich auch behalten. Das System soll so
eingerichtet werden, dass für Root und alle sonstigen Nutzer perl5.6
als Standard verwendet werden soll.

Nur ich, als Nutzer dansch, will Perl5.8 als Standard benutzen.

Seitdem ich Perl5.8 installiert habe, meldet zum Beispiel debconf
Fehler:

>debconf: Perl may be unconfigured (Can't locate Debconf/Log.pm in @INC
>(@INC contains: /usr/local/lib/perl5/5.8.0/i686-linux
>/usr/local/lib/perl5/5.8.0
>/usr/local/lib/perl5/site_perl/5.8.0/i686-linux
>/usr/local/lib/perl5/site_perl/5.8.0 /usr/local/lib/perl5/site_perl .)
>at (eval 1) line 4.
>BEGIN failed--compilation aborted at (eval 1) line 4.
>) -- aborting

Das liegt daran, dass er das Perl aus /usr/local/bin benutzt. In
/usr/bin/ hab ich folgende Perlversionen:
> perl -> perl-5.6
> perl-5.6
> perl-5.8
> perl5.6.1

Trotzdem wir beim einfachen Aufruf von perl perl5.8 aufgerufen, da
/usr/local/bine vorher im Suchpfad kommt.

Ich könnte jetzt noch aliase zum Bestimmen der Perlversion benutzen.
Was ist jedoch die beste Lösung für das Problem, da wahrscheinlich
auch andere debian-Perl-Skripte außer debconf nicht funktioneren
werden. 

Aus meiner Sicht:

a) arbeiten mit alias:
für root alias auf perl5.6, für mich alias auf perl5.8, 
bei dieser Variante weiß ich aber nicht, wie ich so etwas auch für
andere, namentlich unbekannte Nutzer (fetchmail, ...)  festlege, dass 
das alias gilt.

b) entfernen der Perl-Programme aus /usr/local/bin
dann sollten alle Nutzer zuerst den Symlink /usr/bin/perl zu perl5.6
im Pfad finden, ich setze das alias und Umgebungsvariablen für mich
auf perl5.8

c) versuche ein Shell-Skript als /usr/bin/perl zu schreiben,
dass den aufrufenden Nutzer ermittelt und dann perl zu perl5.8 oder
perl5.6 umbiegt

Hat jemand in dem Bereich schon Erfahrungen gesammelt? Welche Risiken
haben die o.g. Varianten?

Vielen Dank für Antworten im voraus!

Daniel

p.s.: Bei Perl reicht ein einfaches umbiegen des Pfades zu perl um die
Library-Pfade zu ändern.

Beispiel:
root@deb-dansch:/usr/bin# perl-5.6 -e 'for(@INC){printf"%d
%s\n",$i++,$_}'
0 /usr/local/lib/perl/5.6.1
1 /usr/local/share/perl/5.6.1
2 /usr/lib/perl5
3 /usr/share/perl5
4 /usr/lib/perl/5.6.1
5 /usr/share/perl/5.6.1
6 /usr/local/lib/site_perl
7 .
root@deb-dansch:/usr/bin# perl-5.8 -e 'for(@INC){printf"%d
%s\n",$i++,$_}'
0 /usr/local/lib/perl5/5.8.0/i686-linux
1 /usr/local/lib/perl5/5.8.0
2 /usr/local/lib/perl5/site_perl/5.8.0/i686-linux
3 /usr/local/lib/perl5/site_perl/5.8.0
4 /usr/local/lib/perl5/site_perl
5 .

-- 
Daniel Schmeck                |||      http://www.schmeckzilla.de
daniel.schmeck@epost.de      (@ @)    (http://www.pentaconisten.de)
-------------------------oOO--(_)--OOo-----------------------------
interests:     perl, vi(m), linux, html, latex         



Reply to: