ruby - 如何更改默认的 gem 版本

标签 ruby json gem

如有任何帮助,我们将不胜感激!

我在运行 bundle 更新后尝试重新配置我的 GitLab。但是遇到了下面列出的错误。

大多数时候报告这种类型的错误,错误中会列出与之冲突的 gem,但我的只是说它与 chef 有问题,所以我不确定这里真正的问题是什么.

此时我正在全新安装 GitLab。我刚刚毫无问题地运行了 bundle 更新。尝试运行 Gitlab-ctl reconfigure 并得到下面列出的错误。

Ruby 版本:ruby 2.2.0p0(2014-12-25 修订版 49005)[x86_64-linux]

RVM 版本: rvm 1.26.10

已安装的 JSON 版本: json (1.8.1)

我试过:

  • 捆绑安装
  • bundle 更新
  • 安装较新版本的 json (1.8.2) 然后卸载旧的 json
    • 当我尝试卸载版本 1.8.1 时出现以下错误:

      ERROR: While executing gem ... (Gem::InstallError) gem "json" cannot be uninstalled because it is a default gem

  • 卸载并重新安装 ruby​​
  • 设置默认 ruby
  • 将 json 添加到 Gemfile

    gem "json", "~> 1.8.1"

  • 编辑 Gemfile.lock 以使用正确的 json
  • 删除了 Gemfile.lock
错误:

/opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/specification.rb:2052:in `raise_if_conflicts': can't activate json-1.8.2, already activated json-1.8.1 (Gem::LoadError)
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/specification.rb:1262:in `activate'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:96:in `block in require'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:95:in `each'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:95:in `require'
        from /opt/gitlab/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/json_compat.rb:20:in `<top (required)>'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/http/json_input.rb:20:in `<top (required)>'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/rest.rb:32:in `<top (required)>'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/search/query.rb:21:in `<top (required)>'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/dsl/data_query.rb:19:in `<top (required)>'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/mixin/language.rb:20:in `<top (required)>'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/dsl/platform_introspection.rb:217:in `<top (required)>'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/resource.rb:21:in `<top (required)>'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/dsl/recipe.rb:20:in `<top (required)>'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/provider.rb:22:in `<top (required)>'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/provider/execute.rb:21:in `<top (required)>'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/provider/script.rb:20:in `<top (required)>'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/provider/windows_script.rb:19:in `<top (required)>'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/provider/batch.rb:19:in `<top (required)>'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/providers.rb:19:in `<top (required)>'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef.rb:25:in `<top (required)>'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/lib/chef/application/solo.rb:19:in `<top (required)>'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:73:in `require'
        from /opt/gitlab/embedded/lib/ruby/gems/2.1.0/gems/chef-11.12.2/bin/chef-solo:23:in `<top (required)>'
        from /opt/gitlab/embedded/bin/chef-solo:23:in `load'
        from /opt/gitlab/embedded/bin/chef-solo:23:in `<main>'

最佳答案

我从 GitLab 支持人员那里了解到,运行 bundle 更新会破坏许多 GitLab 依赖项。

关于ruby - 如何更改默认的 gem 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28707738/

相关文章:

Ruby 脚本使用没有 Rails 的 database.yml 连接到 Mysql2

ios - 解析 JSON 并提取图像的 URLS

json - 如何在 Golang 中获取 JSON 唯一字段的名称和深度嵌套的子字段的值?

Ruby gem LoadError - ruby​​gems/defaults/operating_system

ruby-on-rails - Rails Devise 为未确认的用户抛出 302 错误

ruby-on-rails - Rails Bundle,gems 冲突,解决它的最佳方法

ruby-on-rails - Rails Custom Rake Task 没有方法错误

ruby-on-rails - 修复 ruby​​ 中的重复方法

javascript - 修改动态嵌套数组,只知道要访问的索引

ruby - 当通过 OLE 从 Ruby 或 VBS 调用时,Word Document.SaveAs 忽略编码