Установка зависимостей из файла gemspec

Я хочу поработать над существующим драгоценным камнем, который я извлек из репозитория git. Я использую чистую установку Ruby. Для начала я хотел бы установить зависимости, указанные в файле gemspec, чтобы я мог собрать и протестировать драгоценный камень. Я не использую для этого упаковщик.

В настоящее время я устанавливаю драгоценные камни вручную, читая спецификацию драгоценных камней и вызывая «gem». Я хотел бы сделать что-то вроде:

git clone my_gem
cd my_gem
gem magically-install-dependencies my_gem.gemspec

и установить все зависимости среды выполнения и разработки, как если бы я установил это из файла .gem. Есть ли способ сделать это?

Я просмотрел документацию gem и, похоже, нет ничего, что работало бы с драгоценными файлами, кроме build.

🤔 А знаете ли вы, что...
Ruby был создан в Японии Юкихиро Мацумото и впервые выпущен в 1995 году.


1
57
1

Ответ:

Решено

Rubygems включил в себя сборщик, так что разница между обоими инструментами теперь стирается. Тем не менее, вы можете установить драгоценные камни из файла gemspec, используя всего лишь gem install. Эта команда поддерживает дополнительный флаг -g, в котором вы можете указать файл API зависимостей драгоценного камня. В документации об этом флаге говорится следующее:

RubyGems может устанавливать согласованный набор драгоценных камней на несколько среды, использующие gem install -g, когда файл зависимостей драгоценного камня (gem.deps.rb, Gemfile или Isolate) присутствует. Если явный файл не указан учитывая, что RubyGems пытается найти его в текущем каталоге.

Когда переменная среды RUBYGEMS_GEMDEPS установлена ​​на драгоценный камень файл зависимостей, драгоценные камни из этого файла будут активированы при запуске время. Установите для него определенное имя файла или «-», чтобы иметь RubyGems. автоматически обнаружить файл зависимостей драгоценного камня, подойдя от текущий каталог.

ПРИМЕЧАНИЕ. Включение автоматического обнаружения в многопользовательских системах может привести к выполнение произвольного кода при использовании из каталогов вне вашего контроль.

Теперь самый простой способ создать такой файл зависимостей драгоценного камня — это создать простой Gemfile со следующим дословным содержимым в том же каталоге, что и файл спецификации драгоценного камня:

source 'https://rubygems.org'
gemspec

Этот файл инструктирует gem install -g (а также bundle install) получить файл gemspec из текущего каталога и использовать указанные там зависимости для установки.

Если хотите, можете использовать упаковщик. В этом случае нет необходимости фиксировать или сохранять Gemfile.lock, если вы всегда хотите устанавливать новейшие доступные версии Gem.

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