2012-10-18 8 views
0

Ruby/RVM (및 기타)을 내 서버에 설치하여 Rails 프로젝트를 배치 할 수있는 환경을 얻는 스크립트가 있습니다. 이 스크립트는 루비에 있으며 net-ssh 라이브러리를 사용하여 작업을 수행합니다. RVM, 루비를 설치 한 후net-ssh를 통해 서버에 RVM 환경을 만드는 방법은 무엇입니까?

, 나는 프로젝트 Gemset를 만들 싶습니다

connection do |conn| 
    logger("Create RVM environment #{ruby_version}@#{project_name}") 
    conn.exec!("#{rvmsudo_path} #{rvm_path} gemset create #{project_name}") 
end 

을 내가, 내 gemset이 아래에 생성 얻을 수있는 모든 좋은 :

/usr/지방/RVM/gems/[email protected]_project_name 여기

내 카피 스트라 노는 RVM/루비에 대한 설정입니다 :

,691 내가 카피 스트라 노를 사용하여 배포하기 위해 노력하고있어
set :rvm_type, :system 
set :rvm_ruby_string, ENV['GEM_HOME'].gsub(/.*\//,"") 

, 내가 얻을 :

/usr/local/rvm/environments/[email protected]_project_name : 권한

거부

'[email protected]_project_name'환경 파일이 실제로 해당 폴더에 없습니다. 서버에 로그인하고 내 프로젝트를 탐색해야 .rvmrc 파일이 환경 생성을 트리거합니다 (rvm --create my_project_name). 이 마지막 단계를 피하고 싶습니다. 이 환경을 만드는 방법을 알고 있습니까? (필자는 Gemset을 만든 때 나는 그것을 만들 것입니다하지만)

답변

0

는 기본적으로 RVM 환경 원격 스크립트를 할 수 있도록로드해야합니다. https://rvm.io/workflow/scripting/

당신은 그렇게 할 순-ssh를 사용하여 다음 명령을 실행할 수 있습니다

conn.exec!("source "/usr/local/rvm/scripts/rvm; rvm --create [email protected]_project_name") 

그것은 환경과 관련된 gemset을 생성합니다.

+0

RVM을 사용자로 설치 한 경우'/ usr/local/rvm/scripts/rvm'을'$ HOME/.rvm/scripts/rvm'으로 바꾸는 것이 좋습니다 (권장). –

0

RVM 당신이 그것을 이용해야한다, 루비를 설치하고 gemsets을 생성, 카피 스트라 노를 통해 자체를 설치하기위한 지원이 있습니다

+0

네, 알지만, 프로젝트를 수행하기 전에 여객과 다른 것들을 설치하기 위해 RVM을 설치해야하므로이 기능이 유용하지 않습니다. –

+0

capistrano를 통해 승객을 설치할 수없는 이유는 무엇입니까? – mpapis

관련 문제