ubuntuusers.de

Tuxload - no such file or directory

Status: Gelöst | Ubuntu-Version: Ubuntu 8.10 (Intrepid Ibex)
Antworten |

o0t

Anmeldungsdatum:
31. Januar 2008

Beiträge: 137

Hallo,

ich habe mir eben anhand der Anleitung im Wiki Tuxload installiert. Wenn ich Tuxload mittels #tuxload starten wollte, gabs immer einen Fehler:

Permission denied at /opt/tuxload/bin/../lib/Common.pm line 81.

Ich habe ein wenig gegoogelt und hier im Forum die Antwort gefunden, man könne den Ordner ändern, in den die Logs usw. geschrieben werden. Das habe ich jetzt auch getan (Ausschnitte aus der BasicConfig.pm):

    path_downloads => "~/",
    path_tmp       => "~/.tmp",
    path_log       => "~/.tuxlogs",

Die Ordner sind alle erstellt (ohne sudo) und liegen im ~ Verzeichnis. Trotzdem gibts immer noch diesen Fehler:

dom@r61:~$ tuxload
Awaiting UDP messages on port 2012

 (o_   TuxLoad v0.27
 //\  
 V_/_  

No such file or directory at /opt/tuxload/bin/../lib/Common.pm line 81.


Exiting ...

Allerdings kann ich keine "Common.pm" finden:

dom@r61:~$ locate Common.pm
/usr/lib/perl/5.10.0/IO/Compress/Base/Common.pm
/usr/share/perl5/Debian/AdduserCommon.pm
/usr/share/perl5/Debian/DictionariesCommon.pm
/usr/share/perl5/Debian/Defoma/Common.pm
/usr/share/perl5/Debian/DocBase/Common.pm
/usr/share/perl5/HTTP/Request/Common.pm
/usr/share/perl5/IO/Compress/Base/Common.pm

Für Hilfe wäre ich sehr dankbar ☺

o0t

(Themenstarter)

Anmeldungsdatum:
31. Januar 2008

Beiträge: 137

Hat niemand eine Idee? ☹

GH@NDI

Anmeldungsdatum:
4. Mai 2007

Beiträge: Zähle...

Kann dir zwar zum eigentlich Problem nichts sagen, allerdings den Tipp geben, dass du unter /opt/tuxload/bin/lib/ eine "Common.pm" finden wirst. Und die Fehlermeldung die du bekommst sagt nicht, dass selbige Datei nicht gefunden wurde, sondern der Fehler ist "File Not Found" der von der Datei "Common.pl" in der Zeile 81 ausgegeben wird 😉

o0t

(Themenstarter)

Anmeldungsdatum:
31. Januar 2008

Beiträge: 137

Hallo Ghandmann ☺

dom@r61:/opt/tuxload/bin$ ls
tlr.pl  tuxload.pl

o0t

(Themenstarter)

Anmeldungsdatum:
31. Januar 2008

Beiträge: 137

Also ich habe jetzt Tuxload neu geladen, jetzt finde ich auch diese Common.pm:

http://vinylkoffer.de/nopaste/sxm1jf

Nach wie vor gibts den selben Fehler. Wenn ich Zeile 81 auskommentiere dann meckert er rum dass die Globale Variable $LOG nicht verwendet wird oder so.

GH@NDI

Anmeldungsdatum:
4. Mai 2007

Beiträge: 9

Er versucht halt das Logfile zum Anhängen zu öffnen. Interessant wäre halt, welche Datei das genau ist und warum der Pfad nicht existiert.

Du kannst ja mal vor Zeile 81 folgendes einfügen:

print "*** Pfad: $bopt{path_log}/$bopt{log_file}\n";

Und dann schauen, welche Datei genau er zu öffnen versucht. Aber ich würde den Fehler jetzt nicht unebdingt beim Programm suchen. Evtl. irgendwo eine Konfiguration mit den Pfaden falsch? Startest du das Script auch aus dem richtigen Verzeichnis (Readme oder ähnliches beachten). Evtl. arbeiten die ja im Script mit relativen Pfaden. Und wenn du dann das Programm aus einem anderen Arbeitsverzeichnis öffnest, verkackts natürlich die Pfade.

Reschef

Anmeldungsdatum:
25. April 2007

Beiträge: 18

Existiert der Ordner "~/.tuxlogs"? Wenn nein, anlegen!

o0t

(Themenstarter)

Anmeldungsdatum:
31. Januar 2008

Beiträge: 137

Der Ordner existiert. GH@NDI, die Zeile hat leider nichts gebracht, die Ausgabe bleibt dieselbe.

GH@NDI

Anmeldungsdatum:
4. Mai 2007

Beiträge: 9

Die Zeile gibt ja auch nur was aus. Die Frage wäre jetzt natürlich, was die Zeile ausgibt. Also welche Datei er da zu öffnen versucht und ob diese existiert, oder ob an dieser evtl. die Zugriffsrechte (aus welchem Grund auch immer) verbogen sind.

o0t

(Themenstarter)

Anmeldungsdatum:
31. Januar 2008

Beiträge: 137

So sieht die Common.pm jetzt aus: http://vinylkoffer.de/nopaste/yl5vef

Die Ausgabe:

dom@r61:~/.tuxlogs$ tuxload
Awaiting UDP messages on port 2012

 (o_   TuxLoad v0.27
 //\  
 V_/_  

*** Pfad: ~/.tuxlogs/tuxload.log
No such file or directory at /opt/tuxload/bin/../lib/Common.pm line 81.


Exiting ...

Die Datei ~/.tuxload/tuxload.log existiert aber. Den CHMOD für diese Datei auf 0777 zu setzen bringt auch nix.

GH@NDI

Anmeldungsdatum:
4. Mai 2007

Beiträge: 9

Problem ist wohl die tilde (~). Hab das grade mal getestet:

#!/usr/bin/perl
open(my $file, ">>", "~/test.txt") or die $!;
print $file "testing";
close($file);


$ perl test.pl 
Datei oder Verzeichnis nicht gefunden at test.pl line 2.

Perl interpoliert die ~ nicht zum Home-Verzeichnis des jeweiligen Users. Was auch verständlich ist, schlieslich ist das ja ein Feature der Shell und nicht von Linux im allgemeinen. Sofern es also irgendwo eine Konfiguration gibt, dort mal die Parameter entsprechend anpassen und eben die ~ dann durch /home/user ersetzen. Wenn die Konfiguration innerhalb eines Perl-Scriptes geschieht, so kannst du einfach $ENV{HOME} benutzen, dort ist immer der Pfad des Homeverzeichnisses des jeweiligen Users gespeichert (allerdings ohne abschliesenden slash, je nachdem ob das wichtig ist, oder nicht).

o0t

(Themenstarter)

Anmeldungsdatum:
31. Januar 2008

Beiträge: 137

Das hört sich ja recht plausibel an, allerdings gibts in der Common.pm kein Verzeichnis in "~/". Das steht alles in irgendwelchen Variablen.

GH@NDI

Anmeldungsdatum:
4. Mai 2007

Beiträge: 9

Also die Config steckt in der BaseConfig.pm. In selbiger hasst du nichts geändert bzw. nur im Bereich der UserConfig?

Dort wird das Modul FindBin verwendet, um herauszufinden, wo die tuxload.pl liegt. Abhängig von diesem Pfad werden dann alle anderen Pfade gebaut.

Ich hab hier grade mal FindBin installiert (mittels cpan version 1.49). Evtl. hat FindBin in der Version die du hast einen Bug. Einfach mal in Home-Verzeichnis vollgendes auf der Konsole ausführen:

perl -MFindBin -e 'print "Ermittelter Pfad: $FindBin::RealBin\n"'

Die Ausgabe sollte eigentlich den absoluten Pfad zu deinem Home (bzw. in diesem Fall immer zum jeweiligen aktuellen Verzeichnis ausgeben) und zwar ohne Platzhalter wie z.B. ~.

Dein FindBin Version erfährst du so:

perl -MFindBin -e 'print "FindBin Version: $FindBin::VERSION\n"'

o0t

(Themenstarter)

Anmeldungsdatum:
31. Januar 2008

Beiträge: 137

Du bist ein Genie, es lag tatsächlich an den ~ in der Config.pm. Vielleicht sollte man das im Wiki erwähnen.

Nur zur Vollständigkeit:

dom@r61:~$ perl -MFindBin -e 'print "Ermittelter Pfad: $FindBin::RealBin\n"'
Ermittelter Pfad: /home/dom
dom@r61:~$ perl -MFindBin -e 'print "FindBin Version: $FindBin::VERSION\n"'
FindBin Version: 1.49

GH@NDI

Anmeldungsdatum:
4. Mai 2007

Beiträge: 9

Kein Genie. Das sind nur die vielen Jahre Erfahrung. 😉

Hauptsache jetzt läufts. 😉

Antworten |