0

我正在尝试在 Windows 上设置一个 Ruby 开发环境。到目前为止,它相当“普通”,也就是说,它几乎只包含 Ruby (1.9.1)、Bundler (1.3.5) 和一些随机 gem。

现在,每当我尝试运行 Bundler 时,都会出现以下异常:

C:/Ruby19/lib/ruby/1.9.1/rubygems/user_interaction.rb:544:in `initialize': Permission denied - /dev/null (Errno::EACCES)

检查源代码,我发现 Bundler 通过尝试访问 /dev/null 然后拯救 Errno::ENOENT(“没有这样的文件或目录”)来确定您正在运行 Windows。我尝试修补它以拯救 Errno:EACCES(“权限被拒绝”),瞧——它似乎运行得很好。

我尝试在提升模式下运行 shell,但它仍然抛出 Errno:EACCES。

我的问题很简单:我错过了什么吗?或者这是 Bundler 中的错误?

(作为参考,我在 Windows 8 上运行)

4

2 回答 2

0

/dev/null是一个特殊的文件,通常用于处理不需要的进程输出流,或者作为 *nix 操作系统中输入流的方便空文件。它在 Windows 中不存在。

如果 bundler 没有检查它尝试使用哪个操作系统 /dev/null ,那么这肯定是他们的问题。为了让事情在不移动的情况下工作,您可以使用Cygwin

于 2013-05-06T18:52:18.970 回答
0

我在 Windows 7 上运行。我观察到 c:/dev/null 的问题 "Errno:EACCES ("Permission denied")" 创建的目录 c:/dev (没有 "null" 文件) 并解决了问题。

于 2014-02-12T23:14:12.897 回答