[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: cssh: Perl-Modul fehlt



> Das hab ich jetzt so gemacht. Nun ergibt:
> 
> # find /usr/ -iname version.pm
> /usr/share/perl/5.10.1/Module/Build/Version.pm
> /usr/share/perl/5.10.1/CPAN/Version.pm
> /usr/share/perl/5.10.1/TAP/Parser/Result/Version.pm
> /usr/share/perl/5.10.1/version.pm
> 
> Ist das richtig so, daß es auch welche mit großem Buchstaben gibt?

Ja das ist alles so korrekt. Diese aber nicht löschen. Wenn man in Perl
ein Modul lädt so werden die Doppelpunkte durch einen
Verzeichnisstrenner ausgetauscht und es werden alle @INC Pfade
durchgeganngen um das Modul zu finden. Versucht man also "version" mit
"use version" zu laden dann generiert Perl folgende Pfade:

> /etc/perl/version.pm
> /usr/local/lib/perl/5.10.1/version.pm
> /usr/local/share/perl/5.10.1/version.pm
> ...

Das erste vorkommen der "version.pm" wird dann von Perl geladen. Es kann
also durchaus vorkommen das mehrere version.pm gleichzeitig installiert
sind. Und es kann durchaus sein das eine vielleicht defekt war, einen
Bug hatte oder sonstiges vorgefallen war. Daher eben mit reinstall
nochmal neu das Debian-Packet installieren und alle anderen Dateien
löschen damit sichergestellt wird das die von Debian ausgelieferte
geladen wird, und nicht eine andere.

Die Anderen Dateien die du auflistet sind dabei ganz andere Module. Das sind

Module::Build::Version
CPAN::Version
Parser::Result::Version

die haben so direkt mit dem Modul "version" nichts zu tun, da sie
sozusagen in einem anderen "namespace" liegen.

> Ich verstehe zwar nicht genau, was es mit der version.pm auf sich hat.

Die "version.pm" oder eben "version" ist ein Modul das alles nötige zu
verfügung stellt damit man Versionsnummern für Module definieren kann.
Oder eben mit Versionsnummern arbeiten kann. Das wird von nahezu jedem
Modul verwendet. Wenn das natürlich defekt ist, dann funktioniert
einiges nicht mehr.


Reply to: