当我运行时,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 中匹配它。但是,每当我运行bundle
或bundle 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/
干杯