安装

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 服务器或解决防火墙/网络问题。查找教程(以下是一些针对 UbuntuRedHat/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

Fork me on GitHub