【问题标题】:Uninstall old versions of Ruby gems卸载旧版本的 Ruby gem
【发布时间】:2011-08-19 15:18:17
【问题描述】:

我有几个版本的 Ruby gem:

$ gem list
rjb (1.3.4, 1.3.3, 1.1.9)

如何删除旧版本但保留最新版本?

【问题讨论】:

    标签: ruby gem


    【解决方案1】:
    bundler clean
    

    在我尝试上述所有方法后的最后一步,停止为我显示消息。

    【讨论】:

      【解决方案2】:

      您可能需要设置GEM_HOME 才能进行清理。您可以通过运行检查 gemfile 的路径:

      gem env
      

      注意 GEM PATHS 部分。

      例如,在我的用户主页中安装了 gems:

      export GEM_HOME="~/.gem/ruby/2.4.0"
      gem cleanup
      

      【讨论】:

        【解决方案3】:

        要删除旧版本的 所有 已安装的 gem,以下 2 个命令很有用:

         gem cleanup --dryrun
        

        上面的命令将预览要移除的宝石。

         gem cleanup
        

        上面的命令实际上会删除它们。

        【讨论】:

        • 在我的 ubuntu cloud9 设置中不起作用...必须使用 sudo 运行
        • 从当前版本的 gem 3.2.15 开始,我收到以下消息。 --dryrun 选项已被弃用,并将在 Rubygems 的未来版本中删除。请改用--dry-run
        【解决方案4】:

        清除任何旧版本 gem 的方法。

        sudo gem cleanup
        

        如果您只想查看将要删除的内容的列表,您可以使用:

        sudo gem cleanup -d
        

        您还可以通过指定名称来仅清理特定的 gem:

        sudo gem cleanup gemname
        

        仅用于删除特定版本,例如 1.1.9

        gem uninstall gemname --version 1.1.9
        

        如果您在安装 gem 时仍然遇到一些异常,例如:

        无效的 gem:包已损坏,验证时出现异常:/home/rails/.rvm/gems/ruby-2.1.1@project/cache/nokogiri-1.6 中的 nil:NilClass (NoMethodError) 的未定义方法“大小” .6.2.gem

        那个,你可以把它从缓存中删除:

        rm /home/rails/.rvm/gems/ruby-2.1.1@project/cache/nokogiri-1.6.6.2.gem
        

        更多详情:

        http://blog.grepruby.com/2015/04/way-to-clean-up-gem-or-remove-old.html

        【讨论】:

        • 你可能不应该使用sudo
        【解决方案5】:

        gem cleanup 使用系统命令。已安装的 gem 只是文件系统中的目录。如果要批量删除,请使用rm -R。

        1. gem environment 并注意 GEM PATHS 的值
        2. cd <your-gem-paths>/gems
        3. ls -1 |grep rjb- |xargs rm -R

        【讨论】:

        • "已安装的 gem 只是文件系统中的目录。"很高兴知道,谢谢
        【解决方案6】:
        # remove all old versions of the gem
        gem cleanup rjb
        
        # choose which ones you want to remove
        gem uninstall rjb
        
        # remove version 1.1.9 only
        gem uninstall rjb --version 1.1.9
        
        # remove all versions less than 1.3.4
        gem uninstall rjb --version '<1.3.4'
        

        【讨论】:

          【解决方案7】:

          试试gem uninstall rjb --version 1.3.4。

          【讨论】:

          • 问题是“如何删除旧版本但保留最新版本?”此响应将删除最新版本。
          猜你喜欢
          • 2012-04-29
          • 2015-11-10
          • 1970-01-01
          • 2020-02-28
          • 2017-07-23
          • 2013-01-09
          • 2013-02-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多