2009-09-22 42 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