2009-05-11 11 views
19

Als ichWie kann ich verhindern, dass das Dienstprogramm 'gem' auf mein Home-Verzeichnis zugreift?

gem install <somegem> 

Befehl der gem Dienstprogramm ausführen versucht mein Home-Verzeichnis zugreifen. Es enthält einige nicht lateinische Zeichen und deshalb schlägt die Installation fehl. Zum Beispiel:

E:\ruby\bin>gem install <somegem> 
ERROR: While executing gem ... (Errno::ENOENT) 
    No such file or directory - C:\Documents and Settings\<user> 

Wenn ich zu einem anderen Benutzerkonto wechseln mit einem Benutzernamen enthält ASCII-Zeichen nur gem funktioniert gut.

Weiß jemand, wie man Edelstein NICHT sagt, mein Ausgangsverzeichnis zu überprüfen?

UPDATE: Ich habe versucht GEM_HOME einzurichten wie unten vorgeschlagen, aber es half nicht (immer noch überprüft das Benutzerverzeichnis)

Antwort

34

Ändern Sie einfach HOMEDRIVE und HOMEPATH, bevor Sie gem ausführen und danach wiederherstellen (falls erforderlich).

Ich habe meine gem.bat wie folgt geändert:

@ECHO OFF 
SET _HOMEDRIVE=%HOMEDRIVE% 
SET _HOMEPATH=%HOMEPATH% 
SET HOMEDRIVE=E: 
SET HOMEPATH=/Dev/Ruby 
IF NOT "%~f0" == "~f0" GOTO :WinNT 
@"ruby.exe" "E:/Dev/Ruby/bin/gem" %1 %2 %3 %4 %5 %6 %7 %8 %9 
GOTO :EOF 
:WinNT 
@"ruby.exe" "%~dpn0" %* 
SET HOMEDRIVE=%_HOMEDRIVE% 
SET HOMEPATH=%_HOMEPATH% 

E:/Dev/Rubin/ ist mein Ruby-Pfad. Es scheint, dass HOMEPATH zu irgendetwas anderem mit nur ASCII-Zeichen im Pfad geändert werden kann.

+18

Eine andere, bessere Möglichkeit besteht darin, die HOME-Umgebungsvariable im "gem" -Skript selbst zu setzen. Fügen Sie folgende Zeile an den Anfang von "bin/gem": ENV ['HOME'] = "E:/Dev/Ruby" Dieser Fix funktioniert für alle "Edelstein" Verwendungen. Wie bereits erwähnt, kann dieser Pfad geändert werden, wobei ruby ​​dir nicht benötigt wird. –

+1

Diese Skriptänderungen funktionierten mit meinem Windows7. Vielen Dank! – Falkayn

+0

Danke dafür. Funktioniert in Vista gut –

0

Vielleicht versuchen, den Wert des Verzeichnisses GEM_HOME Umgebung zu ändern?

0

Wenn GEM_PATH auf Ihr Benutzerverzeichnis gesetzt ist, greift es trotzdem darauf zu. Versuchen Sie, GEM_HOME und GEM_PATH zu ändern.

1

Es ist einfacher zu schreiben:

@ECHO OFF 
SET HOMEPATH= 
IF NOT "%~f0" == "~f0" GOTO :WinNT 
ECHO.This version of Ruby has not been built with support for Windows 95/98/Me. 
GOTO :EOF 
:WinNT 
@"ruby.exe" "%~dpn0" %* 

In diesem Fall brauchen Sie nicht Ihren Weg zu schreiben und kann mit Datei für Neuinstallationen

0

nur post Datei pi.bat ersetzen oder neu verteilen laufen oder pi.sh Diese Datei befindet sich in ./RubyDevKit/postinstall.

das funktionierte für mich. Es scheint, dass der Installer von Cygwin meine Einstellungen zerstört hat.

0

Starten Sie die Eingabeaufforderungskonsole neu, da sie möglicherweise etwas aufgebockt wurde. Ich hatte das gleiche Problem und Neustart der Konsole zurückgesetzt meine Umgebung.

+0

Könnte hilfreich sein zu erklären, warum Sie denken, dass dies funktioniert. –

+0

überarbeitet mit Erklärung. – konyak

Verwandte Themen