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