安装
Capistrano 作为 Ruby Gem 捆绑在一起。它需要 Ruby 2.0 或更高版本。
Capistrano 可以作为独立的 Gem 安装,也可以捆绑到您的应用程序中。
建议在使用 Capistrano 时修复版本号,因此建议使用合适的捆绑器。
一般用法
以下命令将安装最新的发布的 capistrano v3
版本
$ gem install capistrano
或者从以下位置获取最新版本
$ git clone https://github.com/capistrano/capistrano.git
$ cd capistrano
$ gem build *.gemspec
$ gem install *.gem
在 Rails 项目中的用法
在 Gemfile 中添加以下行
group :development do
gem "capistrano", "~> 3.10", require: false
gem "capistrano-rails", "~> 1.3", require: false
end
capistrano-rails
gem 包含专门为 Ruby on Rails 设计的额外功能,特别是
- 资产管道支持
- 数据库迁移支持
这些组件的文档可以在 它们,各自,README 中找到。但是,在大多数情况下,为了获得最佳和最合理的结果,只需在 Capfile 中,在 require 'capistrano/deploy'
行之后添加 require
。
require 'capistrano/rails'
SSH
Capistrano 使用 SSH 进行部署。因此,您必须能够从部署系统使用 SSH(理想情况下使用密钥和 ssh-agent)连接到目标系统,才能使 Capistrano 正常工作。
您可以使用 ssh 客户端测试这一点,例如 ssh myuser@destinationserver
。如果您根本无法连接,您可能需要设置 SSH 服务器或解决防火墙/网络问题。查找教程(以下是一些针对 Ubuntu 和 RedHat/CentOS 的建议)。
如果您在登录时被要求输入密码,您可能需要设置 SSH 密钥。GitHub 提供了关于创建这些密钥的 优秀教程(按照步骤 1 到 3 操作)。您需要将您的公钥添加到目标服务器上的 ~/.ssh/authorized_keys
中,作为部署用户(在新行上追加)。
有关 SSH 和登录的更多信息,请参阅指南的 身份验证和授权 部分。
如果您仍然无法成功登录,请尝试使用 Capistrano SSH Doctor 插件。
救命!我一直在使用 Capistrano v2.x
,我不想升级!
如果您正在使用 Capistrano v2.x.x
,并且错误地安装了 Capistrano v3
,那么您可以将 Capistrano 的 Gem 版本锁定在类似以下的值上:
gem 'capistrano', '~> 2.15' # Or whatever patch release you are using
这是 悲观运算符,它会安装最匹配的版本,在撰写本文时,它会安装 2.15.4
,以及 2.15.x
系列中的任何其他点版本,而不会意外升级到 v3
。