gpt4 book ai didi

ruby-on-rails - 如何删除默认 gem? !想卸载一个 gem 1.7.7 版本的 json

转载 作者:行者123 更新时间:2023-12-03 14:33:08 26 4
gpt4 key购买 nike

我在 OSX 和 Ubuntu 中有相同的 rails 应用程序,我想使用 Zeus 来加速我的 rspec。
在 Ubuntu 中,Zeus 启动正常,但在 OSX 中它总是崩溃。
终于找到问题了,https://github.com/burke/zeus/issues/237#issuecomment-18700462 OSX 和 Ubuntu 之间的区别在于 json gem 的版本。
我用 gem list | grep jsonUbuntu 显示

json (1.8.1, 1.8.0, 1.5.3)
json_pure (1.5.3)
json_spec (1.1.1)
jsonpath (0.5.3)
multi_json (1.8.2, 1.7.8, 1.0.3)

麦克秀
json (1.8.1, 1.7.7)
json_spec (1.1.1)
jsonpath (0.5.5, 0.5.3)
multi_json (1.8.2, 1.7.8)

所以我想卸载 1.7.7 版本的 json gem 来让 zeus 启动,但是
gem uninstall json -v 1.7.7
ERROR: While executing gem ... (Gem::InstallError)
gem "json" cannot be uninstalled because it is a default gem

我该怎么办?

最佳答案

因此,根据我所知道的,没有简单的命令可以将 gemspec 文件从默认文件夹移动到非默认文件夹。据我所知,这是一件好事,但这里是有关如何手动执行此操作的说明。

  • 找到默认规范的位置。最简单的方法是进入irb并运行以下命令:
    irb(main):002:0> Gem.default_specifications_dir
    => "/Users/user/.rubies/ruby-2.5.7/lib/ruby/gems/2.5.0/specifications/default"

    对于较旧的 ruby​​gems,它是:
    irb(main):001:0> File.join Gem::Specification.default_specifications_dir
    => "/Users/newdark/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/specifications/default"

  • 这是构建 gemspec 路径的代码行
    https://github.com/rubygems/rubygems/blob/v2.6.13/lib/rubygems/installer.rb#L420
  • 获得文件路径后,您只需将 gem 名称和版本从默认文件夹移动到父文件夹。
    $ cd /Users/newdark/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/specifications/default
    $ mv json-1.7.7.gemspec ../

  • 如果你这样做 gem list -d您不应再看到 Installed at (default) 字样在 gem 版本 json-1.7.7 旁边。然后你可以运行 gem uninstall json -v 1.7.7没有它与你战斗。如果你想撤销这一切,只需运行 gem install json -v 1.7.7 --default

    关于ruby-on-rails - 如何删除默认 gem? !想卸载一个 gem 1.7.7 版本的 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20945110/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com