我的 RubyGems 不工作,抛出如下错误,触发(几乎)任何 Gem 任务:
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems.rb:1081:in `<top (required)>': uninitialized constant Gem::GEM_PRELUDE_SUCKAGE (NameError)
from <internal:gem_prelude>:1:in `require'
from <internal:gem_prelude>:1:in `<compiled>'
我是 Ruby / RubyGems / 安装 Ruby 的新手,我所知道的是未初始化的常量本质上是一个未定义的变量。它也可能与 Ruby 本身有关,尽管 -> Gem:GEM
<-_PRELUDE_SUCKAGE
将我指向 RubyGems。
简而言之,我安装了一堆 Ruby 的东西(想想 RVM、rbenv 等)来开发 Ruby on Rails,因为我认为这将是学习 Ruby 的好方法。
好吧,在经历了一个漫长而乏味的过程之后,将 Ruby 升级到 2.6.3,然后降级到 2.5.5,然后 2.4.0,然后回到 2.5.5 并解决降级问题,RubyGems 抛出错误。我选择了 2.5.5,因为 2.6.3 会导致错误,而 2.4.0 版本太早了。
它会导致各种错误,例如 HAML 未编译和 Rails 未制作控制器。我真的不知道发生了什么。
如果我运行gem install [gem name]
,它会引发错误。运行rails generate controller [name] index
(对于那些不熟悉 Rails 的人来说,这会创建一个控制器)它会抛出错误。真正使用gem
命令执行任何操作都会导致错误,除了gem server
.
如果我升级回最新的 Ruby 版本,我担心我的gem
命令会再次出现问题,我将不得不再经历一天的故障排除版本。我该如何解决这个问题,或者至少摆脱消息,以便我可以再次创建东西?