执行Rails Scaffold命令时遇LoadError错误求助
问题描述
执行rails g scaffold task message:string命令时触发如下错误:
<internal:/Users/rosali/.rvm/rubies/ruby-3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:37:in `require': dlopen(/Users/rosali/.rvm/gems/ruby-3.0.0/gems/puma-5.6.6/lib/puma/puma_http11.bundle, 0x0009): symbol not found in flat namespace '_SSL_get1_peer_certificate' - /Users/rosali/.rvm/gems/ruby-3.0.0/gems/puma-5.6.6/lib/puma/puma_http11.bundle (LoadError) from <internal:/Users/rosali/.rvm/rubies/ruby-3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:37:in `require' from /Users/rosali/.rvm/gems/ruby-3.0.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require' from /Users/rosali/.rvm/gems/ruby-3.0.0/gems/puma-5.6.6/lib/puma.rb:14:in `<main>' from <internal:/Users/rosali/.rvm/rubies/ruby-3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:37:in `require' from <internal:/Users/rosali/.rvm/rubies/ruby-3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:37:in `require' from /Users/rosali/.rvm/gems/ruby-3.0.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require' from /Users/rosali/.rvm/rubies/ruby-3.0.0/lib/ruby/site_ruby/3.0.0/bundler/runtime.rb:60:in `block (2 levels) in require' from /Users/rosali/.rvm/rubies/ruby-3.0.0/lib/ruby/site_ruby/3.0.0/bundler/runtime.rb:55:in `each' from /Users/rosali/.rvm/rubies/ruby-3.0.0/lib/ruby/site_ruby/3.0.0/bundler/runtime.rb:55:in `block in require' from /Users/rosali/.rvm/rubies/ruby-3.0.0/lib/ruby/site_ruby/3.0.0/bundler/runtime.rb:44:in `each' from /Users/rosali/.rvm/rubies/ruby-3.0.0/lib/ruby/site_ruby/3.0.0/bundler/runtime.rb:44:in `require' from /Users/rosali/.rvm/rubies/ruby-3.0.0/lib/ruby/site_ruby/3.0.0/bundler.rb:187:in `require' from /Users/rosali/pprojects/react-projects/todo-list-api/config/application.rb:7:in `<main>' from <internal:/Users/rosali/.rvm/rubies/ruby-3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:37:in `require' from <internal:/Users/rosali/.rvm/rubies/ruby-3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:37:in `require' from /Users/rosali/.rvm/gems/ruby-3.0.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require' from /Users/rosali/.rvm/gems/ruby-3.0.0/gems/railties-7.0.6/lib/rails/command/actions.rb:22:in `require_application!' from /Users/rosali/.rvm/gems/ruby-3.0.0/gems/railties-7.0.6/lib/rails/command/actions.rb:14:in `require_application_and_environment!' from /Users/rosali/.rvm/gems/ruby-3.0.0/gems/railties-7.0.6/lib/rails/commands/generate/generate_command.rb:21:in `perform' from /Users/rosali/.rvm/gems/ruby-3.0.0/gems/thor-1.2.2/lib/thor/command.rb:27:in `run' from /Users/rosali/.rvm/gems/ruby-3.0.0/gems/thor-1.2.2/lib/thor/invocation.rb:127:in `invoke_command' from /Users/rosali/.rvm/gems/ruby-3.0.0/gems/thor-1.2.2/lib/thor.rb:392:in `dispatch' from /Users/rosali/.rvm/gems/ruby-3.0.0/gems/railties-7.0.6/lib/rails/command/base.rb:87:in `perform' from /Users/rosali/.rvm/gems/ruby-3.0.0/gems/railties-7.0.6/lib/rails/command.rb:48:in `invoke' from /Users/rosali/.rvm/gems/ruby-3.0.0/gems/railties-7.0.6/lib/rails/commands.rb:18:in `<main>' from <internal:/Users/rosali/.rvm/rubies/ruby-3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:37:in `require' from <internal:/Users/rosali/.rvm/rubies/ruby-3.0.0/lib/ruby/site_ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:37:in `require' from /Users/rosali/.rvm/gems/ruby-3.0.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require' from bin/rails:4:in `<main>'
已尝试bundle update --bundler和gem update --system命令,问题未解决。
解决方案
该错误源于Puma编译时链接的SSL库版本不兼容,重新编译Puma即可修复:
- 卸载当前版本的Puma:
gem uninstall puma -v 5.6.6 - 重新安装Puma并指定兼容的OpenSSL路径(基于Homebrew安装的OpenSSL):
gem install puma -v 5.6.6 -- --with-openssl-dir=$(brew --prefix openssl) - 回到项目目录,重新安装依赖:
bundle install
如果上述方法无效,可尝试重新安装Ruby版本(确保Ruby与SSL库兼容):
rvm reinstall ruby-3.0.0 --with-openssl-dir=$(brew --prefix openssl) bundle install
内容的提问来源于stack exchange,提问作者Rosa Li
相关产品推荐
相关产品推荐

