移除所有已安装的 Gem 并重新开始

Posted

技术标签:

【中文标题】移除所有已安装的 Gem 并重新开始【英文标题】:Removing all installed Gems and starting over 【发布时间】:2011-06-21 21:58:35 【问题描述】:

我最近开始学习 Ruby 和 Ruby on Rails,并且看过大量的入门资料。我最近发现我不断收到错误,即无法安装 gems 或将安装它们但由于某种原因无法使用它们,我决定我想删除所有内容,再次安装 Ruby并重新开始安装。一个培训视频让我使用 RVM 安装了我的大部分 gem,所以我不知道这是否会改变任何东西。

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

编辑:我使用的是 Mac OS 10.6

【问题讨论】:

你安装到 /opt/ruby 了吗?这就是我所做的,以便我可以快速移除红宝石。 参见***.com/questions/15100496/… 这也适用于 1.9.3 :) 你的问题标题和最后的“短问题”摘要是两个不同的东西...... 【参考方案1】:

来自RVM 支持网站:

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

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

所有已安装的 gem 都在 ~/.rvm 文件夹中,因此执行上述操作将一次性删除 gem 和已安装的 rubies。

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

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

【讨论】:

我刚刚运行了它,但仍然安装了 gems。然而,它看起来像是重新加载了它。不确定它是否重新加载了 Mac XCode 的默认值或什么... 添加了另一行来摆脱您在 RVM 之前添加的宝石 我会在 gem 卸载时添加 '-all -x -I' 选项,以防止它在卸载时提示您(对于二进制文件、版本或依赖项)。 供参考,完整的命令是:for x in `gem list --no-versions`;做 gem 卸载 $x -a -x -I;完成 更多参考,另一种选择:gem list --no-versions | xargs gem uninstall -aIx【参考方案2】:
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

【讨论】:

这给了我:ERROR: While executing gem ... (Gem::InstallError) gist is not installed in GEM_HOME, try: gem uninstall -i /usr/share/rubygems-integration/all gist 那么你应该按照它的建议去做。然后再重新运行gem uninstall -aIx。如果其他 gem 发生错误,请重复,直到它完成【参考方案3】:

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

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

【讨论】:

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 不确定我是否已修复它,但您现在可以尝试命令。【参考方案4】:

使用 RVM,您只需键入...

rvm gemset empty GEMSET

其中 GEMSET 是您要清空的 gemset。那么……

安装包

yum install bundler 最后

bundle install

【讨论】:

【参考方案5】:

rvm implode(请参阅cli docs)似乎有效 - 它甚至可以告诉您在哪里寻找剩菜

【讨论】:

这在技术上是最正确的答案,也正是它的设计目的。 "implode - 删除它管理的所有 ruby​​ 安装,在 ~/.rvm 中的所有内容" "implode 不会卸载 RVM 本身。基本上,除了手动清理安装对系统所做的所有事情之外,没有办法自动卸载 RVM。这是一个巨大的缺点。唯一的方法卸载 RVM 就是手动清理它对系统所做的一切。”来源:duseev.com/articles/rbenv-vs-rvm 注:我是新手,没有资格判断文章中的建议是否准确。 @MarkGavagan 我同意它不会做所有事情,但它会告诉你还需要做什么(我在上面所说的“剩菜”)。事实上,那篇文章关于卸载 rvm 的第 0 步是……rvm impode :-) 这个效果和rvm gemset empty GEMSET一样吗?【参考方案6】:

    这是在 Ubuntu 16.04 上为我工作的。对我来说,当我执行 命令 rails -v 由于 NameError,它会抛出错误。我有 安装了 3 个版本的导轨(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 更新 --system

    gem --version

    步骤 - 2

    在你的终端中运行这个命令

    gem 卸载 --all

    步骤 - 3

    安装 gem 包(我认为没有必要只是为了 防范措施) gem 安装包

    步骤 - 4 使用此命令在系统上安装导轨 gem install rails -v specific version you want to install 你可以在官网查看rails版本rails all versions 示例:-我已经安装了 rails 4.2.6 版本,您根据要求安装。 gem install rails -v 4.2.6

    步骤 - 5

    最后检查安装的rails框架应用程序的版本 通过使用基本命令 rails -v。它将呼应当前 rails 框架的版本。享受:)

    参考文献

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

【讨论】:

【参考方案7】:

第 1 步:

我首先一直遇到一个错误,上面写着:

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

为了获得许可,我成为了 的 root 用户(由于我目前无法理解的原因,这可能很危险)

sudo -s

Credit

第 2 步:

然后,我一直遇到一个错误,上面写着:

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

这让我可以卸载所有东西:

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

Credit

【讨论】:

【参考方案8】:

FWIW,有一些奇怪的情况下安装了 gems 但没有真正安装:

这应该可以合理可靠地解决问题。

gem uninstall -Iax `gem list  | grep default | awk 'print $1'`

【讨论】:

您可能想用 grep 代替 'default:'(包括冒号),因为有不少 gem 的名称中包含“default”。

以上是关于移除所有已安装的 Gem 并重新开始的主要内容,如果未能解决你的问题,请参考以下文章

Puppet:安装 gem 包时如何重新加载环境 - rbenv 版本未激活

pg gem 安装错误 - lion osx、bundler 和 rvm

我可以重新测试所有已安装的 CPAN 模块吗?

在 OSX 中卸载所有已安装的 gem?

无法移除组件并重新绘制

SQL Server 可更新订阅中有行筛选的同步复制移除项目而不重新初始化所有订阅!