【问题标题】:bundler throws user_interaction.rb:534:in 'initialize': No such file or directory - nul (Errno::ENOENT)bundler throws user_interaction.rb:534:in 'initialize': No such file or directory - nul (Errno::ENOENT)
【发布时间】:2011-02-02 00:52:57
【问题描述】:

更新到 ruby​​gems 1.5.0 后,我在尝试运行 bundle install 时收到此错误消息。

我正在使用 ruby​​ 1.8.7 和 bundler v 1.0.10 的 cygwin 环境中运行

bundler throws user_interaction.rb:534:in 'initialize': No such file or directory - nul (Errno::ENOENT)

无法真正弄清楚是什么原因造成的。

【问题讨论】:

    标签: ruby-on-rails rubygems bundler


    【解决方案1】:

    我也遇到了同样的问题,我在 cygwin 上运行 ruby​​gems 1.5.0、ruby 1.9.2 和 bundler 1.0.10,并且任何时候尝试运行 bundle 时都会遇到同样的错误。

    其实,我只是想通了。我假设您也在运行 Cygwin,因为这是导致问题的代码:

    (在 .../user_interaction.rb:534)

    if Gem.win_platform?
      reader = File.open('nul', 'r')
      writer = File.open('nul', 'w')
    else
      reader = File.open('/dev/null', 'r')
      writer = File.open('/dev/null', 'w')
    end
    

    看,它认为你使用的是 windows,而实际上你在 Cygwin 中使用的是 linux。所以只需注释掉除reader = File.open('/dev/null', 'r')writer = File.open('/dev/null/, /w/) 这两行之外的所有内容,你应该会很好。

    显然这是一个粗略的修复,但只要您不在 Windows 上运行相同的 ruby​​gems 安装,它就可以解决问题。

    【讨论】:

    • 已经向 RubyGems 提交了一个错误修复,只是还没有推出。
    • 嘿,谢谢你,我正要发同样的东西,但你打败了我 =)。
    • 知道什么时候推送吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-26
    • 1970-01-01
    • 1970-01-01
    • 2016-06-07
    • 2017-07-05
    • 2018-11-20
    相关资源
    最近更新 更多