首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何修复RubyGems任务中的“未初始化常量Gem::GEM_PRELUDE_SUCKAGE”

如何修复RubyGems任务中的“未初始化常量Gem::GEM_PRELUDE_SUCKAGE”
EN

Stack Overflow用户
提问于 2019-08-26 09:30:07
回答 1查看 1.2K关注 0票数 0

我的RubyGems不工作,抛出一个错误,如下所示,在任何Gem任务上触发(几乎):

代码语言:javascript
代码运行次数:0
运行
复制
/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命令会再次变得不可靠,我将不得不再经历一天的故障排除版本。我如何解决这个问题,或者至少去掉消息,这样我就可以重新创建东西了?

EN

回答 1

Stack Overflow用户

发布于 2020-03-10 11: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承诺要解决的问题,对吧?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57650918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档