【问题标题】:How do I use frozen Capistrano?如何使用冷冻 Capistrano?
【发布时间】:2008-12-02 04:43:07
【问题描述】:

背景故事

我在 Rails 2.1 上,需要将 Capistrano gem 冻结到我的供应商文件夹(因为我的主机已经破坏了他们的 cap gem 依赖项,我想让自己尽可能独立)。

在我的本地 Windows 机器上,我将以下内容放在了我的 environment.rb

config.gem "capistrano", :version => "2.5.2"
config.gem "net-ssh", :lib => "net/ssh", :version => "2.0.4"
config.gem "net-scp", :lib => "net/scp", :version => "1.0.1"
config.gem "net-sftp", :lib => "net/sftp", :version => "2.0.1"
config.gem "net-ssh-gateway", :lib => "net/ssh/gateway", :version => "1.0.0"

宝石已经安装,所以我冻结了它们。正在检查...

>rake gems
...
[F] capistrano = 2.5.2
[F] net-ssh = 2.0.4
[F] net-scp = 1.0.1
[F] net-sftp = 2.0.1
[F]net-ssh-gateway = 1.0.0

然后我在本地提交到 SVN 并在 prod Linux 机器上进行更新。

问题

当我尝试运行 Capistrano 的冻结版本时,我收到以下错误。

$ ./vendor/gems/capistrano-2.5.2/bin/cap deploy-with-migrations 
./vendor/gems/capistrano-2.5.2/bin/cap:3:in `require': no such file to load --capistrano/cli (LoadError)
    from ./vendor/gems/capistrano-2.5.2/bin/cap:3

任何想法我做错了什么?

更新

See new related question

【问题讨论】:

    标签: ruby-on-rails ruby rubygems capistrano release-management


    【解决方案1】:

    你没有做错任何事。您看到此问题是因为capistrano/bin/cap 下的cap 文件不打算作为独立运行。如果您尝试从主 gem 文件夹运行它,您将看到相同的结果。 cap 可执行文件(在标准 linux 安装上存储在 /usr/bin/cap)需要 rubygems,注册 capistrano 并 然后 加载 capistrano/bin/cap 文件。

    对此的一种解决方案是将require 'rubygems' 添加到您的 capistrano/bin/cap 文件中:

    #!/usr/bin/env ruby
    require 'rubygems'
    require 'capistrano/cli'
    Capistrano::CLI.execute
    

    如果您不想修改capistrano/bin/cap,您可以在使用 -r 标志运行 ruby​​gems 库时特别包含它。您给定的命令如下所示:

    $ ruby -r rubygems ./vendor/gems/capistrano-2.5.2/bin/cap deploy-with-migrations
    

    【讨论】:

      【解决方案2】:

      使用特定版本的 Capistrano 的另一种方法是,为您的 .bash_login 添加别名,如下所示:

      alias cap1='cap _1.4.2_ '
      

      其中 cap1 是您将运行的命令,1.4.2 是您希望该命令运行的版本,那么您可以:

      cap1 deploy
      

      然后将使用该版本的 capistrano 来部署您的应用程序。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-14
        • 2016-04-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-08
        相关资源
        最近更新 更多