Thread Modul in bestimmtes Zielverzeichnis installieren (5 answers)
Opened by Egga at 2009-09-15 22:35

Gast Egga
 2009-09-15 22:35
#125827 #125827
Hallo Leute,

ich fummle jetzt schon seit einiger Zeit eine Lösung für mein Problem und konnte leider durch keine Suche (PerlDoc, hier, Google) eine funktionierende Antwort finden. Deshalb hoffe ich, dass es hier vielleicht jemanden gibt, der mir helfen kann (wahrscheinlich ist es sooo einfach, dass sich niemand die Mühe macht, es mal aufzuschreiben).

Also mein Problem ist, wie der Thread-Titel schon sagt, dass ich ein Modul in ein bestimmtes Verzeichnis installieren möchte. Der Hintergrund ist, dass es ein Webserver ist, auf dem ich weder Root-Rechte noch Konsolen-Zugang habe. (Ich habe den Admin schon angeschrieben und gebeten, es zu installieren. Der antwortet nicht und ich stehe etwas unter Zeitdruck...)

Dafür ist dort das Modul "CPAN" installiert; also schnell folgendes Skript geschrieben:
Code: (dl )
1
2
3
4
5
6
7
8
#!/usr/bin/perl -w
use strict;

use CGI::Carp qw(fatalsToBrowser);
use lib ("/srv/www/htdocs/web48/files/lib");
use CPAN;

CPAN::Shell->install("Clone");


Da bekomme ich die Antwort:
Code: (dl )
mkdir /.cpan: Permission denied at /usr/lib/perl5/5.8.8/CPAN.pm line 1257

Und bin mir nicht so sicher, was ich falsch gemacht habe. In einer Anleitung stand, dass man den Installations-Pfad in die PERL5LIB schreiben soll. Deswegen habe ich gehofft, dass mein Aufruf von use lib dasselbe bewirkt - allerdings befürchte ich, dass die Umgebungsvariable mehr bewirkt, als nur die @INC zu ändern. Andererseits könnte es ja zu diesem Zeitpunkt auch schon zu spät sein?

Jedenfalls habe ich den Ordner, den ich im use lib angegeben habe, erstellt und (hoffentlich) auch schreibbar gemacht (bin nicht ganz so sicher mit den Linux-Rechten und im Konqueror habe ich neun Häkchen [jeweils anzeigen, schreiben, öffnen für User, Gruppe, Sonstige] gesetzt - könnte ja sein, dass es evtl mehr braucht, wenn die perl.exe da was schreiben will?). Im @INC taucht der auch gleich als erster auf, deswegen hatte ich auch gehofft, dass Perl diesen als ersten probiert und dort installiert.

Jetzt weiß ich echt nicht mehr weiter, weil die Meldung ja auch nicht sagt, wo sie den Ordner erstellen will, so dass ich wüßte, ob mein @INC-Hack funktioniert hat.

Als Alternative zur richtigen Installation würde ich mich auch über einen Tipp zum Thema "Ich kompiliere das Modul lokal und schiebe das Ergebnis einfach per FTP auf den Server" riesig freuen (wenn sowas geht). Oder genauso wenn mir jemand ein schönes ORM empfehlen kann, welches nicht von XS-Modulen anbhängig ist (DBIx::Class war meine erste Wahl, wollte dann auf Class::DBI ausweichen und habe mit Schrecken festgestellt, dass das auch Clone braucht).

Vielen Dank, falls sich jemand erbarmt und mich aus meiner Unwissenheit führen kann, - in jedem Fall viele Grüße
Egga

View full thread Modul in bestimmtes Zielverzeichnis installieren