저는 Capistrano의 새로운 사용자이고 레일즈 3.1 앱을 배포하는 데 사용합니다. 원격 서버에 보석 설치에 문제가있는 것 같습니다. 나는 다음과 같은 질문이레일, 새로운 우분투 설치, 카피 스트라 노, rvm 문제
: 그것은이 뚜껑처럼 보이는
는 번들이
gemfile
에 설치 실행? 이 작업에 대한 종속성이 있습니까? 내 서버에rvm
및bundler
이 있습니다. 이미 설치된 레일이 필요합니까? 내가 수동처럼 내
:
이 정확해야을?set :bundle_cmd, '/usr/local/rvm/gems/ruby-1.9.2-p290/bin/bundle'
모자가 필요한 모든 보석이 있다는 것을 확인하는 방법이 있습니까? 또는 원격 서버에서 실패한 번들 설치를 디버그하는 가장 좋은 방법은 무엇입니까?
cap gem-list
과 같은 것을 부를 수 있습니까?cap invoke=gem list
같은 것을 원했지만 그렇게 보이지 않았습니다.
deploy.rb
에서
bundle_cmd
설정 한
편집 # 1
나는 다음과 같은 오류를 받고 있어요 : 실패 : "rvm_path =/usr/지방/RVM/usr/지방/RVM/빈/RVM-쉘 '기본 '-c'cd/data/sites/myserver/apps/myapp/releases/20111204181321& & 번들 설치 --gemfile/data/sites/myserver/apps/myapp/releases/20111204181321/Gemfile --path/data/sites/myserver/apps/myapp/shared/bundle --deployment --quiet - 개발 테스트없이 '173.230.xxx.xxx에
만약 내가 이전 릴리스로 이동하여 번들 설치를 실행하면 설치되지 않은 모든 것이 올바르게 설치되었다고합니다.
Your bundle is complete! It was installed into /data/sites/myserver/apps/myapp/shared/bundle
을하지만 난 거기에 가면, 루비 1.9.1 내가 설치하지 않은 내 지식의 최선 (사용 루비 이외의 아무것도 없다 1.9.2- :
이 말한다 p290)
배치 된 릴리스를 삭제하지 않도록 지정하여 명시 적으로 디버깅 할 수있는 방법이 있습니까? 내 deploy.rb 스크립트에서 내 bundler 경로를 하드 코딩해야합니까?
내가에서 현재 릴리스로 갈 경우은 들으 다시
편집 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'(로컬)을 시도한 다음 capistrano 쉘에서'rvm current'와'which bundle'을 실행할 수 있습니까? Capistrano 셸은 뚜껑이 보이는 환경에서 작업 할 수있는 기회를 제공합니다. – HectorMalot