Bundler использует неверную версию Ruby - PullRequest
0 голосов
/ 30 марта 2019

Когда я пытаюсь запустить свой сервер Rails, я получаю следующую ошибку:

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

Я не понимаю, почему это происходит, так как я установил Ruby на 2.3.8 как с помощью Homebrew, так и с помощьюrbenv.2.3.7 - версия системного рубина.Я использую 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/ruby@2.3/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 ruby@2.3
/usr/local/Cellar/ruby@2.3/2.3.8_1/bin/erb
/usr/local/Cellar/ruby@2.3/2.3.8_1/bin/gem
/usr/local/Cellar/ruby@2.3/2.3.8_1/bin/irb
/usr/local/Cellar/ruby@2.3/2.3.8_1/bin/rake
/usr/local/Cellar/ruby@2.3/2.3.8_1/bin/rdoc
/usr/local/Cellar/ruby@2.3/2.3.8_1/bin/ri
/usr/local/Cellar/ruby@2.3/2.3.8_1/bin/ruby
/usr/local/Cellar/ruby@2.3/2.3.8_1/include/ruby-2.3.0/ (25 files)
/usr/local/Cellar/ruby@2.3/2.3.8_1/lib/libruby.2.3.0.dylib
/usr/local/Cellar/ruby@2.3/2.3.8_1/lib/pkgconfig/ruby-2.3.pc
/usr/local/Cellar/ruby@2.3/2.3.8_1/lib/ruby/ (1211 files)
/usr/local/Cellar/ruby@2.3/2.3.8_1/lib/ (3 other files)
/usr/local/Cellar/ruby@2.3/2.3.8_1/share/emacs/ (7 files)
/usr/local/Cellar/ruby@2.3/2.3.8_1/share/man/ (4 files)
/usr/local/Cellar/ruby@2.3/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/mysql@5.7/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?

Ответы [ 4 ]

0 голосов
/ 01 апреля 2019

Установите Rbenv и выполните следующие команды в каталоге вашего проекта для установки 2.3.8:

rbenv install 2.3.8
rbenv local 2.3.8
bundle install --path=vendor/cache
0 голосов
/ 30 марта 2019

Как насчет попытки использовать 'rvm'?

rvm install 2.4.2

Эта команда установит другую версию ruby, 2.4.2

И вы можете простоотметьте все версии, которые у вас есть:

rvm list.

. После этого запустите нужную версию, как показано ниже:

rvm <version> или rvm use <version>

Надеюсь, это поможет вам!

0 голосов
/ 30 марта 2019

Я не предлагаю использовать RVM вместо RBEnv.RBEnv - это одно из самых современных решений, и большинство людей придерживаются его.

Можете ли вы попробовать запустить gem update --system, чтобы сначала обновить ваш упаковщик.

0 голосов
/ 30 марта 2019

Как была установлена ​​ваша версия пакета? Я бы попытался просто переустановить его, теперь установлена ​​нужная вам версия ruby.

...