代码之家  ›  专栏  ›  技术社区  ›  Bogdan Gusiev

Ruby on Rails在Windows上部署VLAD

  •  1
  • Bogdan Gusiev  · 技术社区  · 15 年前

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

    在谷歌搜索了一段时间后,我发现open4 gem有问题,不适合windows,我应该使用popen4 gem。 我安装了它,但什么也没变。

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

    3 回复  |  直到 7 年前
        1
  •  1
  •   knoopx    15 年前

    虚拟局域网 卡皮斯特拉诺 不适用于 微软视窗 系统。即使你设法让它在 窗户 你会发现新的限制。这些工具只是很好的包装纸( 任务)用于自动化 单片机 / / SFTP公司 任务。我知道 卡皮斯特拉诺 使用 XCop.EXE 远程部署文件,但功能不如 远程同步 单链构象多态性 .

    如果你仍然感兴趣, 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
    ...
    

    顺便说一下,使用 卡皮斯特拉诺 将简化你的生活,但正如广告所说,不要期望得到充分的 卡皮斯特拉诺 潜力,因为它有微小的支持。

        2
  •  1
  •   Srinivas M.V.    15 年前

    我还没做过。一些可以帮助您解决问题的资源。

    Open4不能在Windows上工作--它是一个仅限于Unix的库。 窗户有popen4。

    popen4 对于Windows

    它做同样的事…但对于窗户。被预先警告 在全管道上阻塞程序的可能性非常大 Windows平台。

    Discussions here

    希望这有帮助!

        3
  •  0
  •   Peter Mounce    14 年前

    我让Capistrano在运行Windows 2008 R2的机器上工作。 Cygwin's sshd 作为服务,但不是VLAD的远程任务。我想知道远程任务是否可以移植到使用Ruby的net::ssh?

    我做不到的是让Windows允许我通过公钥而不是密码进行身份验证…