【问题标题】:`bundler install --deployment` missing `to_yaml`?`bundler install --deployment`缺少`to_yaml`?
【发布时间】:2013-03-04 20:00:41
【问题描述】:

我不是 ruby​​ 专家,但我已经设法收集到足够的信息来设置 Gemfile 并安装所需的 Gemfile。

不过,最近我遇到了一些问题。无论出于何种原因,我现在收到此错误:

> bundle install --deployment
      Unfortunately, a fatal error has occurred. Please see the Bundler
      troubleshooting documentation at http://bit.ly/bundler-issues. Thanks!
/usr/lib/ruby/gems/1.8/gems/bundler-1.3.1/lib/bundler/settings.rb:129:in `set_key': undefined method `to_yaml' for {"BUNDLE_FROZEN"=>"1"}:Hash (NoMethodError)
    from /usr/lib/ruby/gems/1.8/gems/bundler-1.3.1/lib/bundler/settings.rb:129:in `open'
    from /usr/lib/ruby/gems/1.8/gems/bundler-1.3.1/lib/bundler/settings.rb:129:in `set_key'
    from /usr/lib/ruby/gems/1.8/gems/bundler-1.3.1/lib/bundler/settings.rb:17:in `[]='
    from /usr/lib/ruby/gems/1.8/gems/bundler-1.3.1/lib/bundler/cli.rb:219:in `install'
    from /usr/lib/ruby/gems/1.8/gems/bundler-1.3.1/lib/bundler/vendor/thor/task.rb:27:in `__send__'
    from /usr/lib/ruby/gems/1.8/gems/bundler-1.3.1/lib/bundler/vendor/thor/task.rb:27:in `run'
    from /usr/lib/ruby/gems/1.8/gems/bundler-1.3.1/lib/bundler/vendor/thor/invocation.rb:120:in `invoke_task'
    from /usr/lib/ruby/gems/1.8/gems/bundler-1.3.1/lib/bundler/vendor/thor.rb:344:in `dispatch'
    from /usr/lib/ruby/gems/1.8/gems/bundler-1.3.1/lib/bundler/vendor/thor/base.rb:434:in `start'
    from /usr/lib/ruby/gems/1.8/gems/bundler-1.3.1/bin/bundle:20
    from /usr/lib/ruby/gems/1.8/gems/bundler-1.3.1/lib/bundler/friendly_errors.rb:3:in `with_friendly_errors'
    from /usr/lib/ruby/gems/1.8/gems/bundler-1.3.1/bin/bundle:20
    from /usr/bin/bundle:19:in `load'
    from /usr/bin/bundle:19

我查看了recommended link,但问题仍然存在。我的Gemfile 很简单:

source "https://rubygems.org"
gem 'sass'

以及随附的Gemfile.lock

GEM
  remote: https://rubygems.org/
  specs:
    sass (3.2.6)

PLATFORMS
  ruby

DEPENDENCIES
  sass

为什么捆绑器无法安装?

更多详情
使用旧版本的 bundler(比如 1.2),效果很好。只是不是1.3.1

我正在使用 ruby​​ 1.8.7 和 ruby​​gems 1.8.11。

【问题讨论】:

  • 什么版本的 ruby​​ 和 ruby​​gems?

标签: ruby gem bundler


【解决方案1】:

刚刚遇到同样的问题,通过卸载最新的捆绑器版本 1.3.1 解决了它

gem uninstall bundler -v 1.3.1

bundle 1.3.0 应该可以通过 ;)

编辑:不知道为什么:|

【讨论】:

    【解决方案2】:

    当您安装 ruby​​ 时,您可能没有在系统上安装 libyaml。 Ruby 需要 libyaml 才能运行它的标准库 yaml 库。

    尝试安装 libyaml(查看具体操作系统的安装方法),然后重新安装 ruby​​。

    【讨论】:

    • 嗯...好吧,我安装了libyaml,卸载了bundlerrubygemsruby,然后反向安装它们。同样的问题。
    • 您使用的是什么操作系统?您可能需要 libyaml-devel 或类似的东西。你在使用 RVM 吗?
    • 不使用rvm(我对ruby不是很熟悉)。不确定操作系统,因为uname -o 只是返回GNU/Linux。这是一台 AWS 机器。
    • 尝试进入 irb:irb -r yaml 并运行:Psych.dump("foo") 查看 yaml 解析器是否正常工作,是否由于其他原因缺少 to_yaml 方法。
    猜你喜欢
    • 1970-01-01
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-11
    • 2014-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多