删除所有已安装的宝石并重新开始


92

我最近开始学习Ruby和Ruby on Rails,并观看了许多入门材料。我最近发现,在无法安装gem或将其安装但由于某种原因而无法使用的地方时,我不断收到错误消息,因此我决定只安装Ruby,然后再次删除所有内容并从安装开始。一部培训视频让我用RVM安装了我的大部分宝石,所以我不知道这是否会改变任何东西。

简而言之,我的问题是“如何摆脱RVM,Rubygems和所有已安装的Gems,以便仅使用Ruby可以重新开始?”

编辑:我在Mac OS 10.6上


1
您是否已安装到/ opt / ruby​​?那就是我要做的,所以我可以快速去除红宝石。
替代


您问题的标题和结尾的“简短问题”摘要是两件不同的事情……
mpower

Answers:


118

RVM支持站点:

RVM将所有内容安装到〜/ .rvm中。要从系统中删除RVM,请运行'rm -rf〜/ .rvm'。您可能在〜/ .rvmrc中还有一个其他的配置文件,并且在bash / zsh启动文件中当然还有RVM挂钩。

因此,只需转到命令行并输入 rm -rf ~/.rvm

所有已安装的宝石都位于〜/ .rvm文件夹中,因此执行上述操作将一次性删除宝石和已安装的红宝石。

您可以通过在命令提示符下键入以下命令来删除使用默认的ruby安装添加到RVM之前的宝石:

for x in `gem list --no-versions`; do gem uninstall $x -a -x -I; done

1
我只是运行它,但仍安装了gems。但是它看起来确实像是重新加载了它。不确定是否使用Mac XCode的默认值重新加载了它或什么...
Dave Long

添加了另一行来摆脱在RVM之前添加的宝石
michaelmichael 2011年

1
我会将'-all -x -I'选项添加到gem卸载中,以防止它在卸载时提示您(针对二进制文件,版本或依赖项)。
timmfin 2012年

4
作为参考,完整的命令是:对于`gem list --no-versions`中的x;用gem卸载$ x -a -x -I; 完成
Daniel Rehner 2012年

7
有关更多参考,另一个选择:gem list --no-versions | xargs gem uninstall -aIx
trisweb 2012年

67
gem uninstall -aIx

无需提示即可卸载所有gem。

选件

-a, --[no-]all                   Uninstall all matching versions
-I, --[no-]ignore-dependencies   Ignore dependency requirements while
                                 uninstalling
-x, --[no-]executables           Uninstall applicable executables without
                                 confirmation

34

对于WindowsUnix,请在命令提示符下(Ruby 1.9.x)复制/粘贴。

ruby -e "`gem list`.split(/$/).each { |line| puts `gem uninstall -Iax #{line.split(' ')[0]}` unless line.strip.empty? }"

2
ERROR: While executing gem ... (Gem::CommandLineError) Please specify at least one gem name (e.g. gem build GEMNAME) -e:1: no .<digit> floating literal anymore; put 0 before dot bundle (0.0.1) ^ -e:1: syntax error, unexpected tINTEGER bundle (0.0.1) ^
同构

@isomorphismes不确定我是否已修复它,但是您可以立即尝试命令。
Haris Krajina

22

使用RVM,您可以输入...

rvm gemset empty GEMSET

其中GEMSET是您要清空的gemset。然后...

安装捆绑

yum install bundler 最后

bundle install

14

rvm implode(请参阅cli docs)似乎可以工作-甚至可以告诉您在哪里查看剩菜剩饭


2
从技术上讲,这是最正确的答案,也正是它的设计目的。
mpower

“爆破-删除它管理的所有ruby安装,〜/ .rvm中的所有内容”
Nein

5
  1. 这对我在Ubuntu 16.04上有效。对我来说,当我执行命令rails -v时,由于NameError而引发错误。我已经安装了3个版本的rails(4.2.0、4.2.6、5.0.0.1)。我试图使用命令gem uninstall rails -v版本号来卸载不必要的gem ,但无法,但是我找到了解决此问题的方法。为了卸载所有gem,您必须使用bash脚本遍历gem列表中的所有条目。这种方法很不方便。感谢Rubygems 2.1.0,您现在可以使用一个命令来完成它。

    步骤1

    首先,请确保将Rubygems升级到2.1.0或更高版本。对于此命令,请运行此命令(如果您使用的是旧版本,则可以使用以下命令检查您的gem版本: gem -vgem --version

    宝石更新-系统

    gem-版本

    第2步

    在终端中运行此命令

    gem卸载--all

    步骤-3

    安装宝石包(这是没有必要的,我认为只是预防措施) 宝石安装包

    步骤-4
    使用此命令在系统上 安装rails gem install rails -vspecific version you want to install 可以在官方站点上检查rails版本rails所有版本 示例:-我已经安装了rails 4.2.6版本,请按照要求安装。 gem安装导轨-v 4.2.6

    步骤-5

    最后,使用基本命令rails -v检查已安装的Rails框架应用程序的版本。它将呼应最新版本的Rails框架。请享用 :)

    参考文献

http://ruby-journal.com/how-to-uninstall-all-ruby-gems/ http://guides.rubyonrails.org/v4.1/getting_started.html


2

步骤1:

我首先遇到一个错误,说:

您没有对/ usr / bin目录的写权限

为了获得许可,我成为了root用户(由于超出我目前的理解范围,这可能很危险)

sudo -s

信用

第2步:

然后,我不断遇到一个错误,说:

[gem]无法卸载,因为它是默认的gem

这使我可以卸载所有内容:

for i in `gem list --no-versions`; do gem uninstall -aIx $i; done

信用

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.