mina-deploy / mina

Blazing fast deployer and server automation tool
https://rubygems.org/gems/mina
Other
4.35k stars 491 forks source link

Mina 1.0.6, on windows, fork() function is unimplemented on this machine #534

Closed insub closed 2 years ago

insub commented 7 years ago

On my windows, setup mina version = 1.0.6 when i run "mina deploy", still have error: fork() function is unimplemented on this machine

ruby 2.3 rails 5.0.0.1

More info: mina deploy -t : Invoke deploy (first_time) Execute deploy Invoke environment (first_time) Execute environment Invoke git:clone (first_time) Execute git:clone Invoke deploy:link_shared_paths (first_time) Execute deploy:link_shared_paths Invoke bundle:install (first_time) Execute bundle:install Invoke rails:db_migrate (first_time) Execute rails:db_migrate Invoke rails:assets_precompile (first_time) Execute rails:assets_precompile Invoke deploy:cleanup (first_time) Execute deploy:cleanup mina aborted! NotImplementedError: fork() function is unimplemented on this machine D:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/open4-1.3.4/lib/open4.rb:62:in fork' D:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/open4-1.3.4/lib/open4.rb:62:indo_popen' D:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/open4-1.3.4/lib/open4.rb:34:in popen4' D:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/mina-1.0.6/lib/mina/runner/pretty.rb:15:inrun' D:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/mina-1.0.6/lib/mina/runner.rb:14:in run' D:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/mina-1.0.6/lib/mina/commands.rb:49:inblock in run' D:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/mina-1.0.6/lib/mina/helpers/internal.rb:39:in report_time' D:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/mina-1.0.6/lib/mina/commands.rb:48:inrun' D:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/mina-1.0.6/lib/mina/dsl.rb:30:in run' D:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/mina-1.0.6/lib/mina/dsl.rb:49:indeploy' D:/Sites/rongzhi/config/deploy.rb:48:in block in <top (required)>' D:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/rake-11.3.0/lib/rake/task.rb:248:inblock in execute' D:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/rake-11.3.0/lib/rake/task.rb:243:in each' D:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/rake-11.3.0/lib/rake/task.rb:243:inexecute' D:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/rake-11.3.0/lib/rake/task.rb:187:in block in invoke_with_call_ch n' D:/RailsInstaller/Ruby2.3.0/lib/ruby/2.3.0/monitor.rb:214:inmon_synchronize' D:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/rake-11.3.0/lib/rake/task.rb:180:in invoke_with_call_chain' D:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/rake-11.3.0/lib/rake/task.rb:173:ininvoke' D:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/rake-11.3.0/lib/rake/application.rb:152:in invoke_task' D:/RailsInstaller/Ruby2.3.0/lib/ruby/gems/2.3.0/gems/rake-11.3.0/lib/rake/application.rb:108:inblock (2 levels) in t _level'

RedNoo commented 6 years ago

do you have any solution for this problem?

skyway777 commented 6 years ago

You can try to set in config/deploy.rb set :execution_mode, :exec if RbConfig::CONFIG['host_os'] =~ /mswin|mingw/

lovro-bikic commented 2 years ago

This should be fixed with https://github.com/mina-deploy/mina/pull/686, which will be released in 1.3.0. We used to use the open4 gem which calls fork, but it has since been replaced with the Windows-compatible open3.