我是一个新用户Capistrano的,并使用它来部署一个导轨3.1的应用程序。在远程服务器上安装gem似乎存在问题。轨道,新的Ubuntu安装,Capistrano的,RVM发出
我有以下问题:
它看起来像帽运行捆绑安装在
gemfile
?是否有任何依赖关系为此成功工作?我的服务器上有rvm
和bundler
。它是否需要安装导轨?我已经手动设置我的
deploy.rb
这样的bundle_cmd
:set :bundle_cmd, '/usr/local/rvm/gems/ruby-1.9.2-p290/bin/bundle'
如果这是正确的吗?
有没有办法有一个上限部署确认所有所需的宝石有哪些?或者在远程服务器上调试失败的软件包安装的最佳方式是什么?你可以打电话给
cap gem-list
;希望能像cap invoke=gem list
这样做,但看起来不像。
编辑#1
,我发现了以下错误: 失败:“rvm_path =在/ usr /本地/ RVM在/ usr /本地/ RVM /斌/ RVM壳“默认'-c' CD /数据/网站/ MYSERVER /应用/ MYAPP /发行/ 20111204181321& &捆绑安装--gemfile /数据/网站/ MYSERVER /应用/ MYAPP /发行/ 20111204181321/Gemfile中--path /数据/网站/ MYSERVER /应用/ MyApp的/共享/捆--deployment --quiet --without开发测试上173.230.xxx.xxx
“”如果我进入以前的版本,并运行捆绑安装,它说,一切安装正确,它没有。
它说:
Your bundle is complete! It was installed into /data/sites/myserver/apps/myapp/shared/bundle
但如果我在那里去,没有什么其他比1.9.1这就给我所知,我没有安装(使用Ruby 1.9.2- P290)
是否有capistrono的方式来指定它不删除已部署的版本,这样我可以调试明确?我需要在我的deploy.rb脚本中硬编码到我的捆绑器的路径?
THX再次
EDIT 2 如果我进入当前版本为:
/data/sites/myserver/apps/myapp/current
并运行:
$ which bundle
/usr/local/rvm/gems/ruby-1.9.2-p290/bin//bundle
我得到:
$ bundle install
/usr/local/rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find bundler (>= 0) amongst [minitest-1.6.0,rake-0.8.7, rdoc-2.5.8] (Gem::LoadError)
from /usr/local/rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec'
from /usr/local/rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems.rb:1210:in `gem'
from /usr/local/rvm/gems/ruby-1.9.2-p290/bin/bundle:18:in `<main>'
你可以试试'cap shell'(local),然后在capistrano shell中运行'rvm current'和'which bundle'吗? Capistrano外壳为您提供了一个机会,可以在帽子看到它时从环境中工作。 – HectorMalot