2009-05-11 13 views
19

Quando eseguo il comandoCome impedire all'utilità "gem" di accedere alla mia home directory?

gem install <somegem> 

l'utilità gem cerca di accedere alla mia home directory. Contiene caratteri non latini e l'installazione non riesce a causa di ciò. Per esempio:

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

Se posso passare a un altro account utente con un nome utente contenente caratteri ASCII solo gem funziona bene.

Qualcuno sa come dire gioiello non per controllare la mia home directory?

UPDATE: Ho cercato di impostare GEM_HOME come suggerito qui di seguito, ma non ha aiutato (controlla ancora la directory home dell'utente)

risposta

34

Basta modificare HOMEDRIVE e HOMEPATH prima di eseguire gemma e ripristinare dopo (se necessario).

ho cambiato gem.bat come questo:

@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/Rubino/ è il mio percorso di Ruby. Sembra che HOMEPATH possa essere cambiato in qualsiasi altra cosa con caratteri ASCII solo in path.

+18

Un altro, il modo migliore è quello di impostare la variabile d'ambiente HOME in script “gioiello” in sé. Aggiungi la seguente riga all'inizio di "bin/gem": ENV ['HOME'] = "E:/Dev/Ruby" Questa correzione funziona per tutti gli usi "gem". Come accennato in precedenza, questo percorso può essere modificato, non è necessario utilizzare Ruby Dir. –

+1

Queste modifiche agli script hanno funzionato bene con il mio Windows7. Grazie! – Falkayn

+0

Grazie per questo. Funziona in Vista bene –

0

Forse provare a cambiare il valore della directory dell'ambiente GEM_HOME?

0

Se GEM_PATH è impostata alla directory utente, sarà ancora accedervi. Prova a cambiare GEM_HOME e GEM_PATH.

1

E 'più semplice da scrivere:

@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 questo caso non c'è bisogno di scrivere il tuo percorso e può sostituire o ridistribuire con il file per le nuove installazioni

0

basta eseguire il file postinstall pi.bat o pi.sh questo file è in ./RubyDevKit/postinstall.

questo ha funzionato per me. sembra che l'installer di cygwin abbia rotto le mie impostazioni.

0

Riavviare il prompt dei comandi della console come qualcosa potrebbe aver sollevato in su. Ho avuto lo stesso problema e il riavvio della console ripristina il mio ambiente.

+0

Potrebbe essere utile spiegare perché pensi che funzionerà. –

+0

revisionato con spiegazione. – konyak

Problemi correlati