1

我在 Windows 上遇到 Vlad 问题。打电话后rake vlad:deploy我得到以下信息: uninitialized constant Fcntl::F_SETFD

谷歌搜索了一段时间后,我发现 open4 gem 存在不适合 Windows 的问题,我应该改用 popen4 gem。我安装了它,但没有任何改变。

如何强制 vlad 使用 popen4 而不是 open4?

4

3 回答 3

1

我还没有研究它。一些可以帮助您解决问题的资源。

open4 不能在 Windows 上运行——它是一个仅适用于 Unix 的库。对于 Windows,有 popen4。

popen4 for windows

它做同样的事情......但对于 Windows。请注意,在 Windows 平台上,很有可能在一个完整的管道上阻塞程序。

讨论在这里

希望这可以帮助 !

于 2009-10-28T10:25:38.313 回答
1

VladCapistrano不适用于Microsoft Windows系统。即使你设法让它在Windows下运行,你也会发现新的限制。这些工具只是用于自动化SCM / SSH / SFTP任务的很好的包装器( rake任务) 。我知道Capistrano使用xcopy.exe远程部署文件,但它不如rsyncscp强大。

如果您仍然感兴趣,open4依赖项在源代码上是硬编码的,使其运行的唯一方法是破解代码。

http://hitsquad.rubyforge.org/svn/vlad/2.0.0/lib/rake_remote_task.rb

...
require 'open4'
...
##
# Rake::RemoteTask is a subclass of Rake::Task that adds
# remote_actions that execute in parallel on multiple hosts via ssh.

class Rake::RemoteTask < Rake::Task

  @@current_roles = []

  include Open4
...

By the way, using Capistrano will simplify you life but as advertised do not expect to take full Capistrano potential as it has minor support.

于 2009-11-03T12:04:47.017 回答
0

I was able to get capistrano working against a windows 2008 r2 box running Cygwin's sshd as a service, but not vlad's remote_task. I wonder if remote_task can be ported to use Ruby's Net::SSH instead?

What I haven't been able to do is get windows to allow me to authenticate via public keys instead of passwords...

于 2010-10-15T11:01:08.627 回答