19

当我跑

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 但它没有帮助(仍然检查用户主目录)

4

6 回答 6

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 字符的任何其他内容。

于 2009-07-04T22:49:15.100 回答
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" %*

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

于 2011-05-12T17:23:17.490 回答
0

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

于 2009-05-11T19:48:53.997 回答
0

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

于 2009-05-12T11:28:44.523 回答
0

只需运行安装后文件 pi.bat 或 pi.sh 此文件位于 ./RubyDevKit/postinstall 中。

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

于 2012-01-22T16:53:56.847 回答
0

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

于 2013-12-05T19:02:55.057 回答