Ruby 版本和项目不匹配



当我运行时,bundle我看到以下内容:

Your Ruby version is 2.5.0, but your Gemfile specified
2.4.0.pre.dev

我的宝石文件看起来像:

source 'https://rubygems.org'
ruby '2.4.0-dev'
gem 'sinatra', :github => 'sinatra/sinatra'

这是我gem env

$ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 2.6.12
- RUBY VERSION: 2.5.0 (2017-07-31 patchlevel -1) [x86_64-darwin16]
- INSTALLATION DIRECTORY: /Users/johndoe/.rbenv/versions/2.4.0-dev/lib/ruby/gems/2.5.0
- USER INSTALLATION DIRECTORY: /Users/johndoe/.gem/ruby/2.5.0
- RUBY EXECUTABLE: /Users/johndoe/.rbenv/versions/2.4.0-dev/bin/ruby
- EXECUTABLE DIRECTORY: /Users/johndoe/.rbenv/versions/2.4.0-dev/bin
- SPEC CACHE DIRECTORY: /Users/johndoe/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /Users/johndoe/.rbenv/versions/2.4.0-dev/etc
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-16
- GEM PATHS:
- /Users/johndoe/.rbenv/versions/2.4.0-dev/lib/ruby/gems/2.5.0
- /Users/johndoe/.gem/ruby/2.5.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- "gem" => "-n/usr/local/bin"
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /Users/johndoe/.rbenv/versions/2.4.0-dev/bin
- /Users/johndoe/.rbenv/libexec
- /Users/johndoe/.nvm/versions/node/v8.1.4/bin
- /usr/local/sbin
- /Library/Frameworks/Python.framework/Versions/3.4/bin
- /Users/johndoe/.rbenv/shims
- /Users/johndoe/google-cloud-sdk/bin
- /Users/johndoe/Library/Python/2.7/bin
- /Users/johndoe/.rbenv/bin
- /usr/local/bin
- /usr/bin
- /bin
- /usr/sbin
- /sbin

当我输入rbenv verions时,这就是我看到的:

system
2.0.0-p247
2.3.1
* 2.4.0-dev (set by /Users/johndoe/code/projects/blog-server/.ruby-version)

使用 Rbenv,我指定了我想要的 ruby 版本,并在项目的 Gemfile 中匹配它。但是,每当我运行bundlebundle exec gem uninstall sinatra时,我都会看到上述有关我的 ruby 版本和我的 gemfile ruby 版本不匹配的错误消息。我还看到我的 Ruby 版本是 2.5.0,我不知道它是如何设置的。有人可以帮助我解决此错误吗?

Your Ruby version is 2.5.0, but your Gemfile specified
2.4.0.pre.dev

在我的 bash 个人资料中,我有:

export PATH=$HOME/.rbenv/bin:$PATH
....
eval "$(rbenv init -)"

简而言之,我只希望为我的博客项目运行我的 ruby 进程的 shell 使用 ruby 版本2.4.0-dev,我正在努力了解是什么阻止了我以及如何解决它。

更新:

我还注意到了一些奇怪的事情。我的捆绑器版本继续指向 Ruby2.5.0p-1.

## Environment

Bundler   1.15.3
Rubygems  2.6.12
Ruby      2.5.0p-1 (2017-07-31 revision 59454) [x86_64-darwin16]
Git       2.11.0
Platform  x86_64-darwin-16
OpenSSL   OpenSSL 1.0.2k  26 Jan 2017
```
## Gemfile
### Gemfile
```ruby
source 'https://rubygems.org'
ruby '2.4.0-dev'
gem 'sinatra', '2.0.0'
```
### Gemfile.lock
```
<No /Users/johndoe/code/projects/blog-server/Gemfile.lock found>

在项目文件夹中运行:

rbenv local 2.4.0-dev

它应该可以解决问题。您只需要为此特定项目指定本地ruby 版本。您的全局版本设置为2.5.0

我认为,这里最好的选择是安装Ruby版本管理器(rvm(。

RVM通过做你需要的事情来帮助每个Ruby开发人员;根据需要自动管理Ruby版本。

这是链接,希望对您有所帮助;

https://rvm.io/

干杯

相关内容

最新更新