ChatGPT解决这个技术问题 Extra ChatGPT

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

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

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

编辑:我在 Mac OS 10.6

你安装到 /opt/ruby 了吗?这就是我所做的,所以我可以快速去除红宝石。
请参阅 stackoverflow.com/questions/15100496/… 这也适用于 1.9.3 :)
您的问题标题和最后的“简短问题”摘要是两个不同的东西......

J
Joshua Pinter
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 发生错误,请重复,直到完成
这就是我所做的,我不得不重复这些步骤几十次。有时,gem 抱怨我没有正确的目录权限:ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /usr/share/rubygems-integration/2.7.0/bin directory. 事实上,该目录不存在:我只需要mkdir 并重新运行 gem命令。
r
rastersize

RVM 支持网站:

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

因此,只需转到命令行并键入 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
我会在 gem 卸载时添加“-all -x -I”选项,以防止它在卸载时提示您(对于二进制文件、版本或依赖项)。
作为参考,完整的命令是:for x in `gem list --no-versions`;做 gem 卸载 $x -a -x -I;完毕
如需更多参考,另一种选择:gem list --no-versions | xargs gem uninstall -aIx
n
nalzok

对于 Windows 和 Unix,在命令提示符下复制/粘贴 (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 不确定我是否已修复它,但您现在可以尝试命令。
v
veer7

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

rvm gemset empty GEMSET

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

安装包

yum install bundler 最后

bundle install

c
chesterbr

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有同样的效果吗?
M
Mukesh Kumar Gupta

这适用于我在 Ubuntu 16.04 上。对我来说,当我执行命令 rails -v 时,它会因为 NameError 而引发错误。我已经安装了 3 个版本的 rails(4.2.0、4.2.6、5.0.0.1)。我试图使用命令 gem uninstall rails -v version number 卸载不必要的 gem,但我不能,但我找到了解决这个问题的方法。为了卸载所有 gem,您必须使用 bash 脚本遍历 gem 列表中的所有条目。这种方法非常不方便。感谢 Rubygems 2.1.0,您现在可以使用一个命令来完成。步骤 - 1 首先,请确保将 Rubygems 升级到 2.1.0 或更高版本。为此运行此命令(如果您正在使用旧版本。您可以使用此命令检查您的 gem 版本,其中任何一个 gem -v 或 gem --version) gem update --system gem --version STEP - 2 运行这个命令在你终端 gem uninstall --all 步骤 - 3 安装 gem 包(我认为这不是必要的,我认为只是为了预防措施) gem install bundle 步骤 - 4 使用这个命令在你的系统上安装导轨 gem install rails -v 你的特定版本想安装你可以在官方网站rails all versions example上查看rails版本:-我已经安装了rails 4.2.6版本,你按照要求安装。 gem install rails -v 4.2.6 Step - 5 最后使用基本命令 rails -v 检查已安装的 rails framework 应用程序的版本。它将与当前版本的 Rails 框架相呼应。享受:) 参考

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


C
Community

步骤1:

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

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

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

sudo -s

Credit

第2步:

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

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

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

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

Credit


S
Sam Saffron

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

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

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

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

关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅