部署 关于使用 Capistrano 部署 Rails 应用的疑问

jasonliu · 2015年02月12日 · 最后由 t383197087 回复于 2015年12月29日 · 2355 次阅读

最近我在使用 capistrano 3 部署 rails 应用,官方文档和网上的一些教程都有介绍如何在 rails project 中安装 capistrano,但是在 Gemfile 中添加的 gem 包都不一样。

官方文档介绍这样安装:

roup :development do
  gem 'capistrano-rails', '~> 1.1.1'
end

但是有些教程又说可以这样:

group :development do
  gem 'capistrano'
  gem 'capistrano-rails'
end

以我的理解,capistrano-rails 专门针对 rails 应用定制了一些 task,如果我不用这些 task,是不是不需要安装 capistrano-rails 这个 gem?

有的有安装了一些其他的 gem 包:

gem 'capistrano-passenger'
gem 'capistrano-bundler',
gem 'capistrano-rvm', 

生成的 Capfile 又有一些需要 require 的文件

# require 'capistrano/rvm'
# require 'capistrano/rbenv'
# require 'capistrano/chruby'
#require 'capistrano/bundler'
# require 'capistrano/rails/assets'
#require 'capistrano/rails/migrations'
# require 'capistrano/rails'
# require 'capistrano/passenger'

是不是只有安装了相应的 gem 包,才可以 require 对应的文件,去执行其中的 task?

求各位大牛传道授业解惑也!!!

1 楼 已删除

gem 'capistrano-rails' 依赖 gem 'capistrano',所以只写前面那个等同两个都写(除非指定版本)。

其他扩展按需安装。capistrano 3 以后把核心精简了,没有内置 rails 相关任务,要用什么 require 什么。

PS:不知道 capistrano-passenger 做了什么,我以前是自己写重启任务,只是 touch 一下,建议看看每个扩展的具体内容做了什么。

关于 capistrano 和 capistrano-rails 的问题

楼上已经回答了

关于 Gem 包和 Require

是的,只有安装了 Gem 包,才能 require,不然 require 不到的啊

附上现在项目用到的: Gemfile: gem 'capistrano', '~> 3.0.0' gem 'capistrano-bundler', '~> 1.0.0' gem 'capistrano-rvm', '~> 0.0.3' gem 'capistrano-rails', '~> 1.0.0' gem "capistrano-resque", github: "sshingler/capistrano-resque", require: false

Capfile: require 'capistrano/rvm' require 'capistrano/bundler' require 'capistrano/rails/assets' require 'capistrano/rails/migrations' require "capistrano-resque"

简单的项目,用 mina 吧。

#2 楼 @Rei mina 不是很简单吗?为什么现在还那么多人还在用 capistrano?

#6 楼 @jxs471494539 还没用过 mina,可以试一下

Capistrano 能在 windows 上运行吗

需要 登录 后方可回复, 如果你还没有账号请 注册新账号