Если Bundler устанавливает драгоценные камни по нестандартному пути, как мне получить доступ к этим драгоценным камням и любым бинарным файлам, с которыми они идут? - PullRequest
2 голосов
/ 02 марта 2011

Я развертываю приложение Rails 3 с использованием Capistrano.У меня запущен RVM на удаленном сервере (а также локально), и Bundler управляет всеми моими драгоценными камнями.Вот проблема:

При развертывании Capistrano запускает следующую команду:

bundle install --gemfile /var/www/releases/20110301225633/Gemfile --path /var/www/shared/bundle --deployment --quiet --without development test

Итак, все мои драгоценные камни находятся в /var/www/shared/bundle, хорошо.Но это означает, что в системном пути не установлены никакие самоцветы (т. Е. Выполнение gem list ничего не возвращает), поэтому я не могу использовать никакие файлы bin, которые могут поставляться с этими самоцветами, включая саму команду rails.Единственный способ запустить веб-сервер (тонкий) - это вручную gem install thin.Как только тонкие катушки запускаются, он прекрасно запускает Rails, включая все необходимые гемы.

Итак, как мне получить доступ к этим драгоценным камням вне моего работающего приложения?Я знаю, что мне не нужно ничего устанавливать вручную, чтобы заставить это работать, но я не знаю, что мне не хватает.Я попытался запустить rvm-shell '1.9.2@mygemset' -c 'thin start', но я получаю ту же ошибку, что и попытка вызова thin start непосредственно из командной строки: bash: thin: command not found Даже если перейти прямо в каталог bin пакета /var/www/shared/bundle/bundle/ruby/1.9.1/bin, чтобы начать с нуля, я получаю ту же ошибку.

Я чувствую, что RVM должен позаботиться об этом для меня ... может быть, я пропускаю переменную окружения?

Спасибо за любую помощь!

Ответы [ 2 ]

5 голосов
/ 02 марта 2011

Идея связывания заключается в том, что он будет устанавливать локальные копии драгоценных камней, необходимых вашему проекту, без влияния на общесистемные гемы.

Если вы хотите получить полный доступ к чему-то за пределами вашего приложения rails, вам нужно gem install вручную.

Однако, если вы хотите запустить bin-файл для драгоценного камня в вашем проекте (например, ваш Gemfile содержит gem "thin" в нем, и вы хотите иметь возможность запустить thin start для этого проекта), вы можно использовать bundle exec, и он будет работать в комплекте версии:

bundle exec thin start
0 голосов
/ 02 марта 2011

Я предпочитаю использовать:

bundle install --path binpaths
...