如何删除默认宝石?!想要卸载json的gem 1.7.7版本

 StrAiGhT-OuT 发布于 2023-02-06 12:41

我在OSX和Ubuntu中使用相同的rails应用程序,我想使用Zeus来加速我的rspec.在Ubuntu中,Zeus启动Ok,但在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)

Mac显示

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

我该怎么办?

2 个回答
  • 所以根据我的判断,没有简单的命令可以将gemspec文件从默认文件夹移动到无默认文件夹.从我所知道的这是一件好事,但这里是如何手动执行此操作的说明.

      找到默认规范的位置.Easies方式是进入irb并运行follow命令

      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)宝石版json-1.7.7旁边的文字了.然后gem uninstall json -v 1.7.7,你可以在没有它的情况下与你战斗.如果你想撤消这一切只是运行gem install json -v 1.7.7 --default

    2023-02-06 12:43 回答
  • 我在使用默认版本的gem时遇到问题,接受的答案对我不起作用。对我有用的是安装与默认版本相同的版本,但没有默认标志,然后将其卸载。

    gem install json -v '1.7.7'
    

    然后,一旦完成:

    gem uninstall json -v '1.7.7'
    

    2023-02-06 12:43 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有