我安装了Capistrano 2,在执行盖帽时遇到了白色问题命令。操作系统为Windows 2012 R2。所以当我跑步时限制>部署,显示的错误是, /usr/share/ruby/2.3.0/fiddle/import.rb:86:in `rescue in block in dlload': can't load user32 (Fiddle::DLError)from /usr/share/ruby/2.3.0/fiddle/import.rb:83:in `block in dlload' from /usr/share/ruby/2.3.0/fiddle/import.rb:74:in `collect' from /usr/share/ruby/2.3.0/fiddle/import.rb:74:in `dlload' from /home/Administrator/.gem/ruby/2.3.0/gems/net-ssh-4.0.1/lib/net/ssh/authentication/pageant.rb:59:in `<module:Win>' from /home/Administrator/.gem/ruby/2.3.0/gems/net-ssh-4.0.1/lib/net/ssh/authentication/pageant.rb:41:in `<module:Pageant>' from /home/Administrator/.gem/ruby/2.3.0/gems/net-ssh-4.0.1/lib/net/ssh/authentication/pageant.rb:33:in `<module:Authentication>' from /home/Administrator/.gem/ruby/2.3.0/gems/net-ssh-4.0.1/lib/net/ssh/authentication/pageant.rb:24:in `<module:SSH>' from /home/Administrator/.gem/ruby/2.3.0/gems/net-ssh-4.0.1/lib/net/ssh/authentication/pageant.rb:24:in `<module:Net>' from /home/Administrator/.gem/ruby/2.3.0/gems/net-ssh-4.0.1/lib/net/ssh/authentication/pageant.rb:24:in `<top (required)>' from /usr/local/share/ruby/site_ruby/rubygems/core_ext/kernel_require.rb:55:in `require' from /usr/local/share/ruby/site_ruby/rubygems/core_ex/kernel_require.rb:55:in `require' from /home/Administrator/.gem/ruby/2.3.0/gems/net-ssh-4.0.1/lib/net/ssh/authentication/agent.rb:9:in `<top (required)>' from /usr/local/share/ruby/site_ruby/rubygems/core_ex/kernel_require.rb:55:in `require' from /usr/local/share/ruby/site_ruby/rubygems/core_ex/kernel_require.rb:55:in `require' from /home/Administrator/.gem/ruby/2.3.0/gems/net-ssh-4.0.1/lib/net/ssh/authentication/key_manager.rb:4:in`<top (required)>' from /usr/local/share/ruby/site_ruby/rubygems/core_ex/kernel_require.rb:55:in `require' from /usr/local/share/ruby/site_ruby/rubygems/core_ext/kernel_require.rb:55:in`require' from /home/Administrator/.gem/ruby/2.3.0/gems/net-ssh-4.0.1/lib/net/ssh/authentication/session.rb:4:in`<top (required)>' from /usr/local/share/ruby/site_ruby/rubygems/core_ext/kernel_require.rb:55:in`require' from /usr/local/share/ruby/site_ruby/rubygems/core_ext/kernel_require.rb:55:in `require' from /home/Administrator/.gem/ruby/2.3.0/gems/net-ssh-4.0.1/lib/net/ssh.rb:12:in`<top (required)>' from /usr/local/share/ruby/site_ruby/rubygems/core_ext/kernel_require.rb:55:in`require' from /usr/local/share/ruby/site_ruby/rubygems/core_ex/kernel_require.rb:55:in `require' from /home/Administrator/.gem/ruby/2.3.0/gems/net-ssh-gateway-2.0.0/lib/net/ssh/gateway.rb:2:in`<top (required)>' from /usr/local/share/ruby/site_ruby/rubygems/core_ex/kernel_require.rb:55:in `require' from /usr/local/share/ruby/site_ruby/rubygems/core_ex/kernel_require.rb:55:in `require' from /home/Administrator/.gem/ruby/2.3.0/gems/capistrano-2.15.9/lib/capistrano/configuration/connections.rb:2:in`<top (required)>' from /usr/local/share/ruby/site_ruby/rubygems/core_ext/kernel_require.rb:55:in`require' from /usr/local/share/ruby/site_ruby/rubygems/core_ext/kernel_require.rb:55:in`require' from /home/Administrator/.gem/ruby/2.3.0/gems/capistrano-2.15.9/lib/capistrano/configuration.rb:5:in`<top (required)>' from /usr/local/share/ruby/site_ruby/rubygems/core_ext/kernel_require.rb:55:in`require' from /usr/local/share/ruby/site_ruby/rubygems/core_ex/kernel_require.rb:55:in `require' from /home/Administrator/.gem/ruby/2.3.0/gems/capistrano-2.15./lib/capistrano.rb:3:in`<top (required)>' from /usr/local/share/ruby/site_ruby/rubygems/core_ex/kernel_require.rb:55:in `require' from /usr/local/share/ruby/site_ruby/rubygems/core_ex/kernel_require.rb:55:in `require' from /home/Administrator/.gem/ruby/2.3.0/gems/capistrano-2.15./lib/capistrano/cli.rb:1:in`<top (required)>' from /usr/local/share/ruby/site_ruby/rubygems/core_ex/kernel_require.rb:55:in `require' from /usr/local/share/ruby/site_ruby/rubygems/core_ex/kernel_require.rb:55:in `require' from /home/Administrator/.gem/ruby/2.3.0/gems/capistrano-2.15.9/bin/cap:3:in `<top (required)>' from /home/Administrator/bin/cap:23:in `load' from /home/Administrator/bin/cap:23:in `<main>'My gem environment info is given below -RubyGems Environment: - RUBYGEMS VERSION: 2.6.12 - RUBY VERSION: 2.3.3 (2016-11-21 patchlevel 222) [x86_64-cygwin] - INSTALLATION DIRECTORY: /home/Administrator/.gem/ruby/2.3.0 - USER INSTALLATION DIRECTORY: /home/Administrator/.gem/ruby/2.3.0 - RUBY EXECUTABLE: /usr/bin/ruby.exe - EXECUTABLE DIRECTORY: /home/Administrator/bin - SPEC CACHE DIRECTORY: /home/Administrator/.gem/specs - SYSTEM CONFIGURATION DIRECTORY: /etc - RUBYGEMS PLATFORMS: - ruby - x86_64-cygwin - GEM PATHS: - /home/Administrator/.gem/ruby/2.3.0 - /usr/share/gems - /usr/local/share/gems - GEM CONFIGURATION: - :update_sources => true - :verbose => true - :backtrace => false - :bulk_threshold => 1000 - REMOTE SOURCES: - https://rubygems.org/ - SHELL PATH: - /usr/local/bin - /usr/bin gem list 是- *本地GEMS * 建造者(3.2.2)Capistrano(2.15.9)capistrano-ext(1.2.1)capistrano_rsync_with_remote_cache(2.4.0)did_you_mean(1.0.2)高线(1.7.8)io控制台(0.4.6)json(1.8.6)最小测试(5.10.1)net-scp(1.2.1)net-sftp(2.1.2)净SSH(4.0.1)net-ssh-gateway(2.0.0)心理(2.2.4)无轨部署(1.1.2) rake (11.3.0)rdoc(4.3.0)请指教。 (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 我知道这是一个古老的问题,但是当我试图找到解决问题的方法时,我偶然发现了这里。这与问题中显示的错误日志相同。至少在Windows下,这似乎是旧 ruby 的普遍问题。我正在运行Cygwin under Windows 7 x64, with RVM and Ruby 2.2.6,是的,我知道它已经很旧了。在用RVM安装Ruby时,我遇到了类似的问题,但是后来我暂时解决了,我认为这只是在制作 ruby 时。但是现在我在做bundle exec cap some_env deploy时遇到了相同的问题,capistrano使用的是net-ssh,并且出现了与问题相同的错误。问题在于Fiddle#dlopen没有尝试使用扩展名.dll。在当前使用Fiddle.dlopen("user32")调用会导致错误的情况下,应该使用Fiddle.dlopen("user32.dll")进行尝试。我在第83行的ruby-2.2.6/lib/ruby/2.2.0/fiddle/import.rb中做了一个解决该问题的hack: begin Fiddle.dlopen(lib) rescue DLError raise(DLError, "can't load #{lib}") end我将其更改为 begin Fiddle.dlopen(lib) rescue DLError if lib.to_s !~ /\.dll/ lib = "#{lib}.dll" retry end raise(DLError, "can't load #{lib}") end而且有效。 (adsbygoogle = window.adsbygoogle || []).push({});