Я хочу поработать над существующим драгоценным камнем, который я извлек из репозитория git. Я использую чистую установку Ruby. Для начала я хотел бы установить зависимости, указанные в файле gemspec, чтобы я мог собрать и протестировать драгоценный камень. Я не использую для этого упаковщик.
В настоящее время я устанавливаю драгоценные камни вручную, читая спецификацию драгоценных камней и вызывая «gem». Я хотел бы сделать что-то вроде:
git clone my_gem
cd my_gem
gem magically-install-dependencies my_gem.gemspec
и установить все зависимости среды выполнения и разработки, как если бы я установил это из файла .gem. Есть ли способ сделать это?
Я просмотрел документацию gem
и, похоже, нет ничего, что работало бы с драгоценными файлами, кроме build
.
🤔 А знаете ли вы, что...
Ruby был создан в Японии Юкихиро Мацумото и впервые выпущен в 1995 году.
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.
Таким образом, вы не будете строго зависеть от сборщика, но все равно сможете использовать предоставляемые им автоматические средства.