卸载 Rails 和 Gems,出现错误“无法卸载,检查‘gem list -d …’”
-
25-09-2019 - |
题
我将从通常的菜鸟台词开始,“我是 Rails 新手”。哦,我运行的是 Mac OSX 10.6.4
我一直在遵循一系列指南进行设置,特别是这两个 这里 和 这里. 。这些指南很棒,我使用第二个指南的原因是 RVM,而我使用第一个指南的原因是 MYSQL。
不管怎样,当我开始时,我并没有完全遵循说明,所以在安装 RVM 后,出于某种原因我安装了 Rails sudo gem install rails -v 2.3.8
因为那是我需要的版本。所以...我意识到我正在使用系统 ruby,并且没有利用 RVM。我现在所做的是安装 Ruby 1.9.2,这样我就可以安装 Rails 3 并测试它,我还安装了 1.8.7 和 Rails 2.3.8,这样我就可以使用它来满足我的需要。
现在,我尝试从系统 Ruby 中卸载 gem,但每当我尝试时,我都会收到此错误:
错误:在执行 gem 时...(宝石::安装错误)
无法卸载,请检查“gem list -d” 无论我尝试卸载什么宝石'
关于如何移除导轨和所有这些宝石有什么想法吗?我只想从头开始使用 RVM。
更新:
通过运行命令 gem list -d rails
我已在 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/18 中找到了 gem。我应该手动删除它们吗?
解决方案
解决方案!!我仍然不明白为什么会发生这种情况,我希望有人能解释一下。为什么路径不存在?是什么导致了这个错误?
另外,我想提一下,我链接到的解决方案有一条评论说该问题是重复的。然而,原来有一个不同的解决方案,并没有帮助我(尽管它是找到这个答案的基础)。简单地在查找器中手动删除宝石不会将它们从宝石列表中删除。
无需再费周折 - 事实证明,当尝试卸载 gem 时,它无法找到其路径(我认为问题是因为使用 sudo 安装,但我可能是错的)。你需要做的是(你必须为每个宝石一一执行此操作,或者至少我必须这样做):
gem list -d 'name of gem'
并记下“安装于:”位置(在我的例子中,/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8)sudo gem uninstall 'name of gem' -i 'the path noted above'
(前任。就我而言,sudo gem uninstall rails -i /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8
- 某些 gem 仍可能无法卸载并返回权限错误。如果是这种情况,您需要做的是在上面的路径中创建一个文件夹 /bin。(就我而言,
mkdir /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/bin
- 按照步骤 2 继续卸载,仍使用原始路径 (/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8)。
现在所有卸载都应该可以了!
其他提示
使用rvm时需要注意两点:
你应该 绝不 使用
sudo
要安装 gems,只需执行gem install xxx
您无法卸载安装在 全球的 来自另一个宝石集中的宝石。您应该切换到全局 gemset 并从那里卸载:
rvm gemset use global
gem uninstall xxx
无论是在IRB或适当的脚本执行这样的:
`gem list --no-versions`.split("\n").each do |gem|
`gem list -d #{gem}`.gsub(/Installed at(.*):.*/).each do |dir|
dir = dir.gsub(/Installed at(.*): /,'').gsub("\n", '')
system "gem uninstall #{gem} -aIx -i #{dir}"
end
end
尝试这样:
sudo apt purge rails
确定我看到....
在这一点上,如果你在终端的时候,它不应该采取但几分钟重新安装整个事情
我怀疑你可能不会在有你想安装所以这就是为什么我会建议重新安装的RubyGems和构建你的核心宝石从一开始就在你Global
RVM宝石名称宝石正确RVM名。
一个更通用的答案删除所有的宝石旧版本的宝石1.8。
宝石列表--no版本| xargs的须藤宝石卸载-aIx
我用RVM管理我gemsets,并没有选择的宝石。我并不是说我已经选择了错误的宝石,这是我没有在所有被选择的宝石。一个可爱的方式来度过大部分我的第一个早晨回来的一个小时我的暑假了!