Probleme mit der CPAN-Shell und die Lösung

| 3 Kommentare | Keine TrackBacks

Letztens hatte ich ein paar Probleme mit dem CPAN unter der Strawberry-Perl-Installation unter Windows auf einem Laptop vom Kunden. Mit Windows zu arbeiten ist ja meistens schon Strafe genug, es scheint aber, dass diese Probleme nicht nur mit Strawberry-Perl auftreten:

Bei dem Versuch der Installation eines Modules kam die folgende Fehlermeldung:

Can't call method "value" on an undefined value at c:/strawberry/perl/lib/IO/Uncompress/RawInflate.pm line 64

Die CPAN-Shell konnte noch nicht mal die Modulliste auspacken geschweige denn irgendwas installieren. Die Lösung war dann nach langem Probieren: Die Version 2.008 von IO::Uncompress::RawInflate (in IO-Compress-Zlib) und alle Abhängigkeiten bzw. die weiterem IO::(Un)Compress::*-Module habe ich manuell auf die Version 2.011 aktualisiert und dann ging wieder alles.

Ergänzung: Unter Linux oder einem Unix-ähnlichen System mit lokalem gzip/bzip2 könnte es auch klappen, die Module zu löschen, so dass Perl ein lokales CLI gunzip/bunzip2 nimmt.

 

Zuvor hatte ich noch ein anderes Problem:

cpan> install Foo::Bar
DBD::SQLite::db prepare failed: no such table: dists(1) at dbdimp.c line 271 at C:\strawberry\perl\site\lib/CPAN/SQLite/
DBI/Search.pm line 86, <IN> line 2.
Catching error: 'DBD::SQLite::db prepare failed: no such table: dists(1) at dbdimp.c line 271 at C:\\strawberry\\perl\\s
ite\\lib/CPAN/SQLite/DBI/Search.pm line 86, <IN> line 2.
' at C:/strawberry/perl/lib/CPAN.pm line 281
        CPAN::shell() called at C:\strawberry\perl\bin/cpan.bat line 211

Da war die SQLite-Datenbank, in der das CPAN.pm optional die Metadaten ablegt (use_sqlite-Konfiguration), kaputt. Möglicherweise wird die zerschossen, wenn die CPAN-Shell an der falschen Stelle abgewürgt wird (bei mir: hatte vergessen mich ins VPN des Kunden einzuwählen, und ohne geht dessen Proxy natürlich nicht).

Die Lösung ist dann meist, die Datenbank oder gar alles im CPAN-Ordner zu löschen. Bei Strawberryperl liegt das unter C:\strawberry\cpan\, bei anständigen Betriebssystemen unter ~/.cpan/.

 

 

Keine TrackBacks

TrackBack-URL: http://www.perl-blog.de/mt/mt-tb.cgi/127

3 Kommentare

Ja, Windows ist schon so eine Sache für sich: Wenn man Perl unter Cygwin benutzt, liegt die CPAN::Config.pm unter /usr/lib/perl5/5.8, nicht etwa als MyConfig.pm unter ~/.cpan/CPAN ... Das verwirrt mich doch immer wieder ;-).

Also, ich kenne das auch als /path/to/lib/CPAN, habe aber auch schon mal was entsprechendes in ~/.cpan/ gefunden. Welcher Logik das folgt habe ich aber nicht analysiert ;-)

Aber zurück zu Windows: Auch mit Strawberryperl oder Cygwin ist das zusammen mit Perl nicht das Wahre. Ein Unix ist mir da doch deutlich lieber. Und mit OS X geht das ja auch komfortabel ;-)

Ja, es stimmt unter Linux (Debian 5.0) hat es fuer mich funktioniert, einfach das Modul IO::Uncompress::RawInflate zu loeschen

Jetzt kommentieren

Aktuelle Kommentare

  • Niels Dettenbach: ...schade eigentlich, das es PyPerl nicht mehr wirklich gibt. Zwar weiter lesen
  • vTasker: Was ist das denn für ein MIST? Der Artikel ist weiter lesen
  • Alvar Freude: Nein, Susan, das ist falsch. XING wurde von der epublica weiter lesen
  • Susan: Hi, das ist eine komplett falsche Aussage. XING laeuft auf weiter lesen
  • Alvar Freude: Zu E.Doerr: Ich fange mal mit dem zweiten Punkt, dem weiter lesen
  • E.Doerr: Der Vergleich ist ganz interessant - aber wenn ich mich weiter lesen
  • Alvar: Die Universitäten sind sicherlich ein wichtiger Ansatzpunkt. Diese sind da weiter lesen
  • Ingmar Drewing: Das Problem - wenn man es denn so nennen will weiter lesen
  • Alvar Freude: Gut wäre auch, wenn sich mehr gestandene Entwickler für Perl weiter lesen
  • Martin Seibert: Ich wäre auch stark für den Nachwuchs! :-) weiter lesen

Über diese Seite

Diese Seite enthält einen einen einzelnen Eintrag von Alvar Freude vom 26.06.08 14:06.

Perl Bücher für den Einsatz (nicht nur) in Unternehmen ist der vorherige Eintrag in diesem Blog.

Einfacherer Code mit Autovivification ist der nächste Eintrag in diesem Blog.

Aktuelle Einträge finden Sie auf der Startseite, alle Einträge in den Archiven.