capistrano2.0基本使用步骤是:
1.install capistrano
   gem install capistrano  
2.进入rails工程根目录执行   
   capify .  
  这个命令会生成两个文件,一个是Capfile文件,在应用的根目录下,另一个是deploy.rb文件,在应用的config目录下
  可以用cap -T 查看所有task, cap -e deploy 解释deploy任务的详情  。
3.修改config/deploy.rb文件 
 set :application, "dcrm2"
set :application, "dcrm2"  
 set :repository,  "svn://10.200.106.168/crm2/trunk"
set :repository,  "svn://10.200.106.168/crm2/trunk"  
 set :svn_username, "username"
set :svn_username, "username" 
 set :svn_password, "password"
 set :svn_password, "password"  
 set :use_sudo,false
set :use_sudo,false  
 set :deploy_to, "/usr/local/apache22/htdocs/#{application}"
set :deploy_to, "/usr/local/apache22/htdocs/#{application}"  
 set :user, "username"
set :user, "username"  
 set :password, "password"
set :password, "password"  
 depend :local, :command, "convert"
depend :local, :command, "convert"  
 depend :remote, :command, "iconv"
depend :remote, :command, "iconv"  
 # If you aren't using Subversion to manage your source code, specify
# If you aren't using Subversion to manage your source code, specify  
 # your SCM below:
# your SCM below:  
 # set :scm, :subversion
# set :scm, :subversion  
 role :app, "www.derbysoft.com"
role :app, "www.derbysoft.com"  
 role :web, "www.derbysoft.com"
role :web, "www.derbysoft.com"  
 role :db,  "www.derbysoft.com", :primary => true
role :db,  "www.derbysoft.com", :primary => true  
 task :create_file_link, :roles => :web do
task :create_file_link, :roles => :web do   
 run "ln -s #{deploy_to}/shared/files/ #{deploy_to}/current/public/files"
  run "ln -s #{deploy_to}/shared/files/ #{deploy_to}/current/public/files"   
 end
end  
 task :chmod, :roles => :web do
task :chmod, :roles => :web do  
 run "chmod -fR 755 #{deploy_to}/current/script/*"
  run "chmod -fR 755 #{deploy_to}/current/script/*"  
 end
end  
 after "deploy:symlink", :chmod, :create_file_link
after "deploy:symlink", :chmod, :create_file_link  
其中
application:Rails应用名
repository:版本管理系统(默认svn)的链接URL
svn_username:svn用户名
svn_password:svn密码
把use_sudo设为false是不用sudo
deploy_to:应用部署的路径
user:ssh用户名
password:ssh用户名
depend:检查某些依赖
app:应用服务器列表
web:web服务器名列表
db:数据库服务器列表
create_file_link和chmod是自己定义的task,我在这里定义create_file_link是建一个link而使public文件夹下的files目录不受版本控制的影响,因为files目录下是用户自己上传的一些东西,不方便放在版本控制里面。定义chmod是为了改变服务器上某些文件的权限,主要是为了给script目录下的文件加上可执行权限,要不然默认是不可执行的。这两个task会在deploy:symlink任务执行完毕之后执行(执行cap deploy命令时会先执行一些任务,依赖的其中最后一个task是deploy:symlink)
4.创建spin文件
在应用的script文件夹下创建一个spin文件(没有后缀名)
如果用Mongrel方式启动应用,内容大概是这样子的:
/usr/local/apache22/htdocs/dcrm2/current/script/process/spawner -p 3000 -i 1  
用cap deploy命令部署应用时,会调用spin文件启动/重启服务
5.初始化服务器上的运行环境   
    cap deploy:setup  
   这一步会连上服务器,创建一些目录:
  
  
  
 
  
  
releases目录里面会存放所有的发布版本
shared目录是为了共享文件,比如log文件,还可以自己定义共享的文件,比如我前面定义了一个files共享文件夹
在第一此部署后还会产生一个current链接,它会自动指向releases目录里面最新的版本
6.deploy
  执行cap deploy命令,部署完成(貌似第一次要先执行cap deploy:start,要不重启服务会失败)。 
  如果部署的时候要迁移数据,执行cap deploy:migrations完成迁移和部署