Sollte ein Perl-Modul gebraucht werden, was noch nicht installiert ist, führt der erste und wichtigste Blick in die Paketverwaltung.
Dort stehen die Modulnamen meinstens in den Beschreibungen "aptitude search ~dNet::Amazon". Wenn das Modul in einer Version vorhanden ist, die Ihr gebrauch könnt, installiert nutzt es. Der Vorteil der Paketverwaltung ist, dass Ihr Euch um Sicherheits- und andere Updates nicht mehr kümmern müsst.
Wenn Ihr eine höhere Versionsnummer als die vorhandene benötigt, könnt Ihr vielleicht das entsprechende Paket einer aktuelleren Version von Ubuntu benutzen. Hier hilft apt-pinning. Das ist aber nicht das Thema dieses Postings, dazu schreibe ich später noch etwas.
Funktioniert auch das nicht, müssen die Module via CPAN installiert werden.
Die installierten Module sollen nach ~/PerlMod/lib und die man-Pages nach ~/PerlMod/man.
Dazu habe ich mir eine MyConfig.pm erstellt, die unter ~/.cpan/CPAN liegt. Solltet Ihr diese übernehmen, prüft bitte, ob die Programme, die dort erwähnt werden auch alle vorhanden sind. Sonst nachinstallieren oder die Variable löschen.
$CPAN::
Config =
{ 'build_cache' =>
q[10],
'build_dir' =>
q[~/.cpan/build
],
'cache_metadata' =>
q[1],
'cpan_home' =>
q[~/.cpan
],
'cpan_version_check' =>
q[1],
'dontload_hash' =>
{ },
'ftp' =>
q[/usr/bin/ftp
],
'ftp_proxy' =>
q[],
'getcwd' =>
q[cwd
],
'gpg' =>
q[/usr/bin/gpg
],
'gzip' =>
q[/bin/gzip
],
'histfile' =>
q[~/.cpan/histfile
],
'histsize' =>
q[100],
'http_proxy' =>
q[],
'inactivity_timeout' =>
q[0],
'index_expire' =>
q[1],
'inhibit_startup_message' =>
q[0],
'keep_source_where' =>
q[~/.cpan/sources
],
'lynx' =>
q[/usr/bin/lynx
],
'make' =>
q[/usr/bin/make
],
'make_arg' =>
q[],
'make_install_arg' =>
q[UNINST=
0],
'makepl_arg' =>
q[PREFIX=~/PerlMod/lib LIB=~/PerlMod/lib INSTALLMAN1DIR=~/PerlMod/man/man1 INSTALLMAN3DIR=~/PerlMod/man/man3
],
'ncftpget' =>
q[/usr/bin/ncftpget
],
'no_proxy' =>
q[],
'pager' =>
q[/usr/bin/less
],
'prerequisites_policy' =>
q[ask
],
'scan_cache' =>
q[atstart
],
'shell' =>
q[/bin/bash
],
'tar' =>
q[/bin/tar
],
'term_is_latin' =>
q[0],
'unzip' =>
q[/usr/bin/unzip
],
'urllist' =>
[q[http://cpan.mirror.solnet.ch
]],
'wget' =>
q[/usr/bin/wget
],
};
1;
_END_
Um die Module verwenden zu können, muss entweder in das Perl-Skript die Zeile
use lib
qw( ~/PerlMod/lib
);
aufgenommen werden oder die Umgebungsvariable
export PERL5LIB=${HOME}/PerlMod/lib
gesetzt werden.
Ich tendiere zur ersten Variante, da damit auch andere User des Rechners (wie beispielsweise auch root) die Skripte ausführen können, ohne etwas umstellen zu müssen (vorausgesetzt sie haben Leserechte auf das PerlMod-Verzeichnis und den dazugehörigen Unterverzeichnissen und Daten).