User since
2010-06-01
120
articles
BenutzerIn
Hallo,
ich hab mehrere Linux-Rechner in einem Netzwerk und möchte, wenn ich scripte schreibe, die irgendwelche cpan-Module benötigen, die Module nicht immer auf jedem Rechner einzeln installieren. Als Lösung dafür scheint mir perlbrew sehr geeignet (für Alternativen bin ich offen).
Ich wollte perlbrew in ein NFS-exportiertes Verzeichnis installieren und dann von allen Rechnern auf das perl dort zugreifen, schätze, dass das an sich auch klappen würde, allerdings hab ich noch ein bisschen mehr gebastelt und zumindest so geht es nicht:
Da die NFS-Partition nicht soo groß ist, wollte ich nur die nötigen binaries und libraries dort hineinlegen. Ich hab also /usr/share/perlbrew als mein $PERLBREW_ROOT, /usr/share/perlbrew/.perlbrew als $PERLBREW_HOME exportiert, perl5.14.2 und cpanm via perlbrew installiert (letzteres mit perlbrew install-cpanm) und dann zum testen noch PDL mit $PERLBREW_ROOT/bin/cpanm PDL in der 'perlbrew use 5.14.2'-shell. Als nächstes habe ich den Ordner $PERLBREW_ROOT/perls/perl-5.14.2 auf die NFS-exportierte Partition verschoben und durch nen softlink ersetzt.
Wenn ich jetzt von nem anderen PC aus ein script mit dem NFS-Perl ausführen möchte, beschwert er sich, das in @INC nur die /usr/share/perlbrew-Ordner sind. Mit use lib kann ich daran nichts ändern, weil er ja schon lib.pm nicht findet.
Eine Lösung dazu ist wohl, perlbrew gleich in den exportierten Ordner zu installieren und dann einfach die nicht benötigten Ordner (v.a. $PERLBREW_ROOT/build) zu verschieben und verlinken. Das wird wohl auch mein nächster Schritt sein. Aber prinzipiell geht das natürlich nur, wenn der Ordner auf dem nfs-host genauso heißt, wie auf den clients, was sicherlich nicht immer der Fall ist.
Zweitens hab ich nicht herausgefunden, wohin während des ganzen Prozesses das PDL-Modul installiert wurde... Ein find $PERLBREW_ROOT -name PDL.pm hat zumindest nichts ergeben. Auf dem host-Rechner konnte ich das Modul benutzen, auf den clients konnte ich es nicht ausprobieren. Installiert das $PERLBREW_ROOT/bin/cpanm automatisch in das perlbrew-perl, oder kann es auch in meinem system-perl gelandet sein?
Und, eher nebensächlich, /usr/share/perlbrew/.perlbrew, mein $PERLBREW_HOME wurde nie angelegt...macht das was?
Würde mich über sämtliche Tips und Einsichten freuen, Sven :)
Edit: Mal abgesehen von dem PDL vielleicht, sollte eigentlich alles in dem perlbrew-Ordner gelandet sein, bei meiner Bastelei, oder? Oder wird da sonst noch wo was angelegt, das ich löschen sollte, wenn ich es neu mach, um meinen Rechner nicht zu vermüllen?
Last edited: 2012-04-25 10:01:00 +0200 (CEST)