【问题标题】:getting rid of ruby gems that won't die摆脱不会死的红宝石
【发布时间】:2009-06-16 10:42:16
【问题描述】:

我有一些不会消失的红宝石。

我认为这与我安装它们的时间有关。有时我在执行 gem 安装之前忘记使用“sudo”,这会导致写入错误,并且我可以收集的内容将 gem 的副本放在我的用户目录中,而不是它可以运行的地方。但是 gem 卸载不起作用。它不断出现在“宝石列表”中,但无法从 gem 卸载或 sudo gem 卸载中卸载它。在我的“gem 环境”中找到路径后,我尝试直接删除一个 gem,但这仍然将 gem 留在列表中。

也有可能只是删除所有宝石并从头开始吗?这些让我发疯了。

我正在运行 OS X。

【问题讨论】:

    标签: ruby-on-rails ruby rubygems


    【解决方案1】:

    假设gem clean(或sudo gem clean)不起作用,我会尝试以下方法从您的系统中完全删除所有宝石:

    你可以通过运行命令查看gem的安装位置:

    gem env paths
    

    要删除系统上的所有 gem,只需删除此命令返回的文件夹即可。

    此外,在 OSX Leopard 上,默认 gem 安装在此文件夹中:

    /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8
    

    如果您的系统上存在此文件夹,您可以像以前一样删除此文件夹以确保删除所有 gem。

    【讨论】:

    • 一个后续问题...当我通过带有 rake gems:install 的 rails 安装 gems 时,它们会正确安装吗?还是我也应该运行 sudo rake gems:install?
    • 我猜这取决于您使用的 Ruby 安装方式以及安装方式。如果您从源代码安装它,您可能需要运行sudo rake gems:install。在大多数情况下,我通常倾向于 sudo 选项
    【解决方案2】:

    您还可以执行以下操作来删除已安装的 gem。

    gem list -d [gem name]
    gem uninstall --install-dir [install directory] [gem name]
    

    如果前面提到的事情不起作用,我今天必须自己做。

    【讨论】:

    • 这是唯一真正帮助我的事情。所有其他的东西都没有改变任何东西
    【解决方案3】:

    我遇到了类似的问题,但根本问题是由于某种未知原因而存在的 gemspecs。

    在我以为我已经卸载了所有 gem 之后:

    matt$ gem1.9 list
    *** LOCAL GEMS ***
    minitest (1.6.0)
    rake (0.8.7)
    rdoc (2.5.8)
    

    这里没有宝石:

    matt$ ls -al /opt/local/lib/ruby1.9/gems/1.9.1/gems/
    total 0
    drwxr-xr-x  2 root  admin   68 Jul 23 14:54 .
    drwxr-xr-x  8 root  admin  272 Mar  3 14:56 ..
    

    他们来了!

    matt$ ls -al /opt/local/lib/ruby1.9/gems/1.9.1/specifications/
    total 24
    drwxr-xr-x  5 root  admin  170 Jul 23 14:54 .
    drwxr-xr-x  8 root  admin  272 Mar  3 14:56 ..
    -rw-r--r--  2 root  admin  129 Nov  1  2010 minitest.gemspec
    -rw-r--r--  2 root  admin  121 Nov  1  2010 rake.gemspec
    -rw-r--r--  2 root  admin  121 Nov  1  2010 rdoc.gemspec
    

    删除 gemspecs:

    matt$ sudo rm /opt/local/lib/ruby1.9/gems/1.9.1/specifications/*
    

    现在宝石不见了:

    matt$ gem1.9 list
    *** LOCAL GEMS ***
    

    【讨论】:

      【解决方案4】:

      我有一个不会死的宝石,我必须通过使用命令 gem uninstall -aIx 删除我所有的宝石来走“核弹一切”路线。然后只需gem install <gemname>,我就可以恢复运行了。

      【讨论】:

        【解决方案5】:

        如果您有多个版本的 gem,您必须先进行清理,然后删除最终的 gem。

         gem cleanup <gemname>
         gem uninstall <gemname> --version
        

        【讨论】:

          【解决方案6】:

          查看RVM,它允许您在您的用户而不是系统目录中完全管理您的 ruby​​ 环境。我发现使用它来管理红宝石版本和宝石要容易得多。

          【讨论】:

            【解决方案7】:

            通过运行gem update --system 和 然后,希望gem uninstall xxx 能够工作。 [这是旧版本中的错误。]

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2011-03-12
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-03-21
              • 2019-08-09
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多