【问题标题】:Remove ruby gems from /usr/bin after rvm installrvm 安装后从 /usr/bin 中删除 ruby​​ gem
【发布时间】:2015-04-23 19:29:24
【问题描述】:

我最近安装了rvm 并卸载了我的Debian 的ruby1.8,尽管我认为ruby2.1 仍然安装。我在 /usr/bin 和 /usr/local/bin 中留下了很多来自(我认为)debian 的 ruby​​ 的可执行文件。我怎样才能删除那些?

当我使用gem uninstall 时,使用了rvm,并认为我想从~/.rvm/... 中删除宝石。另外,我有时会遇到问题,例如在调用 rake 时:

/usr/bin/env: ruby1.9.1: No such file or directory

顺便说一句,在它应该在的地方找不到(首先)找到:

$ whereis rake
 > rake: /usr/bin/rake2.1 /usr/local/bin/rake /home/user/.rvm/gems/ruby-2.1.5/bin/rake /home/user/.rvm/rubies/ruby-2.1.5/bin/rake

我可以简单地 rm -rf/usr/bin 和 /usr/local/bin 以及其他红宝石位置(~/.rvm/** 除外)中的宝石吗?已失效的 ruby​​ 安装还剩下什么?

感谢您的帮助。

【问题讨论】:

  • 这不是您问题的答案,但值得澄清的是/usr/bin 和/usr/local/bin 中没有任何宝石。 Gems 可以在这些位置安装它们的可执行文件,例如/usr/bin/rake,但这是一个非常小的文件,它使用了gems 目录中的代码,该目录不在/usr/bin 或/usr/local/bin 下。这取决于您的 Ruby 配置的细节,但 gem 本身可能在例如/var/lib/gems 或 /usr/lib/ruby/gems.
  • 你绝对是对的,我把事情搞混了。问题已更新。
  • 根据this article Rubygems 2.1+,您可以运行gem uninstall --all 卸载所有gem。 gem 命令也接受 --install-dir 和 --bindir 参数,如果它不知道在哪里可以找到它们。

标签: ruby linux gem debian rvm


【解决方案1】:

所以,正如 Jordan 所指出的,/usr/local/bin 中的文件只不过是加载 gem 的脚本而已。以下摆脱了它们:

cat /usr/local/bin/* | grep -lr RubyGems | sudo xargs rm

因为它们都以几行提到 RubyGems 的注释行开头。我的rake 问题来自这样一个事实,即/usr/local/bin 在我的路径中rvm 的目录之前,并且仍然充满了旧的debian 的rubygems 文件(并且shabang 引用了debian 的卸载的ruby)。宝石本身早已不复存在。

剩下的唯一问题是:debian 的 RubyGems/Ruby 不应该在卸载时清理 /usr/local/bin 吗?如果有人对此有答案,我很乐意将其标记为答案,否则我将接受此帖子。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-30
    • 2020-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-04
    • 1970-01-01
    相关资源
    最近更新 更多