Я развертываю проект рельсов на производственном сервере. Существует только 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 '
Так как я могу указать сценарий, чтобы потребовать отредактированный локальный камень?
Я уже пробовал это. 'bundle exec data_fetch.rb': bundler: команда не найдена: zpinfo_fetch.rb Установить отсутствующие исполняемые файлы gem с 'bundle install' Запуск установки пакета завершен с помощью« Ваш комплект завершен! Он был установлен в ./vendor/bundle ' – Hroft
Вы попробовали 'bundle exec ruby data_fetch.rb'? –