当前位置: 首页 > 面试题库 >

您的Ruby版本是2.0.0,但您的Gemfile指定了2.1.1

淳于嘉树
2023-03-14
问题内容

我已阅读并尝试了建议的几个,其他的,问题,像我这样的(所有公认的答案),以及几个小时的谷歌搜索,但毫无效果。这使我认为我的问题是计算机上的某个Ruby/RBENV生态系统损坏了,或者是一个可怕的PATH问题。我总是必须sudo安装任何从未安装过的gem,这也令人困惑。

这是我认为相关的文件和命令的一些输出。如果您需要更多信息,请告诉我:

.zshrc

export PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin" if which rbenv > /dev/null;
then eval "$(rbenv init - zsh)"; fi

ruby-v

ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-darwin13.0]

本地rbenv

2.1.1

Gemfile(我也炸掉了我的gemfile.lock几次)

source 'https://rubygems.org'

ruby '2.1.1'

gem 'rails', '4.1.4'
... [omitted for brevity]

.ruby版本

2.1.1

回声$ PATH

/[user path]/.rbenv/shims:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

如果有人对我接下来应该尝试的内容有任何想法,而又没有重新格式化计算机,我将不胜感激。

编辑1: 根据Ben Kreeger,尝试从下面的git仓库安装两个选项。type rbenv正确返回的rbenv是一个shell函数,原始消息不断出现。我重新安装了Mavericks,但我的设置仍然无法正常工作。

编辑2: 每当我尝试安装gem时,我都会Gem::FilePermissionError说我无权访问Ruby
2.0.0文件夹(作为系统安装)。要和RBENV一起摆弄更多…

编辑3: 更多调试(下面的所有内容)

当使用RBENV安装Ruby版本时,一直保持错误状态,发现有些人提到了readline问题。

尝试了以下步骤来修复readline:https : //github.com/sstephenson/ruby-
build/issues/550#issuecomment-40681557
,并收到一条错误消息,指出我的Xcode命令行工具安装错误。

跑去xcode-select --install重新安装它们。

rbenv install 2.1.1再次尝试,并得到The Ruby openssl extension was not compiled. Missing the OpenSSL lib?

根据https://coderwall.com/p/n9bnug,我将OpenSSL扩展名与https://coderwall.com/p/n9bnug

重置Ruby版本:rbenv local 2.1.1 rbenv global 2.1.1rbenv rehash

一切似乎都表明捆绑程序正在尝试使用我的systemRuby安装(2.0.0-p247),而不是RBENV指定的内容。困惑的地方是丢失的链接。


问题答案:

哇,只是哇。

我要做的只是gem install bundler然后rbenv rehash。一切正常。

最初的错误消息使我发现RBENV或我的Ruby版本存在问题,而实际上它只是依靠旧版本的捆绑程序而已。

为什么我不会收到更多标准this needs bundler version [xxxx]...错误,而不是告诉我我的Ruby版本指定不正确?



 类似资料:
  • 当我部署我的项目时,我会得到这个错误代码 SLF4J:详见http://www.slf4j.org/codes.html#version_mismatch。AVR.ApplicationContext日志信息:初始化spring根WebApplicationContext AVR。30,2014 10:16:37 AM org.apache.catalina.core.StandardContex

  • 这里有几个关于Stackoverflow的问题,关于Kotlin编译器警告,当不同版本的Kotlin JAR在类路径中混合时。 这个问题是一个不同的问题,涉及到使用静态编程语言开发Gradle插件时的情况。当您至少有以下一项: 插件应用 plugin被应用 添加了依赖项 添加了依赖项 你有静态编程语言插件,如,例如: 你会出名的: 静态编程语言1.3.72是Gradle 6.7的嵌入式版本,静态编

  • 我有一个使用SLF4J的项目,SLF4J也使用log4j1.2.17(默认情况下,没有在pom.xml中指定任何版本)。 嗨,我想升级Log4J版本到2.17.1,有关于如何操作的信息https://logging.apache.org/log4j/2.x/maven-artifacts.html 我在pom中添加了以下代码。xml文件 然后,当我检查Maven依赖项时,它会在我的项目中显示旧版本

  • 问题内容: AFAIK,您无需在onclick中指定协议: 坏 好 今天,我在GoogleAnallytics上注意到他们正在使用它: 这个例子是完全错误的,还是有理由指定除?以外的其他内容? 问题答案: 这里的一些响应声称“javascript:”前缀是“过去的遗留物”,这意味着浏览器有意对它进行了特殊处理,以实现向后兼容。是否有确凿的证据证明是这种情况(有人检查过源代码)吗? 对我来说,它的意

  • 问题内容: 我正在从一个教程CRUD。而且我得到这个错误。 您指定了无效的数据库连接组。 有什么问题吗? database.php- 数据库配置 users_model.php -model users.php- 控制器 show_users.php -html视图 问题答案: 您正在加载名为的数据库组。但是,没有所谓的数据库组。您仅有的一个是称为的组,如果您未指定组,则默认情况下将加载该组。 你

  • 我尝试使用Virtualbox在MacOS上运行minikube v0.22.1和kubectl v1.7.5。 但是,所有命令都失败并显示“连接被拒绝-您指定了正确的主机或端口吗?” 此处提出的解决方案(< code > sudo ifconfig vboxnet0 up )没有帮助,vbox net 0接口已启动。 我们非常感谢您的任何想法或建议。