0

我正在使用 capistrano、unicorn、rbenv、nginx、linode、ubuntu 12.04 部署我的第一个 Rails 应用程序。当我跑

bin/cap 部署:冷

在我的应用程序根目录中,我收到以下错误:

  * 2012-10-31 01:19:36 executing `bundle:install'
  * executing "cd /home/mr_deployer/apps/prjct_mngr/releases/20121031001933 && bundle install --gemfile /home/mr_deployer/apps/prjct_mngr/releases/20121031001933/Gemfile --path /home/mr_deployer/apps/prjct_mngr/shared/bundle --deployment --quiet --without development test"
    servers: ["xxxxxxxxxxxxx"]
    [xxxxxxxxxxxxx] executing command
 ** [out :: xxxxxxxxxxxxx] Could not find rake-0.9.2.2 in any of the sources
 ** [out :: xxxxxxxxxxxxx] Run `bundle install` to install missing gems.
    command finished in 1046ms
*** [deploy:update_code] rolling back
  * executing "rm -rf /home/mr_deployer/apps/prjct_mngr/releases/20121031001933; true"
    servers: ["xxxxxxxxxxxxx"]
    [xxxxxxxxxxxxx] executing command
    command finished in 625ms
failed: "sh -c 'cd /home/mr_deployer/apps/prjct_mngr/releases/20121031001933 && bundle install --gemfile /home/mr_deployer/apps/prjct_mngr/releases/20121031001933/Gemfile --path /home/mr_deployer/apps/prjct_mngr/shared/bundle --deployment --quiet --without development test'" on xxxxxxxxxxxxx

我已经在我的开发机器上运行了 bundle install --path vendor/bundle,并且 gem rake 安装在开发机器和 linode vps 上。为什么找不到rake?

更新:

我尝试将 linode 上的 rake gem 的路径添加到 linode 上的 bashrc 和 deploy.rb 文件中的 :default_envoronment 。仍然得到同样的错误......

4

3 回答 3

0

Capistrano 尝试cd /home/mr_deployer/apps/prjct_mngr/releases/20121031001933 && bundle install --gemfile /home/mr_deployer/apps/prjct_mngr/releases/20121031001933/Gemfile --path /home/mr_deployer/apps/prjct_mngr/shared/bundle --deployment --quiet --without development test在您的服务部署到的远程计算机上运行命令。

看起来远程节点没有rake安装bundle尝试使用。

也许您应该检查所有必要的 gem 是否安装在远程机器上。

于 2012-10-31T16:17:06.923 回答
0

此错误并不表示您要部署到的计算机上未安装 rake。此错误意味着 Bundler 在尝试安装您的 gem 时,无法在您的 Gemfile 中列出的源中找到 Rake 版本 0.9.2.2。您的 Gemfile 是否包含类似的行source "http://rubygems.org"

于 2012-10-31T16:50:50.097 回答
0

尝试在 capistrano receipe 中指定您的路径,例如:

default_environment["PATH"] = "/usr/local/bin:/usr/bin:/usr/local/rvm/bin/:/var/lib/gems/1.9.1/bin"

如果您不知道您的路径如何,请通过 ssh 连接到您的服务器并运行命令

echo $PATH
于 2012-10-31T00:40:06.770 回答