2013-09-04 1 views
0

상자에서 실행중인 응용 프로그램이 있는데 상자에 다른 응용 프로그램을 추가하려고합니다.배포 도중 묶음이 제대로 설치되지 않음 (RVM 문제 일까?)

둘 다 RVM을 사용합니다.

문제는 내가 상자에 추가 한 새 응용 프로그램에 대한 배포 프로세스가 실패한다는 것입니다. 배포 할 때

, 나는 내가 사용 루비 무엇을보고

RVM info 

를 호출합니다.

ruby-1.9.3-p392: 

    system: 
    uname:  "Linux li83-41 2.6.39.1-linode34 #1 SMP Tue Jun 21 10:29:24 EDT 2011 i686 GNU/Linux" 
    system:  "ubuntu/10.04/i386" 
    bash:  "/bin/bash => GNU bash, version 4.1.5(1)-release (i486-pc-linux-gnu)" 
    zsh:   " => not installed" 

    rvm: 
    version:  "rvm 1.22.3 (master) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/]" 
    updated:  "4 days 21 hours 14 minutes 38 seconds ago" 
    path:   "/usr/local/rvm" 

    ruby: 
    interpreter: "ruby" 
    version:  "1.9.3p392" 
    date:   "2013-02-22" 
    platform:  "i686-linux" 
    patchlevel: "2013-02-22 revision 39386" 
    full_version: "ruby 1.9.3p392 (2013-02-22 revision 39386) [i686-linux]" 

    homes: 
    gem:   "/usr/local/rvm/gems/ruby-1.9.3-p392" 
    ruby:   "/usr/local/rvm/rubies/ruby-1.9.3-p392" 

    binaries: 
    ruby:   "/usr/local/rvm/rubies/ruby-1.9.3-p392/bin/ruby" 
    irb:   "/usr/local/rvm/rubies/ruby-1.9.3-p392/bin/irb" 
    gem:   "/usr/local/rvm/rubies/ruby-1.9.3-p392/bin/gem" 
    rake:   "/usr/local/rvm/gems/ruby-1.9.3-p392/bin/rake" 

    environment: 
    PATH:   "/usr/local/rvm/gems/ruby-1.9.3-p392/bin:/usr/local/rvm/gems/[email protected]/bin:/usr/local/rvm/rubies/ruby-1.9.3-p392/bin:/usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" 
    GEM_HOME:  "/usr/local/rvm/gems/ruby-1.9.3-p392" 
    GEM_PATH:  "/usr/local/rvm/gems/ruby-1.9.3-p392:/usr/local/rvm/gems/[email protected]" 
    MY_RUBY_HOME: "/usr/local/rvm/rubies/ruby-1.9.3-p392" 
    IRBRC:  "/usr/local/rvm/rubies/ruby-1.9.3-p392/.irbrc" 
    RUBYOPT:  "" 
    gemset:  "" 

내가 들러를 사용하고, 배포하는 동안 실패 : 내가 여기서 끝나지 기지에있어

Fetching gem metadata from https://rubygems.org/......... 
Fetching gem metadata from https://rubygems.org/.. 
Installing rake (10.1.0) 
Installing i18n (0.6.5) 
Installing minitest (4.7.5) 
Installing multi_json (1.7.9) 
Installing atomic (1.1.13) 
Installing thread_safe (0.1.2) 
Installing tzinfo (0.3.37) 
Installing activesupport (4.0.0) 
Gem::InstallError: activesupport requires Ruby version >= 1.9.3. 
An error occurred while installing activesupport (4.0.0), and Bundler cannot 
continue. 
Make sure that `gem install activesupport -v '4.0.0'` succeeds before bundling. 
rake aborted! 

:

cd #{current_path} && bundle install --deployment 

이 오류를 던지고 여기에 출력처럼 보이는 나는 ruby1.9.3-p392를 사용하고 있지만 bundler는 ruby> = 1.9.3이 필요하다고 말하고있다. 나는 상자에 ssh를하면 내가 올바른 루비 사용하고 있습니다 것 같습니다, 또한

--- 
BUNDLE_PATH: vendor/bundle 
BUNDLE_DISABLE_SHARED_GEMS: '1' 
BUNDLE_FROZEN: '1' 

:

$ which ruby 
/usr/local/rvm/rubies/ruby-1.9.3-p392/bin/ruby 

그리고 실행 번들이 좋은 작품을 설치를 여기에

내 .bundle/설정입니다 .

아이디어가 있으십니까?

편집 # 내가 블라드을 사용하고 1

, 여기 deploy.rb입니다 :

그것은 RVM의 잘못이 아닙니다
set :repository, repo_location 
set :revisions, 5 
set :revision, "HEAD" 
set :domain, domain 
set :user,  login_user 
set :deploy_to, deploy_dir 
set :deploy_env, "production" 

namespace :vlad do 

    desc 'Restart Passenger' 
    remote_task :restart_app do 
    puts "Restarting passenger..." 
    run "touch #{current_release}/tmp/restart.txt" 
    end 

    desc 'Runs our full deployment' 
    task :deploy => ['vlad:update', 
        'vlad:symlink', 
        'vlad:rvm_info', 
        'vlad:update_bundle', 
        'vlad:migrate_database', 
        'vlad:cleanup', 
        'vlad:restart_app'] 

    desc 'Symlinks your custom directories' 
    remote_task :symlink do 
    run "ln -s #{shared_path}/environments #{latest_release}/config/environments" 
    run "ln -s #{shared_path}/database.yml #{current_path}/config/database.yml" 
    run "ln -s #{shared_path}/config.yml #{current_path}/config/config.yml" 
    end 

    desc 'Show RVM Info for debug purposes' 
    remote_task :rvm_info do 
    run "cd #{current_path} && rvm info" 
    end 

    desc 'Update the Bundler bundle we use to include any new gems in the Gemfile' 
    remote_task :update_bundle do 
    run "cd #{current_path} && bundle install --deployment" 
    end 

    # copied from the vlad source, integrate migrate does not work as it's missing 
    # the && between the cd and the db migrate task itself. bug is already tracked 
    # at http://rubyforge.org/tracker/?group_id=4213&atid=16258&func=detail&aid=28445, 
    # but currently does not do anything. 
    remote_task :migrate, :roles => :app do 
    break unless target_host == Rake::RemoteTask.hosts_for(:app).first 

    directory = case migrate_target.to_sym 
       when :current then current_path 
       when :latest then latest_release 
       else raise(ArgumentError, "unknown migration target #{migrate_target.inspect}") 
       end 

    run(["cd #{directory}", 
     "bundle exeC#{rake_cmd} db:migrate #{migrate_args} RAILS_ENV=#{rails_env}"].join(" && ")) 
    end 

end 
+0

카피스트라노를 사용하고 있습니까? 그렇다면 capfile을 보여주십시오 – fotanus

+0

저는 Vlad를 사용하고 있습니다 - deploy.rb로 질문을 업데이트했습니다. – kareem

답변

0

... 이것은 당신이 당신의 명령을 실행하는 방법에 문제가있다,

set :command_prefix, [". `/usr/local/rvm/bin/rvm . do rvm env --path`"] 

을 나는 방법이 없습니다 :이 ssh 이루어집니다처럼 vlad 그래서 당신은 수동으로 RVM을로드 할 필요가 로그인 세션을 사용하지 않습니다 테스트 - 블라드 코드 기반 -하지만 이것은 좋은 출발이 될 것입니다.

관련 문제