2009-10-20 34 views
1

我在Windows上遇到Vlad問題。調用rake vlad:deploy後,我得到以下幾點: uninitialized constant Fcntl::F_SETFD在窗戶上用Vlad實現Ruby on rails部署

Google上搜尋了一段時間後,我想通了,有一個與OPEN4寶石的問題,不適合用於Windows和我應該使用popen4寶石來代替。 我安裝了它,但沒有任何改變。

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

+0

這是一個錯誤。看到這裏:http://rubyforge.org/tracker/?group_id = 4213&atid = 16258&func = detail&aid = 26816 – andHapp 2009-10-25 15:39:23

+0

此錯誤與JRuby有關。我沒有使用JRuby。 – 2009-10-28 08:57:57

回答

1

弗拉德Capistrano的不用於的Microsoft Windows系統。即使您設法使其在Windows下運行,您也會發現新的限制。這些工具對於自動化SCM/SSH/SFTP任務剛剛好包裝(任務)。我知道Capistrano的使用XCOPY.EXE遠程部署的文件,但它豈不等於那樣強大rsync的SCP

如果您仍然感興趣,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的潛力,因爲它有輕微的支持。

1

我還沒有處理它。一些可能會幫助你解決問題的資源。

open4將無法在Windows上工作 - 它是一個Unix只有庫。對於 Windows有popen4。

popen4窗戶

它做同樣的事情......但適用於Windows。需要預先警告的是,在Windows平臺上, 可能會在完整管道上阻塞程序。

Discussions here

希望這有助於!

0

我能夠得到capistrano作爲一個服務運行在一個windows 2008 r2框中運行Cygwin's sshd,但不是vlad的remote_task。我想知道是否可以移植remote_task來代替使用Ruby的Net :: SSH?

我沒有能夠做的就是窗戶,讓我通過公共密鑰而不是密碼驗證...