Ruby on rails 为什么我会失败;sh-c';cd/var/www/releases…'&引用;部署Rails应用程序时?
我将部署到Debian6服务器,使用Apache、Passenger和Ruby1.9.1 当我运行“cap部署”或“cap部署:迁移”时,会出现以下错误:Ruby on rails 为什么我会失败;sh-c';cd/var/www/releases…'&引用;部署Rails应用程序时?,ruby-on-rails,ruby,debian,Ruby On Rails,Ruby,Debian,我将部署到Debian6服务器,使用Apache、Passenger和Ruby1.9.1 当我运行“cap部署”或“cap部署:迁移”时,会出现以下错误: [out :: ip.address] Could not find multi_json-1.0.3 in any of the sources ** [out :: ip.address] Run `bundle install` to install missing gems. ** [out :: ip.address]
[out :: ip.address] Could not find multi_json-1.0.3 in any of the sources
** [out :: ip.address] Run `bundle install` to install missing gems.
** [out :: ip.address]
command finished in 1037ms
*** [deploy:update_code] rolling back
* executing "rm -rf /var/www/releases/20111208004427; true"
servers: ["ip.address"]
[ip.address] executing command
command finished in 489ms
failed: "sh -c 'cd /var/www/releases/20111208004427 && /usr/bin/rake1.9.1 RAILS_ENV=production RAILS_GROUPS=assets assets:precompile'" on ip.address
注意运行bundle安装以安装缺少的gems和失败的sh-c…
部分
我已经尝试了这个导出路径=/var/lib/gems/1.9.1/bin:${PATH}
并尝试了许多其他可能的解决方案,但似乎没有任何效果
顺便说一句,没有rvm。请确保您的config/deploy.rb
文件包含Bundler的capistrano任务,如下所示:
require 'bundler/capistrano'
这将告诉它在更新代码之后,但在运行其他任务之前,如rake assets:precompile
运行bundle install
,以供收到相同错误的其他人参考。找到答案:仍然出现此错误:[out::ip.address]sh:bundle:未找到您确实需要登录到服务器并确保在部署之前安装了bundler:。如果您使用的是系统范围的ruby(不是rvm),那么登录到您的服务器并运行“sudo gem install bundler”,那么您的部署应该可以工作。已经尝试过,然后在命令行中运行bundle,但找不到get命令。当我这样做时,export PATH=/var/lib/gems/1.9.1/bin:${PATH}
bundle确实有效。所以我将它添加到部署的用户的.bashrc文件中,并且cap deploy仍然得到“bundle not found error”。部署用户只拥有其主文件和www文件夹的所有权。我开始认为这可能是问题所在,而不是bundler