Bundler не устанавливает из тайника частного репозитория, но сообщает, что делает
-
21-12-2019 - |
Вопрос
Мой файл пакета, похоже, не извлекает драгоценный камень из частного репозитория должным образом.
Внутри моего Gemfile у меня есть:
group :internal do
gem 'private', git: 'ssh://git@internalserver.org:<port>/gems/private.git'
end
Это запускается, и подробное журналирование дает:
Updating ssh://git@internalserver.org:<port>/gems/private.git
Cloning into '/Users/<username>/.rvm/gems/ruby-2.0.0-p247/bundler/gems/private-ddec73caf50f'...
done.
Когда я перехожу к /Users/<username>/.rvm/gems/ruby-2.0.0-p247/bundler/gems/
, я вижу, что правильный репозиторий клонирован правильно, со спецификацией драгоценного камня с правильным именем.
Когда сборщик завершит работу, gem list
не показывает private
драгоценный камень.Когда я пытаюсь это потребовать, выдает ошибку.
Я попробовал удалить файл Gemfile.lock в репозитории и запустить заново, но это не сработало.Все общедоступные драгоценные камни в Gemfile устанавливаются правильно.
Соответствующие номера версий/программного обеспечения:
- Бандлер версии 1.3.5
- рвм 1.23.14
- рубин 2.0.0p247
- Атлассан Тайник
Решение
Git gems — это расширение Rubygems, специфичное для Bundler.А gem
команда не знает о них, поэтому они не указаны в списке gem list
.Вы можете запустить bundle show
чтобы просмотреть список драгоценных камней, распознаваемых Bundler, который будет включать драгоценные камни git.
Чтобы запросить драгоценный камень, вам необходимо убедиться, что Bundler правильно настроил путь загрузки.Есть три способа сделать это:
- Вызов
require 'bundler/setup'
в вашем приложении.Это типично для приложений Rails. ЕщеBundler.setup
- Вызов
bundle exec <command>
для запуска команды.Это чаще встречается при запуске команд из драгоценного камня, напримерrake
илиrspec
. Ещеbundle exec
- Создание заглушек для команд, которые вы часто запускаете.
Видеть http://bundler.io/v1.5/git.html для получения дополнительной информации о драгоценных камнях git.