Я пытаюсь установить Bundler на свой VPS с помощью Ansible.
У меня уже настроен rbenv, а глобальный рубин - 2.1.0.
Если я использую SSH как root на сервере и запускаю gem install bundler
, он устанавливается отлично.
Я пробовал следующие три способа использования Ansible для установки гема Bundler, и все три не вызывают ошибок, но когда я использую SSH и запускаю gem list
, Bundler нигде не видно.
Попытка 1:
---
- name: Install Bundler
shell: gem install bundler
Попытка 2:
---
- name: Install Bundler
shell: gem install bundler
Попытка 3:
---
- name: Install Bundler
gem: name=bundler
state=latest
Я также пробовал последнюю попытку с user_install=yes
, а также с user_install=no
, и это не имеет никакого значения.
Есть идеи, как я могу заставить его правильно установить Bundler через Ansible?
Я работаю над этим некоторое время, и у меня установлена 1 версия ruby: 2.1.0, и я обнаружил, что каталог прокладок для rbenv не содержит прокладок для bundle
.
Должна ли быть там прокладка для bundle
? Я просто не понимаю, почему capistrano не может найти команду bundle
в том виде, в каком она указана, когда я запускаю sudo gem list
, но НЕ при запуске gem list
?
root@weepingangel:/usr/local/rbenv/shims# echo $PATH
/usr/local/rbenv/shims:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
root@weepingangel:/usr/local/rbenv/shims# gem environment
RubyGems Environment:
- RUBYGEMS VERSION: 2.2.0
- RUBY VERSION: 2.1.0 (2013-12-25 patchlevel 0) [x86_64-linux]
- INSTALLATION DIRECTORY: /usr/local/rbenv/versions/2.1.0/lib/ruby/gems/2.1.0
- RUBY EXECUTABLE: /usr/local/rbenv/versions/2.1.0/bin/ruby
- EXECUTABLE DIRECTORY: /usr/local/rbenv/versions/2.1.0/bin
- SPEC CACHE DIRECTORY: /root/.gem/specs
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /usr/local/rbenv/versions/2.1.0/lib/ruby/gems/2.1.0
- /root/.gem/ruby/2.1.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- :sources => ["http://gems.rubyforge.org", "http://gems.github.com"]
- "gem" => "--no-ri --no-rdoc"
- REMOTE SOURCES:
- http://gems.rubyforge.org
- http://gems.github.com
- SHELL PATH:
- /usr/local/rbenv/versions/2.1.0/bin
- /usr/local/rbenv/libexec
- /usr/local/rbenv/shims
- /usr/local/sbin
- /usr/local/bin
- /usr/sbin
- /usr/bin
- /sbin
- /bin
- /usr/games
Любые идеи?
Итак, я думаю, что у меня есть две основные проблемы:
Почему сборщик отображается только при запуске
sudo gem list
?Мое развертывание говорит:
INFO [18d5838c] Running /usr/bin/env bundle install --binstubs /var/rails_apps/neiltonge/shared/bin --path /var/rails_apps/neiltonge/shared/bundle --without development test --deployment --quiet on 188.226.159.96 DEBUG [18d5838c] Command: cd /var/rails_apps/neiltonge/releases/20140301205432 && ( PATH=$PATH /usr/bin/env bundle install --binstubs /var/rails_apps/neiltonge/shared/bin --path /var/rails_apps/neiltonge/shared/bundle --without development test --deployment --quiet ) DEBUG [18d5838c] /usr/bin/env: bundle: No such file or directory
а это мой
$PATH
:/usr/local/rbenv/shims:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Почему не удается найти связку?
gem list
не показывает Bundler, аsudo gem list
показывает! Почему это и где должен быть драгоценный камень, чтобы Капистрано мог его использовать? - person rctneil   schedule 01.03.2014