rubygems Berechtigungen fehlerhaft

09/12/2008 - 14:28 von Thomas Preymesser | Report spam
Hallo,

ich habe in der letzten Zeit ein komisches Problem mit rubygems
(1.3.1):

Ich arbeite gerade an einem meiner Gems weiter und wollte eine neue
Version lokal installieren, worauf hin ich folgende Fehlermeldung
bekam:

$ dgs
/usr/local/bin/dgs:19:in `load': no such file to load -- dgs
(LoadError)
from /usr/local/bin/dgs:19

'dgs' ist ein ausführbare Skript, das in meinem Gem neben der
eigentlichen Library existiert und das von der Kommandozeile aus mit
diversen Optionen aufgerufen werden kann.

Das alles hat früher auch schon wunderbar funktioniert
(erwartungsgemàß).

Darauf hin habe ich mir /usr/local/bin/dgs angeschaut. Dies ist ein
Skript, das von rubygems automatisch generiert wird und nur die
Aufgabe hat, mein eigentliches 'dgs' Skript per 'load' auszuführen.
Ich habe mir dann testweise vor dem load ausgeben lassen, welchen
Inhalt die Variable $LOAD_PATH hat, weil ich vermutet hatte, damit
könnte ein Problem bestehen. Diese Variable enthielt aber den
korrekten Pfad zu meinem installierten Gem. Das war es also nicht.

Dann habe ich mir mein eigentliches 'dgs' Skript angesehen:

$ ls -l /usr/local/lib/ruby/gems/1.8/gems/dragongoserver-0.1.1/bin/
insgesamt 8
-rwx--x--x 1 root root 4831 2008-12-09 12:57 dgs

und bemerkt, daß dieses root gehört und keine Leseberechtigung für
andere besitzt. Damit war klar, daß es so nicht funktionieren kann,
wenn ich versuche, das als normaler Benutzer auszuführen (weil
letzteres ja per 'load' eingelesen werden soll). Ich hab' dann mal die
Leseberechtigungen per Hand hinzugefügt und dann lief es.

Was geht hier schief?

Dann habe ich testweise mal alle Versionen des Gems gelöscht und neu
von Rubyforge die letzte Version installiert. Wieder der gleiche
Effekt.

Und nicht nur das ausführbare Skript, sondern auch alle Dateien
unter ../lib/ haben keine Leseberechtigung für andere als root, so daß
es auch da Probleme gibt, wenn diese per require angezogen werden
sollen.

Ist das ein Problem von rubygems oder muß man da jetzt selbst noch
etwas einstellen?

Dann habe ich mir mal das Installationsdirectory eines meiner anderen
(selbstgeschriebenen) Gems angeschaut:

$ ll bin
insgesamt 36
-rwxr-xr-x 1 root root 18512 2008-12-02 01:22 multistockphoto

Hier ist alles so, wie man es erwarten würde, d.h. Leserechte für
alle.

Gruß
-Thomas
 

Lesen sie die antworten

#1 Tony Lawetta
13/12/2008 - 18:38 | Warnen spam
Thomas Preymesser wrote:
/usr/local/bin/dgs:19:in `load': no such file to load -- dgs
(LoadError)


[...]
-rwx--x--x 1 root root 4831 2008-12-09 12:57 dgs



Schuss ins Dunkel: umask

Was sagt denn das Kommando 'umask', in der Shell des
rubygems-installierenden Benutzers aufgerufen?

Obwohl dann das x sehr verwunderlich wàre, weil man ja keine neuen
Dateien mit Ausführrechten anlegen kann - egal was umask sagt.

T.

Ähnliche fragen