如何阻止'gem'实用程序访问我的主目录?

时间:2009-05-11 19:29:05

标签: windows ruby unicode rubygems

当我跑步时

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 个答案:

答案 0 :(得分:34)

在运行 gem 之前更改HOMEDRIVE和HOMEPATH,然后恢复(如果需要)。

我已经改变了我的 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字符的任何其他内容。

答案 1 :(得分:1)

写起来更简单:

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

在这种情况下,您不需要编写路径,可以替换或重新分发文件以进行新安装

答案 2 :(得分:0)

也许尝试更改GEM_HOME环境目录的值?

答案 3 :(得分:0)

如果您将GEM_PATH设置为您的用户目录,它仍将访问它。尝试更改GEM_HOME和GEM_PATH。

答案 4 :(得分:0)

运行postinstall文件pi.bat或pi.sh 此文件位于./RubyDevKit/postinstall。

这对我有用。似乎cygwin的安装程序破坏了我的设置。

答案 5 :(得分:0)

重新启动命令提示符控制台,因为某些东西可能已经将其搞砸了。我有同样的问题,重新启动控制台重置我的环境。