1

Windows で Vlad に問題があります。電話した後、rake vlad:deploy私は以下を取得しています: uninitialized constant Fcntl::F_SETFD

しばらくグーグルで調べたところ、Windows に適していない open4 gem に問題があることがわかりました。代わりに popen4 gem を使用する必要があります。インストールしましたが、何も変わりません。

vlad に open4 の代わりに popen4 を使用させるにはどうすればよいですか?

4

3 に答える 3

1

VladCapistranoは、 Microsoft Windowsシステム向けではありません。Windowsで実行することができたとしても、新しい制限が見つかります。これらのツールは、 SCM / SSH / SFTPタスクを自動化するための素敵なラッパー ( rakeタスク)です。Capistranoxcopy.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
...

ちなみに、Capistranoを使用すると生活が簡素化されますが、宣伝されているように、 Capistranoの可能性を最大限に引き出すことは期待できません。

于 2009-11-03T12:04:47.017 に答える
1

私はそれに取り組んでいません。問題の解決に役立つリソースの一部。

open4 は Windows では動作しません。これは Unix 専用のライブラリです。Windows には popen4 があります。

Windows用のpopen4

同じことを行います...ただし、Windowsの場合です。Windows プラットフォームでは、完全なパイプでプログラムをブロックする可能性が非常に高いことに注意してください。

ディスカッションはこちら

お役に立てれば !

于 2009-10-28T10:25:38.313 に答える
0

Cygwinのsshdをサービスとして実行しているWindows 2008 r2ボックスに対してcapistranoを動作させることができましたが、vladのremote_taskでは動作しませんでした。代わりに Ruby の Net::SSH を使用するように remote_task を移植できるのでしょうか?

私ができなかったことは、パスワードの代わりに公開鍵を介して認証できるようにするためのウィンドウを取得することです...

于 2010-10-15T11:01:08.627 に答える