我已经调试了大约一周,但没有任何进展,所以我想我应该把它带到这里。我已经为此进行了研究并盯着其他 StackOverflow 解决方案几个小时,但没有取得任何进展。目前在 ruby 2.6.5 上运行 puma-dev。每当我运行
puma-dev
时,这就是我收到的错误消息。 (出于安全原因更改项目名称和其他一些名称):
* Directory for apps: /Users/(myname)/.puma-dev
* Domains: test
* DNS Server port: 9253
* HTTP Server port: 9280
* HTTPS Server port: 9283
! Puma dev running...
! Booting app 'docugenerator-02fe76f7' on socket /Users/(myname)/.puma-dev/docugen/tmp/puma-dev-3410.sock
docugenerator-02fe76f7[3421]: sh: no job control in this shell
docugenerator-02fe76f7[3421]: Puma starting in single mode...
docugenerator-02fe76f7[3421]: * Version 4.3.8 (ruby 2.6.3-p62), codename: Mysterious Traveller
docugenerator-02fe76f7[3421]: * Min threads: 0, max threads: 5
docugenerator-02fe76f7[3421]: * Environment: development
docugenerator-02fe76f7[3421]: ! Unable to load application: Bundler::RubyVersionMismatch: Your Ruby version is 2.6.3, but your Gemfile specified 2.6.5
docugenerator-02fe76f7[3421]: /Library/Ruby/Gems/2.6.0/gems/bundler-2.1.4/lib/bundler/definition.rb:495:in `validate_ruby!': Your Ruby version is 2.6.3, but your Gemfile specified 2.6.5 (Bundler::RubyVersionMismatch)
到目前为止我尝试过的事情是:
.env
和 .powenv
rbenv global
更改为 2.6.5到目前为止,我没有取得任何进展,每次重新加载页面或重新启动 puma-dev 服务器时都会出现错误。如有任何提示或帮助,我们将不胜感激。
puma 似乎运行在错误的 ruby 版本中。 rbenv 通过多种方式确定要使用的 ruby 版本(请参阅: https://github.com/rbenv/rbenv#choosing-the-ruby-version ),并且您需要确保 rbenv 尝试使用的 ruby 版本的顺序确定是正确的。最直接的方法是在您的项目中创建一个
.ruby-version
。
.ruby 版本
2.6.5
您的 ruby 版本之间不匹配。
将 gem 文件从
ruby '2.6.5'
更新为 ruby '2.6.3'
。
你需要确保使用rbenv或rvm(我使用的)来安装2.6.3版本,你可以使用rvm install 2.6.3
。
此外,正确的捆绑程序版本必须是
2.1.4
- gem install bundler -v '2.1.4'
。您需要通过运行 bundle update --ruby
来更新 Gemfile.lock。
完成后,重新启动 puma 并再次检查。
在终端上验证 ruby 版本 -
ruby -v
应显示为 Ruby 2.6.3
让我知道这是否有效。