Hallo SelfForum,
nach etlichen Stunden ergebnislosen Herumprobierens wende ich mich hilfesuchend an diese Community. Was bisher geschah:
Ich möchte das Modul WWW::Mechanize installieren und habe keinen root-Zugriff.
Download von CPAN, Upload per FTP, dann mit SSH (PuTTY) Makefile.PL, make, make test gemacht und...
...WWW::Mechanize benötigt weitere Module, die nicht installiert sind. Nachdem ich mich vier Ebenen nach unten gearbeitet habe, ist das Modul Pod::Escapes installiert, welches von Pod::Simple benötigt wird...
...aber nicht gefunden wird! Die Rückfrage bei meinem Provider ergab: ich soll die Enviroment-Variable "PERL5LIB=/usr/home/pfad/zu/meiner/cgi-bin" setzen. Ich habe PuTTY angewiesen, dies zu tun, erhalte dann allerdings die Fehlermeldung "Server refused to set enviroment variables". Die Nachfrage an meinen Provider ergab bisher weiter nichts.
ERSTE SACKGASSE!
Daraufhin probiere ich es über die CPAN-Shell und gebe in PuTTY ein:
perl -MCPAN -e shell
Statt der erhofften CPAN-Shell erhalte ich folgende Fehlermeldung:
mkdir /etc/perl: Permission denied at /usr/share/perl/5.8/CPAN.pm line 1252
ZWEITE SACKGASSE!
Ich schreibe mir ein Perl-Script, welches die Module installieren soll. Die erste Version gibt dieselbe Fehlermeldung aus wie das direkte Ansteuern der Shell:
mkdir /etc/perl: Permission denied at /usr/share/perl/5.8/CPAN.pm line 1252
Ich finde eine CPAN::Config-Vorlage im Netz, wo ich die Installationsverzeichnisse angeben kann. Das Ganze sieht dann so aus:
<<< START >>>
#!/usr/bin/perl -w
use strict;
use warnings;
use CGI::Carp "fatalsToBrowser";
use CGI qw(:standard :html3);
use CPAN;
$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=~/cgi-bin/lib LIB=~/cgi-bin/lib INSTALLMAN1DIR=~/cgi-bin/man/man1 INSTALLMAN3DIR=~/cgi-bin/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],
};
CPAN::Shell->install("WWW::Mechanize");
print "Content-type: text/html\n\n";
print "fertig";
exit;
<<< END >>>
Dieses Script gibt dann keine Fehlermeldung mehr aus, sondern endet in einem 500er Fehler. Das Error-Log sagt folgendes aus:
[2009-03-07 15:23:06]: /cgi-bin/gocpan.pl: [Sat Mar 7 15:23:06 2009] gocpan.pl: Use of uninitialized value in join or string at /usr/share/perl/5.8/File/Spec/Unix.pm line 37.
[Sat Mar 07 15:23:07 2009] [error] [client xx.xxx.xx.xx] malformed header from script. Bad header=Going to read ~/.cpan/Metadata: gocpan.pl
[2009-03-07 15:23:06]: /cgi-bin/gocpan.pl: [Sat Mar 7 15:23:08 2009] gocpan.pl:
Es legt vorher ein Verzeichnis '~' im Verzeichnis 'cgi-bin' an und schreibt dort mehrere Unterverzeichnisse und Dateien hinein. Ich vermute, daß das Script aufgrund von zu hohem Ressourcen-Verbrauch gestoppt wurde?
DRITTE SACKGASSE!
...und nun bin ich mit meinem Latein am Ende. Eigentlich bin ich noch nicht einmal AM ANFANG, denn das Modul zu installieren ist ja nicht Selbstzweck, sondern ich wollte es nutzen, um etwas damit zu programmieren. Das war vor über einer Woche und ich weiß jetzt keinen Rat mehr. Hat hier jemand noch einen Rat für mich?
1000Dank!