Perl-Module nachinstallieren

Mit den gaengigen Linux-Distributionen wird ein grosser Haufen an Perl-Modulen bereits ausgeliefert. Manchmal ist es aber so, dass genau das eine Modul, das man gerade benötigt, nicht vorhanden ist.

Die Modulnamen sind meistens in den Beschreibungen der Pakete zu finden, so dass ein aptitude search ~dDBD::JDBC (unter Debian basierten Distributionen) in der Regel zum Ziel fuehrt. Wenn die Version des Moduls passt, sollte es aus der Paketverwaltung genutzt werden. Hier fliessen Sicherheitsupdates ein, die man nicht manuell nachpflegen muss, wenn man das Modul selber baut. Wenn Ihr eine aktuellere Version benoetigt, lohnt sich vielleicht ein Blick in aktuellere Distributionen.

Hilft das nicht, muessen wir doch ran. Dazu wird mit sudo aptitude install build-essential (wieder in Debian basierten Linuxen) erst einmal alles installiert, was man zum uebersetzen braucht

Ich halte es auf meinen Systemen so, dass ich die Module als User baue und auch im Homeverzeichnis meines Users installiere. Der Vorteil ist meiner Ansicht nach, dass damit nichts gemischt wird, Die Module gehen nach ~/PerlMod/lib und die man-Pages nach ~/PerlMod/man (wenn man sie auch aufrufen will, hilft ein export MANPATH=${MANPATH}:~/PerlMod/man).

Ihr koennt das Programm cpan ausfuehren und die Fragen beantworten, um Euch Eure ~/.cpan/CPAN/MyConfig.pm zu erstellen. Wichtig ist, dass Ihr spaeter ueberprueft, ob folgende Variable innerhalb der Datei gesetzt ist, da sonst die Module mit dem Modulen der Distribution gemischt werden:

'makepl_arg' => q[PREFIX=~/PerlMod/lib LIB=~/PerlMod/lib INSTALLMAN1DIR=~/PerlMod/man/man1 INSTALLMAN3DIR=~/PerlMod/man/man3]

Anschliessend koennen die Module mit cpan i DBD::JDBC oder interaktiv nach Aufruf von cpan mit install DBD::JDBC installiert werden.

ACHTUNG: Module haengen in der Regel von anderen Modulen ab und es ist ratsam sich die Arbeit zu machen, die Abhaengigkeiten weitestgehend mit der Paketverwaltung zu loesen. Dazu beantwortet man die Fragen nach der Installation neuer Pakete mit „no“, sucht die Module in der Paketverwaltung und installiert diese. Ja, das ist muehsam.

Um die Module in eigenen Skripten verwenden zu koennen, kann man sich einer von zwei Moeglichkeiten bedienen. Entweder man verweist im Skript mittels use lib qw( /home/ich/PerlMod/lib ); auf das zusaetzliche Modulverzeichnis oder man setzt die Umgebungsvariable PERL5LIB mit dem Pfad, beispielsweise export PERL5LIB=${HOME}/PerlMod/lib.

Ich halte die erste Variante fuer besser, weil damit nur durch Anschauen des Skriptes klar wird, dass eigene Module verwendet werden.

Wenn jemand die angefuehrten Befehle fuer andere Distributionen auswendig kennt, nur her und ab in die Kommentare damit. Anmerkungen und Korrekturen sind ebenfalls willkommen.

Zurück zur Uebersicht