Как остановить доступ утилиты 'gem' к моему домашнему каталогу?

Когда я бегу

gem install <somegem>

командовать gem Утилита пытается получить доступ к моей домашней директории. Он содержит некоторые нелатинские символы, и из-за этого происходит сбой установки. Например:

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

Если я переключаюсь на другую учетную запись пользователя с именем пользователя, содержащим только символы ASCII gem работает отлично.

Кто-нибудь знает, как заставить gem НЕ проверять мой домашний каталог?

ОБНОВЛЕНИЕ: Я попытался настроить GEM_HOME, как предложено ниже, но это не помогло (все еще проверяет домашний каталог пользователя)

6 ответов

Решение

Просто измените HOMEDRIVE и HOMEPATH перед запуском gem и восстановите после (при необходимости).

Я изменил свой gem.bat так:

@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 / Ruby / это мой путь к Ruby. Кажется, что HOMEPATH может быть изменен на что-нибудь еще с ASCII только символами в пути.

Проще написать:

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

В этом случае вам не нужно указывать свой путь, и вы можете заменить или перераспределить файл для новых установок

Просто запустите файл postinstall pi.bat или pi.sh, этот файл находится в./RubyDevKit/postinstall.

это сработало для меня. похоже, что установщик cygwin сломал мои настройки.

Перезапустите консоль командной строки, так как это могло что-то испортить. У меня была такая же проблема, и перезапуск консоли перезагрузил мою среду.

Возможно, попробуйте изменить значение каталога среды GEM_HOME?

Если вы установили GEM_PATH в свой пользовательский каталог, он все равно получит к нему доступ. Попробуйте изменить GEM_HOME и GEM_PATH.

Другие вопросы по тегам