2009-05-11 5 views
19

Cuando corro comando¿Cómo evitar que la utilidad 'gema' acceda a mi directorio personal?

gem install <somegem> 

la utilidad gem trata de acceder a mi directorio personal. Contiene algunos caracteres no latinos y la instalación falla debido a eso. Por ejemplo:

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

Si me cambio a otra cuenta de usuario con un nombre de usuario que contenga sólo caracteres ASCII gem funciona bien.

¿Alguien sabe cómo decirle a la gema que NO revise mi directorio personal?

ACTUALIZACIÓN: He intentado configurar GEM_HOME como se sugiere a continuación, pero no sirvió de nada (todavía comprueba el directorio inicial del usuario)

Respuesta

34

Simplemente cambie HOMEDRIVE y HOMEPATH antes de ejecutar gem, y restaure después (si es necesario).

he cambiado de gem.bat así:

@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/Rubí/ es mi camino Ruby. Parece que HOMEPATH se puede cambiar a cualquier otra cosa con caracteres solo ASCII en la ruta.

+18

Otra forma mejor es establecer la variable de entorno HOME en el script "gema". Agregue la siguiente línea al comienzo de "bin/gem": ENV ['HOME'] = "E:/Dev/Ruby" Esta corrección funciona para todos los usos "gema". Como se mencionó anteriormente, esta ruta se puede cambiar, no se requiere usar ruby ​​dir. –

+1

Esos cambios de scripts funcionaron con mi Windows7. ¡Gracias! – Falkayn

+0

Gracias por esto. Funciona en Vista bien –

0

Tal vez intente cambiar el valor del directorio del entorno GEM_HOME?

0

Si GEM_PATH está configurado en su directorio de usuario, aún así accederá a él. Intenta cambiar GEM_HOME y GEM_PATH.

1

Es más sencillo de escribir:

@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" %* 

En este caso no es necesario para escribir su ruta y puede reemplazar o redistribuir con el archivo para nuevas instalaciones

0

basta con ejecutar el archivo pi.bat postinstall o pi.sh este archivo está en ./RubyDevKit/postinstall.

esto funcionó para mí. parece que el instalador de cygwin rompió mi configuración.

0

Reinicie la consola del símbolo del sistema ya que algo podría haberlo activado. Tuve el mismo problema y el reinicio de la consola restableció mi entorno.

+0

Puede ser útil explicar por qué cree que esto funcionará. –

+0

revisado con explicación. – konyak

Cuestiones relacionadas