升级到Rubygems 1.5.0后,Bundler会抛出“未初始化常量Gem :: SilentUI(NameError)”错误。

54
我运行了gem update --system命令,升级到Rubygems 1.5.0版本后,每次运行bundle命令时都出现以下错误:rvm/gems/ruby-1.8.7-p249/gems/bundler-1.0.9/lib/bundler/ui.rb:56: uninitialized constant Gem::SilentUI (NameError)。请问是否有其他人也遇到过这个问题?
7个回答

105

更新到 bundler 1.0.10 或更高版本 (gem update bundler)。该问题已在较新版本中得到修复。


2
如果由于某些原因无法更新bundler,您可以按照此处的说明降级rubygems http://rubygems.rubyforge.org/rubygems-update/UPGRADING_rdoc.html - BaroqueBobcat
@BaroqueBobcat 降级到哪个版本? - Mu Mind

6
如果你对bundler不太清楚,又不想学习,那么这个问题的非常简短的答案是:
gem install bundler

这肯定是最简单的修复。 - Andrew

2

2

关于“只需更新到bundler 1.0.10。”的回复 —— 注意,你不能仅通过执行此操作来获取新版本。

sudo gem update

您需要完全卸载当前的bundler,并忽略有关它破坏依赖项的警告,然后重新安装它。这样可以修复我的Bundler 1.0.7并使系统恢复正常。


1

看起来今天刚发布的RubyGems 1.5.0与Bundler 1.0.9不兼容。

你可能需要降级回到RubyGems 1.4,直到Bundler发布更新(很快就会发布)。

更新:Bundler 1.0.10现已发布。


如果您确实需要降级,无论出于何种原因:http://groups.google.com/group/rails-oceania/browse_thread/thread/4c673ccd0f659875 - Andrew Vilcsak

0
请注意,如果您正在使用rvm,则可能无法自行升级bundler。您可能需要升级rvm以更新bundler,因为rvm与bundler集成得非常紧密。我遇到了这个错误,尝试升级bundler,但失败了,升级rvm解决了我的问题。

0

您也可以降级Rubygems,但这不是最理想的选择。如果您需要特定版本的bundler,则必须这样做,尤其是对于遗留系统。

例如,我目前正在处理的应用程序使用以下版本:

Ruby 1.8.6-p383 RubyGems 1.3.6 Bundler 0.9.26


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接