我正在嘗試在我正在開發的Rails應用上爲Capistrano 3編寫以下代碼。我收到的錯誤是粘貼在帖子標題上的消息。未定義的方法'執行'爲主:對象
196 namespace :swconfig do
197 desc "Install Bazaar xmllog plugin."
198 task :install_bzr_xmllog do
199 puts "Installing Bazaar xmllog..."
200 execute "rm -rf /home/deployer/.bazaar/plugins/xmloutput"
201 execute "mkdir -p /home/deployer/.bazaar/plugins && cd /home/deployer/.bazaar /plugins && bzr branch lp:~amujumdar/bzr-xmloutput/emit_authors xmloutput"
202 end
203
204 desc "Upgrade rack"
205 task :upgrade_rack do
206 puts "Upgrading rack to 1.5.2"
207 execute "gem install rack -v1.5.2"
208 end
209
210 end
我讀過的有關研究,從2 Capistrano的升級,從它的官方網站,和堆棧溢出量充足,Capistrano的一般,但我不知道是什麼問題。
由於語法來自Capistrano 2,'execute'關鍵字先前被標記爲'run',當然這給了我主錯誤Undefined method'run'的錯誤。但是,將運行代入執行並不能解決錯誤。我也嘗試了這種執行語法的變體。
196 namespace :swconfig do
197 desc "Install Bazaar xmllog plugin."
198 task :install_bzr_xmllog do
199 puts "Installing Bazaar xmllog..."
200 execute :rm, " -rf /home/deployer/.bazaar/plugins/xmloutput"
這仍然會產生相同的錯誤。根據Capistrano的官方網站Capistrano,正確的語法應該是上面的變體。但是,在我發現的這篇文章中,Writing Capistrano Tasks,執行語法不是以符號格式編寫的。
最後,因爲找到標準的,一致的,可靠的Capistrano語法是如此的考驗,我已經用盡了選擇/線索來嘗試解決這個問題。有沒有人有任何想法可能是什麼問題?謝謝你的幫助。
Derp。我發現我的錯誤。舊的語法沒有在任務中指定roles關鍵字。 – 2014-08-30 17:56:19