【问题标题】:Running Bundler on Windows - permission denied on /dev/null在 Windows 上运行 Bundler - /dev/null 上的权限被拒绝
【发布时间】:2013-05-06 18:37:39
【问题描述】:

我正在尝试在 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 上运行)

【问题讨论】:

    标签: ruby windows bundler


    【解决方案1】:

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

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

    【讨论】:

    • 是的,我知道 /dev/null :) 听起来不错,这是 Bundler 端的问题。我从不同版本的源文件中看到了一个 sn-p 代码,并在那里评估了一个“is windows”变量。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2013-05-20
      • 2019-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-13
      • 2013-07-10
      • 2018-02-12
      相关资源
      最近更新 更多