Module lokal installieren....
Peter Dietlein
- perl
Hallo Leute,
eine kurze Frage. Wie kann man Module lokal installieren, das heisst im lokalen Verzeichnis?
Gibt es bei der Verwendung von Makefile.PL Zusatzoptionen wie z.B.:
cd neuesModul
perl Makefile.PL PATHLOCAL=/home/PETER/Lib \ etc.
Vielleicht hat das schon jemand gemacht und kann mir weiterhelfen.
Über ein kurzes Feedback würde ich mich freuen.
Beste Grüße
Peter
Vielleicht um die Anfrage zu päzisieren: Installation der Module in meinem eigenen Homeverzeichnis...vielleicht ist das besser oder verständlicher, denn mein Admin streikt...na ja, nicht ganz, er weigert sich einfach neue Module zu installieren.
Ich habe da auch schon was gefunden, leider klappt das nicht bzw. erzeugt ein Link- Error.
INSTALLING GD IN YOUR HOME DIRECTORY
IF YOU DON'T HAVE PRIVILEGES TO INSTALL GD.pm in your system's main
Perl library directory, don't despair. You can install it into your
home directory using the following feature of Makefile.PL:
a. cd GD-1.18
b. perl Makefile.PL INSTALLDIRS=site \
INSTALLSITELIB=/home/fred/lib \
INSTALLSITEARCH=/home/fred/lib/arch
c. make
d. make install
p
You'll now need to modify your GD-using scripts to tell Perl where to
find GD. This example assumes that your home directory is at path
"/home/fred"; change it as appropriate.
#!/usr/local/bin/perl
use lib '/home/fred/lib/perl/lib',
'/home/fred/lib/perl/arch';
use GD;
... etc ...
vielleicht weiß jemand den finalen Trick.
Beste Grüße
Peter
vielleicht weiß jemand den finalen Trick.
Hm, ich habe gerade zum ersten Mal selbst Perl-Module bei mir installiert (hier bin ich selbst der Admin).
Schau Dir doch mal den Inhalt des Verzeichnisses "site-perl" auf Deiner Kiste an. Alles, was da drin ist, sind Unterverzeichnisse und *.pm-Dateien.
Genau das hast Du aber doch bereits nach "make" lokal vorliegen, und zwar im Verzeichnis "blib". Dort greift "make test" zu, um zu prüfen, ob alles funktioniert. Im Prinzip müßtest Du also eigentlich bloß dieses blib-Verzeichnis irgendwohin kopieren.
Der Trick besteht dann später darin, beim require auf das Zielverzeichnis zuzugreifen; ich würde empfehlen, dazu die Perl-Variable @INC um die Wurzel Deiner lokalen Modulverzeichnisse zu erweitern.
Schau Dir auch mal das erzeugte Makefile an - das ist alles keine Zauberei. Du kannst auch die dort eingebrannten Verzeichnispfade für die normale Installation durch einen Pfad nach eigenem Wunsch ersetzen und dann normal "make install" machen. Arg viel Anderes als das Kopieren des blib-Verzeichnisses macht "make install" aber gar nicht - außer einen Haufen PODs etc. zu kopieren.
Schau Dir auch mal das erzeugte Makefile an - das ist alles keine Zauberei. Du kannst auch die dort eingebrannten Verzeichnispfade für die normale Installation durch einen Pfad nach eigenem Wunsch ersetzen und dann normal "make install" machen. Arg viel Anderes als das Kopieren des blib-Verzeichnisses macht "make install" aber gar nicht - außer einen Haufen PODs etc. zu kopieren.
Hallo Michael,
danke für Deinen Gedankenanstoß. In der Tat liegt der Schlüssel im Makefile. Hier reicht's anscheinend folgende Einträge zu editieren um den Installationspfad auf des eigene Verzeichnis zu lenken.
PREFIX = /home/eigenesVerzeichnis
INSTALLDIRS = site
.
.
INSTALLSITELIB = $(PREFIX)/lib
INSTALLSITEARCH = $(PREFIX)/arch
danach werden mit make .blib Verzeichnisse erstellt, und mit make install die Installation durchgeführt. Das Herz ist mir ein bißchen in die Hose gerutscht als ich rm /usr/lib/perl5/datei1 - /usr/lib/perl5/datei100 las. Ich hab schon meinen Admin mit einer Pumpgun vor der Tür stehen sehen, aber na, anscheinend scheint alles noch zu funktionieren..., na ja so etwas versetzt mir immer einen zeimlichen Adrenalinkick
Okay zumindest funktioniert die Prozedur mit so wichtigen Modulen wie LWP.pm etc... , leider ließ sich das GD.pm Modul dann doch nicht installieren, weil beim anlegen einer Bioliothek der C-Compiler eingesetzt werden muß (IMHO), das hat bei mir dann doch nicht geklappt (vielleicht sollte man Lincoln Stein ein E-Mail senden - 'feel free to contact me via e-mail' ;-).
Also hast luego
Peter
Das Herz ist mir ein bißchen in die Hose gerutscht als ich rm /usr/lib/perl5/datei1 - /usr/lib/perl5/datei100 las. Ich hab schon meinen Admin mit einer Pumpgun vor der Tür stehen sehen,
Aber nicht doch. Wenn Dein Admin Dich die perl-Module nicht in /usr/local installieren läßt, dann wird er Dich dort auch nichts löschen lassen.
leider ließ sich das GD.pm Modul dann doch nicht installieren, weil beim anlegen einer Bioliothek der C-Compiler eingesetzt werden muß (IMHO), das hat bei mir dann doch nicht geklappt.
Wieso? Ein UNIX-Rechner ohne C-Compiler?
Andererseits: "Wichtig ist, was hinten rauskommt", also im Prinzip müßtest Du die entsprechende GD.pm aus jeder beliebigen Perl-Installation entnehmen und installieren können - das ist Perl-Quelltext, also ASCII, denke ich doch.
Also: Notfalls ActivePerl 5.005 (mit Unmengen von Modulen!) auf dem eigenen PC installieren und passende Dateien herausfischen ...