Как остановить утилиту "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
работает нормально.
Кто-нибудь знает, как рассказать жемчужину НЕ проверить мой домашний каталог?
UPDATE. Я попытался настроить GEM_HOME, как предложено ниже, но это не помогло (по-прежнему проверяет домашний каталог пользователя)
Ответы
Ответ 1
Просто измените 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 только символами в пути.
Ответ 2
Проще писать:
@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" %*
В этом случае вам не нужно писать свой путь и может заменить или перераспределить файл для новых установок
Ответ 3
Возможно, попробуйте изменить значение каталога среды GEM_HOME?
Ответ 4
Если вы установили GEM_PATH в свой каталог пользователя, он все равно получит к нему доступ. Попробуйте изменить GEM_HOME и GEM_PATH.
Ответ 5
просто запустите файл postinstall pi.bat или pi.sh
этот файл находится в. /RubyDevKit/postinstall.
это сработало для меня. кажется, что установщик cygwin нарушил мои настройки.
Ответ 6
Перезапустите консоль командной строки, поскольку что-то могло ее поднять. У меня была такая же проблема и перезагрузка консоли reset моей среды.