How can I remove a default gem? ! want to uninstall a gem 1.7.7 version of json
default, ruby-on-rails, rubygems
Solution
So based off what I can tell there is no easy command that can move the gemspec file from the default folder to the non-default folder. This is a good thing from what I can tell but here are the instructions on how to do this by hand.
Find the location of the default spec. The easiest way is to go into `irb` and run the following command:
irb(main):002:0> Gem.default_specifications_dir
=> "/Users/user/.rubies/ruby-2.5.7/lib/ruby/gems/2.5.0/specifications/default"
For older rubygems it's:
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"
This is the line of code that builds the gemspec path https://github.com/rubygems/rubygems/blob/v2.6.13/lib/rubygems/installer.rb#L420
Once you get the file path you just need to move the gem name and version from the default folder to the parent folder.
$ cd /Users/newdark/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/specifications/default
$ mv json-1.7.7.gemspec ../
if you do `gem list -d` you should no longer see the words `Installed at (default)` next to the gem version json-1.7.7. you can then run `gem uninstall json -v 1.7.7` with out it fighting you. If you want to undo all this just run `gem install json -v 1.7.7 --default`
Problem
I have the same rails app in OSX and Ubuntu, I want to use Zeus to speed up my rspec. In Ubuntu, Zeus starts Ok, but in OSX it always be crashed. At last I find the issue, https://github.com/burke/zeus/issues/237#issuecomment-18700462 the difference between OSX and Ubuntu is the version of json gem. I use `gem list | grep json` Ubuntu shows ``` 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) ``` Mac shows ``` 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) ``` so I want to uninstall 1.7.7 version of json gem to make zeus start, but ``` gem uninstall json -v 1.7.7 ERROR: While executing gem ... (Gem::InstallError) gem "json" cannot be uninstalled because it is a default gem ``` What should I do?