【发布时间】:2020-05-03 14:32:22
【问题描述】:
最近的 OS X Mojave 更新弄乱了我的开发环境。由于与 openssl 冲突,mysql2 gem 停止工作,我的应用程序无法访问数据库。经过一些工作,我让它们运行,除了一个。我从 bundler 收到了这个奇怪的错误:
您必须提供 exec_name (ArgumentError)
Google 搜索不会返回太多。我可以找到它来自的代码行,但我无法确定原因。似乎没有正确传递参数。有没有人遇到过这个错误?你有解决办法吗?
我正在运行 OS X Mojave 10.14.6、brew、apache、rbenv、Phusion Passenger、bundler 2.1.4。我最初使用的是 Ruby 2.5.1 并尝试了 2.5.2,但并没有什么不同。
这是完整的输出:
(set PASSENGER_COMPILE_NATIVE_SUPPORT_BINARY=0 to disable)
Compilation successful. The logs are here:
/var/folders/dz/w4nlmkh15zd2w58p748jqhf40000gn/T/passenger_native_support-15m6n7c.log
[passenger_native_support.bundle] successfully loaded.
Error: The application encountered the following error: you must supply exec_name (ArgumentError)
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/gems/2.5.0/gems/bundler-2.1.4/lib/bundler/rubygems_integration.rb:362:in `block in replace_bin_path'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/gems/2.5.0/gems/bundler-2.1.4/lib/bundler/rubygems_integration.rb:413:in `block in replace_bin_path'
/Users/someuser/Sites/somedomain.localhost/config/initializers/wicked_pdf.rb:38:in `<module:WickedPdfHelper>'
/Users/someuser/Sites/somedomain.localhost/config/initializers/wicked_pdf.rb:26:in `<top (required)>'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.1/lib/active_support/dependencies.rb:285:in `load'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.1/lib/active_support/dependencies.rb:285:in `block in load'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.1/lib/active_support/dependencies.rb:257:in `load_dependency'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.1/lib/active_support/dependencies.rb:285:in `load'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/gems/2.5.0/gems/railties-5.2.4.1/lib/rails/engine.rb:663:in `block in load_config_initializer'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/gems/2.5.0/gems/activesupport-5.2.4.1/lib/active_support/notifications.rb:170:in `instrument'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/gems/2.5.0/gems/railties-5.2.4.1/lib/rails/engine.rb:662:in `load_config_initializer'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/gems/2.5.0/gems/railties-5.2.4.1/lib/rails/engine.rb:620:in `block (2 levels) in <class:Engine>'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/gems/2.5.0/gems/railties-5.2.4.1/lib/rails/engine.rb:619:in `each'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/gems/2.5.0/gems/railties-5.2.4.1/lib/rails/engine.rb:619:in `block in <class:Engine>'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/gems/2.5.0/gems/railties-5.2.4.1/lib/rails/initializable.rb:32:in `instance_exec'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/gems/2.5.0/gems/railties-5.2.4.1/lib/rails/initializable.rb:32:in `run'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/gems/2.5.0/gems/railties-5.2.4.1/lib/rails/initializable.rb:61:in `block in run_initializers'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/2.5.0/tsort.rb:228:in `block in tsort_each'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/2.5.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/2.5.0/tsort.rb:422:in `block (2 levels) in each_strongly_connected_component_from'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/2.5.0/tsort.rb:431:in `each_strongly_connected_component_from'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/2.5.0/tsort.rb:421:in `block in each_strongly_connected_component_from'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/gems/2.5.0/gems/railties-5.2.4.1/lib/rails/initializable.rb:50:in `each'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/gems/2.5.0/gems/railties-5.2.4.1/lib/rails/initializable.rb:50:in `tsort_each_child'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/2.5.0/tsort.rb:415:in `call'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/2.5.0/tsort.rb:415:in `each_strongly_connected_component_from'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/2.5.0/tsort.rb:349:in `block in each_strongly_connected_component'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/2.5.0/tsort.rb:347:in `each'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/2.5.0/tsort.rb:347:in `call'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/2.5.0/tsort.rb:347:in `each_strongly_connected_component'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/2.5.0/tsort.rb:226:in `tsort_each'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/2.5.0/tsort.rb:205:in `tsort_each'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/gems/2.5.0/gems/railties-5.2.4.1/lib/rails/initializable.rb:60:in `run_initializers'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/gems/2.5.0/gems/railties-5.2.4.1/lib/rails/application.rb:361:in `initialize!'
/Users/someuser/Sites/somedomain.localhost/config/environment.rb:5:in `<top (required)>'
config.ru:3:in `require_relative'
config.ru:3:in `block in <main>'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/gems/2.5.0/gems/rack-2.0.8/lib/rack/builder.rb:55:in `instance_eval'
/Users/someuser/.rbenv/versions/2.5.2/lib/ruby/gems/2.5.0/gems/rack-2.0.8/lib/rack/builder.rb:55:in `initialize'
config.ru:1:in `new'
config.ru:1:in `<main>'
/usr/local/Cellar/passenger/6.0.4_2/libexec/src/helper-scripts/rack-preloader.rb:101:in `eval'
/usr/local/Cellar/passenger/6.0.4_2/libexec/src/helper-scripts/rack-preloader.rb:101:in `preload_app'
/usr/local/Cellar/passenger/6.0.4_2/libexec/src/helper-scripts/rack-preloader.rb:189:in `block in <module:App>'
/usr/local/Cellar/passenger/6.0.4_2/libexec/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb:380:in `run_block_and_record_step_progress'
/usr/local/Cellar/passenger/6.0.4_2/libexec/src/helper-scripts/rack-preloader.rb:188:in `<module:App>'
/usr/local/Cellar/passenger/6.0.4_2/libexec/src/helper-scripts/rack-preloader.rb:30:in `<module:PhusionPassenger>'
/usr/local/Cellar/passenger/6.0.4_2/libexec/src/helper-scripts/rack-preloader.rb:29:in `<main>'
宝石环境:
- RUBYGEMS VERSION: 2.7.6
- RUBY VERSION: 2.5.2 (2018-10-18 patchlevel 104) [x86_64-darwin18]
- INSTALLATION DIRECTORY: /Users/someuser/.rbenv/versions/2.5.2/lib/ruby/gems/2.5.0
- USER INSTALLATION DIRECTORY: /Users/someuser/.gem/ruby/2.5.0
- RUBY EXECUTABLE: /Users/someuser/.rbenv/versions/2.5.2/bin/ruby
- EXECUTABLE DIRECTORY: /Users/someuser/.rbenv/versions/2.5.2/bin
- SPEC CACHE DIRECTORY: /Users/someuser/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /Users/someuser/.rbenv/versions/2.5.2/etc
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-18
- GEM PATHS:
- /Users/someuser/.rbenv/versions/2.5.2/lib/ruby/gems/2.5.0
- /Users/someuser/.gem/ruby/2.5.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- "gem" => "--no-rdoc --no-ri"
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /Users/someuser/.rbenv/versions/2.5.2/bin
- /usr/local/Cellar/rbenv/1.1.2/libexec
- /usr/local/sbin
- /Users/someuser/.rbenv/shims
- /usr/local/bin
- /usr/bin
- /bin
- /usr/sbin
- /sbin
有问题的应用程序的 apache v-host 条目:
<VirtualHost *:80>
ServerAdmin here@there.com
ServerName somedomain.localhost
ServerAlias www.somedomain.localhost
DocumentRoot /Users/someuser/Sites/somedomain.localhost/public
PassengerRuby /Users/someuser/.rbenv/shims/ruby
ErrorLog /private/var/log/apache2/error_log
<Directory /Users/someuser/Sites/somedomain.localhost/public>
Options -Multiviews
# ^ for Apache 2.4+
Order allow,deny
Allow from all
#Require all granted
RailsEnv development
</Directory>
</VirtualHost>
<VirtualHost *:443>
ServerAdmin here@there.com
ServerName somedomain.localhost
ServerAlias www.somedomain.localhost
DocumentRoot /Users/someuser/Sites/somedomain.localhost/public
PassengerRuby /Users/someuser/.rbenv/shims/ruby
PassengerAppEnv "development"
PassengerMinInstances 1
ErrorLog /private/var/log/apache2/error_log
<Directory /Users/someuser/Sites/somedomain.localhost>
Options Indexes FollowSymLinks MultiViews
AllowOverride FileInfo Indexes Authconfig
Require all granted
</Directory>
SSLProtocol All -SSLv2 -SSLv3
SSLEngine On
SSLCertificateFile "/private/etc/apache2/ssl/somedomain.localhost/server.crt"
SSLCertificateKeyFile "/private/etc/apache2/ssl/somedomain.localhost/server.key"
</VirtualHost>```
【问题讨论】:
-
这似乎是捆绑程序错误,您的捆绑程序版本是否已更改?我有时会收到 Heroku 的警告,说我的捆绑程序已更新,如果我遇到问题,我应该尝试回到旧版本。还是重新安装 bundler 并重新构建?
-
您的问题必须包含重现问题的步骤。在这种情况下,你是说你从 bundler 中得到了一个给定的错误,但你实际上是如何得到这个错误的呢? bundler 做了很多事情——直到你包括(至少)你输入的实际命令来生成这个错误,我不确定有人能帮助你。
-
我确实尝试了一些不同版本的 Bundler,但我收到了相同的错误消息。 Bundler 2.1.4 可以在我拥有的其他开发计算机上运行,所以我很困惑为什么这台会出现问题。至于复制这个问题,这是一个非常基本的 Rails 应用程序。我已经列出了软件版本,但我认为我的系统有一些特定的东西坏了。为什么一个 Rails 应用程序有效,而另一个无效,这很奇怪。我可能最终会重新安装操作系统并从零开始。这一切都是因为 Mojave 更新而发生的,所以谁知道那做了什么。
-
该问题是由初始化程序中的某些代码引起的。您可以在错误日志中看到几行,其中显示“initializers/wicked_pdf.rb:38”。我为 wicked_pdf gem 重新生成了初始化程序,应用程序开始正常工作。我不知道为什么它不想在这台计算机上运行,因为它运行在另一台具有完全相同的操作系统和应用软件的计算机上。
标签: ruby-on-rails ruby rubygems bundler passenger