2014-08-29 2 views
1

Я развертываю проект рельсов на производственном сервере. Существует только 1,9,3 версия рубина (я разработал на 2.1.2), поэтому проблем с совместимостью в версиях драгоценных камней мало. Более того, я загрузил одну из драгоценных камней в vendor/gem_name и сделал необходимые исправления в своих источниках, поэтому мне нужно точно использовать мою версию этого драгоценного камня, и, как вы понимаете, его невозможно обновить.Сделать рубиновый скрипт использовать локальные драгоценные камни, вместо обычных

в Gemfile

require 'gem_name', :path => 'vendor/gem_name' 

Таким образом, после клонирования проекта на сервер я бег

bundle install --path vendor/bundle 

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

После этого я попытался запустить скрипт выборки для заполнения БД с некоторыми данными по команде

ruby *_fetch.rb 

внутри * _fetch.rb:

require 'gem_name' 

И с ошибкой

Вы уже активировали gem_name old_version, но для вашего Gemfile требуется gem_name новейшая_версия. Использование bundle exec может решить эту проблему. (Gem :: LoadError) из /usr/local/rvm/gems/ruby-1.9.3-p374/gems/bundler-1.3.5/lib/bundler/runtime.rb:19:in `setup '

Так как я могу указать сценарий, чтобы потребовать отредактированный локальный камень?

ответ

2

Запустить его с помощью bundle exec Это именно то, что bundle exec для.

+0

Я уже пробовал это. 'bundle exec data_fetch.rb': bundler: команда не найдена: zpinfo_fetch.rb Установить отсутствующие исполняемые файлы gem с 'bundle install' Запуск установки пакета завершен с помощью« Ваш комплект завершен! Он был установлен в ./vendor/bundle ' – Hroft

+1

Вы попробовали 'bundle exec ruby ​​data_fetch.rb'? –

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