Bundler使用错误的Ruby版本

问题描述 投票:0回答:4

当我尝试启动我的Rails服务器时,出现以下错误:

$ bundle exec rails s
Your Ruby version is 2.3.7, but your Gemfile specified ~> 2.3.8

我不明白为什么会这样,因为我使用Homebrew和使用rbenv将Ruby设置为2.3.8。 2.3.7是系统的ruby版本。我使用的是Mac OS 10.14.4。

$ ruby -v
ruby 2.3.8p459 (2018-10-18 revision 65136) [x86_64-darwin18]

$ rbenv version
2.3.8 (set by /Users/ceasar/foo/.ruby-version)

$ which -a ruby
/Users/ceasar/.rbenv/shims/ruby
/usr/local/opt/[email protected]/bin/ruby
/usr/local/bin/ruby
/usr/bin/ruby

$ which -a bundle
/Users/ceasar/.rbenv/shims/bundle
/usr/local/bin/bundle

$ /usr/bin/xcodebuild -version
Xcode 10.2
Build version 10E125

$ brew list [email protected]
/usr/local/Cellar/[email protected]/2.3.8_1/bin/erb
/usr/local/Cellar/[email protected]/2.3.8_1/bin/gem
/usr/local/Cellar/[email protected]/2.3.8_1/bin/irb
/usr/local/Cellar/[email protected]/2.3.8_1/bin/rake
/usr/local/Cellar/[email protected]/2.3.8_1/bin/rdoc
/usr/local/Cellar/[email protected]/2.3.8_1/bin/ri
/usr/local/Cellar/[email protected]/2.3.8_1/bin/ruby
/usr/local/Cellar/[email protected]/2.3.8_1/include/ruby-2.3.0/ (25 files)
/usr/local/Cellar/[email protected]/2.3.8_1/lib/libruby.2.3.0.dylib
/usr/local/Cellar/[email protected]/2.3.8_1/lib/pkgconfig/ruby-2.3.pc
/usr/local/Cellar/[email protected]/2.3.8_1/lib/ruby/ (1211 files)
/usr/local/Cellar/[email protected]/2.3.8_1/lib/ (3 other files)
/usr/local/Cellar/[email protected]/2.3.8_1/share/emacs/ (7 files)
/usr/local/Cellar/[email protected]/2.3.8_1/share/man/ (4 files)
/usr/local/Cellar/[email protected]/2.3.8_1/share/ri/ (13487 files

$ bundle env | head -n 40
## Environment

```
Bundler       2.0.1
  Platforms   ruby, x86_64-darwin-18
Ruby          2.3.8p459 (2018-10-18 revision 65136) [x86_64-darwin18]
  Full Path   /Users/ceasar/.rbenv/versions/2.3.8/bin/ruby
  Config Dir  /Users/ceasar/.rbenv/versions/2.3.8/etc
RubyGems      2.5.2.3
  Gem Home    /Users/ceasar/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0
  Gem Path    /Users/ceasar/.gem/ruby/2.3.0:/Users/ceasar/.rbenv/versions/2.3.8/lib/ruby/gems/2.3.0
  User Path   /Users/ceasar/.gem/ruby/2.3.0
  Bin Dir     /Users/ceasar/.rbenv/versions/2.3.8/bin
Tools
  Git         2.19.2
  RVM         not installed
  rbenv       rbenv 1.1.2
  chruby      not installed
```

## Bundler Build Metadata

```
Built At          2019-01-04
Git SHA           d7ad2192f
Released Version  true
```

## Bundler settings

```
build.libv8
  Set for the current user (/Users/ceasar/.bundle/config): "--with-system-v8"
build.mysql2
  Set for the current user (/Users/ceasar/.bundle/config): "--with-mysql-config=/usr/local/Cellar/[email protected]/5.7.24/bin/mysql_config"
path
  Set for your local app (/Users/ceasar/Desktop/beacon/.bundle/config): "vendor/bundle"
disable_shared_gems
  Set for your local app (/Users/ceasar/Desktop/beacon/.bundle/config): true
```

我在这里看不到任何会让我觉得应该使用2.3.7的东西。

我不知道还有什么可以尝试的。

Bundler如何决定使用哪个版本的Ruby,以及如何配置它以使用rbenv或我的自制Ruby安装?

ruby-on-rails ruby bundler rbenv
4个回答
0
投票

您的捆绑版本是如何安装的?我会尝试重新安装它,现在安装了你想要的ruby版本。


0
投票

如何尝试使用'rvm'?

rvm install 2.4.2

此命令将安装另一个版本的ruby,2.4.2

您只需检查所有版本即可

rvm list

在此之后,运行您希望的版本,如下所示,

rvm <version>rvm use <version>

希望对你有帮助!


0
投票

我不建议使用RVM而不是RBEnv。 RBEnv是最新的解决方案之一,大多数人都坚持使用它。

你能不能先尝试运行gem update --system来更新你的捆绑包。


0
投票

安装Rbenv并在项目目录中运行以下命令以安装2.3.8:

rbenv install 2.3.8
rbenv local 2.3.8
bundle install --path=vendor/cache
© www.soinside.com 2019 - 2024. All rights reserved.