修复你的 Ruby 版本是 2.6.8,但是你的 gemfile 指定了 2.5.5
Fix Your Ruby version is 2.6.8, but your gemfile specified 2.5.5
在我的本地机器上,我正在使用 rbenv
当我 运行 bundle install
我得到:
The git source `git://github.com/sinatra/sinatra.git` uses the `git` protocol, which transmits data without encryption. Disable this warning with `bundle config git.allow_insecure true`, or switch to the `https` protocol to keep your data secure.
Warning: the running version of Bundler (1.17.2) is older than the version that created the lockfile (1.17.3). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.
Following files may not be writable, so sudo is needed:
/Library/Ruby/Gems/2.6.0
/Library/Ruby/Gems/2.6.0/build_info
/Library/Ruby/Gems/2.6.0/cache
/Library/Ruby/Gems/2.6.0/doc
/Library/Ruby/Gems/2.6.0/extensions
/Library/Ruby/Gems/2.6.0/gems
/Library/Ruby/Gems/2.6.0/specifications
Your Ruby version is 2.6.8, but your Gemfile specified 2.5.5
问题是,当我 运行 rbenv 版本时,我得到正确的版本 (2.5.5):
system
* 2.5.5 (set by /Users/Mahmoud/dev-reps/non-docker/normal/.ruby-version)
当我 运行 which ruby
时,它正确地指向 rbenv:
/Users/Mahmoud/.rbenv/shims/ruby
甚至 ruby -v
给出了正确的版本:
ruby 2.5.5p157 (2019-03-15 revision 67260) [x86_64-darwin21]
据推测,2.5.5 是我拥有的唯一版本。
除此之外,我尝试了所有与捆绑器相关的常用技巧:
bundle uninstall
,gem uninstall bundler -v 1.17.2
但似乎没有任何效果。
另一个我认为给出提示的“有趣”事实:which bundle
给出:
/usr/local/bin/bundle
我的问题是这个 2.6.8 是从哪里来的?我该如何解决这个问题并启动服务器?
终于成功了。
所以问题和解决方案的关键在于 which bundle
给出了:
/usr/local/bin/bundle
而 ruby 给出了:
/Users/Mahmoud/.rbenv/shims/ruby
表明该包未使用来自 rbenv 的 ruby。
我已经在~/.bash_profile
中设置了路径:
export PATH="$HOME/.rbenv/shims:$PATH"
eval "$(rbenv init -)"
但显然这还不够,因为我使用的是 zsh。还必须将那些相同的 2 行添加到 ~/.zshrc
并重新启动终端。现在 bundle install 正在按预期工作。
更新后 ~/.zshrc
which bundle
给出:
/Users/Mahmoud/.rbenv/shims/bundle
表明问题只是捆绑使用了错误的 ruby。
因此,如果您遇到此问题,只需通过添加上面指示的两行来确保 ~/.bash_profile
和 ~/.zshrc
具有正确的路径。重新启动终端并检查它现在是否工作。
在我的本地机器上,我正在使用 rbenv
当我 运行 bundle install
我得到:
The git source `git://github.com/sinatra/sinatra.git` uses the `git` protocol, which transmits data without encryption. Disable this warning with `bundle config git.allow_insecure true`, or switch to the `https` protocol to keep your data secure.
Warning: the running version of Bundler (1.17.2) is older than the version that created the lockfile (1.17.3). We suggest you upgrade to the latest version of Bundler by running `gem install bundler`.
Following files may not be writable, so sudo is needed:
/Library/Ruby/Gems/2.6.0
/Library/Ruby/Gems/2.6.0/build_info
/Library/Ruby/Gems/2.6.0/cache
/Library/Ruby/Gems/2.6.0/doc
/Library/Ruby/Gems/2.6.0/extensions
/Library/Ruby/Gems/2.6.0/gems
/Library/Ruby/Gems/2.6.0/specifications
Your Ruby version is 2.6.8, but your Gemfile specified 2.5.5
问题是,当我 运行 rbenv 版本时,我得到正确的版本 (2.5.5):
system
* 2.5.5 (set by /Users/Mahmoud/dev-reps/non-docker/normal/.ruby-version)
当我 运行 which ruby
时,它正确地指向 rbenv:
/Users/Mahmoud/.rbenv/shims/ruby
甚至 ruby -v
给出了正确的版本:
ruby 2.5.5p157 (2019-03-15 revision 67260) [x86_64-darwin21]
据推测,2.5.5 是我拥有的唯一版本。 除此之外,我尝试了所有与捆绑器相关的常用技巧:
bundle uninstall
,gem uninstall bundler -v 1.17.2
但似乎没有任何效果。
另一个我认为给出提示的“有趣”事实:which bundle
给出:
/usr/local/bin/bundle
我的问题是这个 2.6.8 是从哪里来的?我该如何解决这个问题并启动服务器?
终于成功了。
所以问题和解决方案的关键在于 which bundle
给出了:
/usr/local/bin/bundle
而 ruby 给出了:
/Users/Mahmoud/.rbenv/shims/ruby
表明该包未使用来自 rbenv 的 ruby。
我已经在~/.bash_profile
中设置了路径:
export PATH="$HOME/.rbenv/shims:$PATH"
eval "$(rbenv init -)"
但显然这还不够,因为我使用的是 zsh。还必须将那些相同的 2 行添加到 ~/.zshrc
并重新启动终端。现在 bundle install 正在按预期工作。
更新后 ~/.zshrc
which bundle
给出:
/Users/Mahmoud/.rbenv/shims/bundle
表明问题只是捆绑使用了错误的 ruby。
因此,如果您遇到此问题,只需通过添加上面指示的两行来确保 ~/.bash_profile
和 ~/.zshrc
具有正确的路径。重新启动终端并检查它现在是否工作。