我的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 server
之外,真正使用gem
命令执行任何操作都会导致错误。
如果我升级到最新的Ruby版本,我担心我的gem
命令会再次变得不可靠,我将不得不再经历一天的故障排除版本。我如何解决这个问题,或者至少去掉消息,这样我就可以重新创建东西了?
发布于 2020-03-10 03:55:05
就在今天我遇到了这样的事情。不知何故,我的红宝石版本似乎已经被破坏了。当我运行rvm list
时,2.5.1版被列为“坏掉的”。我必须完全卸载2.5.1 (即使在我的情况下也使用sudo )才能从头开始。
然后,当尝试重新安装时,rvm给了我各种各样的痛苦,因为我最初无法正确安装一个新的gpg密钥(hint)。
在彻底清除ruby 2.5.1,将rvm更新到最新版本并重新安装之后,我得到了这个错误:Error running 'env GEM_HOME=/ruby-2.5.1@global GEM_PATH= /Users/user/.rvm/rubies/ruby-2.5.1/bin/ruby -d /Users/user/.rvm/src/rubygems-3.0.8/setup.rb --no-document',
。
似乎对MacOSX的更新不推荐使用某个版本的OpenSSL,这会导致一些问题。我最终遵循了this线程,运行了rvm gemset create global --default
,然后运行了bundle install
,以获得传递的Gem错误。
老实说,rails应该比这更简单。我希望docker有时候更容易理解。这些都是docker承诺要解决的问题,对吧?
https://stackoverflow.com/questions/57650918
复制