2013-09-13 4 views
-1

Я использую whiskey_disk для обработки развертываний. Это не проблема whiskey_disk, но то, что она делает, это запустить скрипт post deploy после завершения клонирования из git в целевой каталог проекта. Сценарий я пытаюсь развернуть, чтобы вызвать bundle install и выглядит немного что-то вроде этого:Проблемы с запуском bash с средой RVM

#!/bin/bash 

# Load RVM into a shell session *as a function* 
if [[ -s "$HOME/.rvm/scripts/rvm" ]] ; then 
    source "$HOME/.rvm/scripts/rvm" 
elif [[ -s "/usr/local/rvm/scripts/rvm" ]] ; then 
    source "/usr/local/rvm/scripts/rvm" 
else 
    printf "ERROR: An RVM installation was not found.\n" 
fi 

export PATH=/home/ec2-user/.rvm/gems/ruby-2.0.0-p247/bin:/home/ec2-user/.rvm/gems/[email protected]/bin:/home/ec2-user/.rvm/rubies/ruby-2.0.0-p247/bin:/home/ec2-user/.rvm/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/bin 

echo "["`hostname`"] Installing the bundle..." 
bundle install --binstubs --local --path ../shared/bundle --deployment --without development test console replication|grep -vi using 

Это терпит неудачу, и не в состоянии найти bundle или rake, даже если это явно установка в моем $PATH выше :

/home/ec2-user/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/dependency.rb:296:in `to_specs': Could not find 'bundler' (>= 0) among 90 total gem(s) (Gem::LoadError) 
    from /home/ec2-user/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/dependency.rb:307:in `to_spec' 
    from /home/ec2-user/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_gem.rb:47:in `gem' 
    from /home/ec2-user/.rvm/gems/[email protected]/bin/bundle:22:in `<main>' 
    from /home/ec2-user/.rvm/gems/ruby-2.0.0-p247/bin/ruby_noexec_wrapper:14:in `eval' 
    from /home/ec2-user/.rvm/gems/ruby-2.0.0-p247/bin/ruby_noexec_wrapper:14:in `<main>' 
/home/ec2-user/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/dependency.rb:296:in `to_specs': Could not find 'rake' (>= 0) among 90 total gem(s) (Gem::LoadError) 
    from /home/ec2-user/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/dependency.rb:307:in `to_spec' 
    from /home/ec2-user/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_gem.rb:47:in `gem' 
    from /home/ec2-user/.rvm/gems/[email protected]/bin/rake:22:in `<main>' 
    from /home/ec2-user/.rvm/gems/ruby-2.0.0-p247/bin/ruby_noexec_wrapper:14:in `eval' 
    from /home/ec2-user/.rvm/gems/ruby-2.0.0-p247/bin/ruby_noexec_wrapper:14:in `<main>' 

Думал инициализируется среды выше штрафа в начале сценария и дополнительно установив свой путь, который вы могли видеть видно хорошо с интерактивной оболочки:

[[email protected] ~]$ which bundle 
~/.rvm/gems/[email protected]/bin/bundle 
[[email protected] ~]$ which rake 
~/.rvm/gems/[email protected]/bin/rake 

Любые предложения о том, что еще может быть проблемой?

ответ

2

RVM работает путем изменения 3 переменных окружения (минимального набора), недостаточно изменить только PATH, вам также необходимо будет изменить GEM_HOME и GEM_PATH.

Простейший бы заменить эту строку:

export PATH=... 

с:

rvm use 2.0.0 

затем РВМ выполняет загрузку среды, и все должно работать нормально.

Смежные вопросы