mra*_*teb 7 ruby bundle ruby-on-rails bundler rbenv
在我正在使用的本地计算机上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
Run Code Online (Sandbox Code Playgroud)
问题是,当我运行 rbenv 版本时,我得到了正确的版本(2.5.5):
system
* 2.5.5 (set by /Users/Mahmoud/dev-reps/non-docker/normal/.ruby-version)
Run Code Online (Sandbox Code Playgroud)
当我运行时which ruby,它正确指向 rbenv:
/Users/Mahmoud/.rbenv/shims/ruby
Run Code Online (Sandbox Code Playgroud)
甚至ruby -v给出了正确的版本:
ruby 2.5.5p157 (2019-03-15 revision 67260) [x86_64-darwin21]
Run Code Online (Sandbox Code Playgroud)
所以可以推测,2.5.5 是我拥有的唯一版本。除此之外,我尝试了与捆绑器相关的所有常见技巧:
bundle uninstall,gem uninstall bundler -v 1.17.2
但似乎没有任何作用。
我认为另一个“有趣”的事实给出了提示:which bundle给出:
/usr/local/bin/bundle
Run Code Online (Sandbox Code Playgroud)
我的问题是这个 2.6.8 来自哪里?我该如何解决这个问题并启动服务器?
mra*_*teb 24
终于成功了。
因此,问题和解决方案的关键在于which bundle:
/usr/local/bin/bundle
Run Code Online (Sandbox Code Playgroud)
而红宝石给出了:
/Users/Mahmoud/.rbenv/shims/ruby
Run Code Online (Sandbox Code Playgroud)
表明该包没有使用 rbenv 中的 ruby。
我已经设置了路径~/.bash_profile:
export PATH="$HOME/.rbenv/shims:$PATH"
eval "$(rbenv init -)"
Run Code Online (Sandbox Code Playgroud)
但显然这还不够,因为我正在使用 zsh。还必须添加相同的两行~/.zshrc并重新启动终端。现在捆绑安装正在按预期工作。
更新后~/.zshrc which bundle给出:
/Users/Mahmoud/.rbenv/shims/bundle
Run Code Online (Sandbox Code Playgroud)
表明问题只是bundle 使用了错误的ruby。
因此,如果您遇到此问题,只需添加上面指出的两行即可确保路径正确~/.bash_profile。~/.zshrc重新启动终端并检查它现在是否工作。
| 归档时间: |
|
| 查看次数: |
25164 次 |
| 最近记录: |