2009-09-22 14 views
4

進出口使用寶石的思維獅身人面像在思考獅身人面像的任務:我如何包括Capistrano的使用寶石

sudo gem install freelancing-god-thinking-sphinx \ 
    --source http://gems.github.com 

所以:

require 'vendor/plugins/thinking-sphinx/recipes/thinking_sphinx' 

哪個prescribed on the website不起作用。

如何在使用gem時在我的deploy.rb文件中包含capistrano思維獅身人面像任務?

編輯

添加:require 'thinking_sphinx/deploy/capistrano'

給我:

 
/usr/lib/ruby/gems/1.8/gems/freelancing-god-thinking-sphinx-1.1.12/lib/thinking_sphinx/deploy/capistrano.rb:1: undefined method `namespace' for main:Object (NoMethodError) 
     from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require' 
     from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `require' 
     from /usr/lib/ruby/gems/1.8/gems/capistrano-2.5.8/lib/capistrano/configuration/loading.rb:152:in `require' 

+0

寶石或插件? – khelll 2009-09-22 05:21:16

回答

5

在另一個答案 - thinking_sphinx/deploy/capistrano中定義的簡單需求應該有效。如果不是,你是否看到任何錯誤?你使用的是什麼版本的寶石?

如果失敗了,可以嘗試一下sudo gem update以防寶石老化。

+0

帕特,非常感謝您花時間回答,我仍然得到一個錯誤(使用上限2.5.8和獅身人面像1.1.12)我把我的答案 – 2009-09-22 09:09:34

+0

完整日誌OK,* sudo gem update * fixed whatever我有一團糟。感謝您的幫助和令人敬畏的圖書館。 (我希望你不介意我編輯了你的答案) – 2009-09-22 09:21:45

+0

一點都不,只要你得到它的工作:) 我不認爲帽任務是在1.1.12有(可能是,這已經過去了幾個月),所以這幾乎肯定是原因。 – pat 2009-09-23 13:32:14

0

如何:

require 'vendor/plugins/thinking_sphinx/lib/thinking_sphinx/deploy/capistrano' 
1

你在談論安裝一個寶石,然後要求插入。你有沒有試過安裝Thinking Sphinx的插件版本?

編輯:我說話太快,清楚。部署食譜在 lib/thinking_sphinx/deploy/capistrano。嘗試 require 'thinking_sphinx/deploy/capistrano',你應該可以訪問部署食譜 - 在一個測試項目中,我只是把它扔到我的Rakefile中,並且可以訪問它們。

在一個全新的項目,我把我的Capfile如下:

load 'deploy' if respond_to?(:namespace) # cap2 differentiator 
Dir['vendor/plugins/*/recipes/*.rb'].each { |plugin| load(plugin) } 
load 'config/deploy' 
require 'thinking_sphinx/deploy/capistrano' 

當我做帽-T,我看到了thinking_sphinx Capistrano的任務。我想我上面寫的是因爲我安裝了插件。 /我打自己。

+0

是的,失敗 – 2009-09-22 05:31:23

+0

嗯,我會仔細檢查,看看我是否做了不同的事情。 – theIV 2009-09-22 05:33:26

+0

好吧,sudo gem更新固定了我所有的混亂 – 2009-09-22 09:18:54

3

@Khelll:你能讀懂這個話題嗎?您正在粘貼使用TS作爲插件的代碼。

至於寶石,你應該使用:

require 'thinking_sphinx/deploy/capistrano' 

完美的作品。

還應該更改網站上提到的Capistrano的任務,以反映之前和Capistrano的回調後的新來擺脫掉了棄用通知:

before "deploy:update_code", "thinking_sphinx:stop" 
after "deploy:symlink", "symlink_sphinx_indexes" 
after "deploy:symlink", "thinking_sphinx:configure" 
after "deploy:symlink", "thinking_sphinx:start" 
+0

這正是我所尋找的,但有一個例外:我需要在「deploy:symlink」後面將最後3行(在'deploy:update_code'之後)更改爲''。否則,current_path仍然指向舊的目錄。 – carpeliam 2011-04-26 06:04:59