Ответы:
Это не является строго ответом на ваш вопрос об установке .gem
пакетов, но вы можете указать все виды местоположений на основе самоцветов, отредактировав свой Gemfile .
:path
атрибута установит гем с этого пути на ваш локальный компьютер.gem "foreman", path: "/Users/pje/my_foreman_fork"
:git
атрибута установит гем из удаленного репозитория git.gem "foreman", git: "git://github.com/pje/foreman.git"
# ...or at a specific SHA-1 ref
gem "foreman", git: "git://github.com/pje/foreman.git", ref: "bf648a070c"
# ...or branch
gem "foreman", git: "git://github.com/pje/foreman.git", branch: "jruby"
# ...or tag
gem "foreman", git: "git://github.com/pje/foreman.git", tag: "v0.45.0"
(Как упомянул @JHurrah в своем комментарии .)
gem "foreman", :git => "https://github.com/pje/foreman.git"
Кажется, упаковщик не может использовать .gem файлы из коробки. Указание: пути к каталогу, содержащему файлы .gem, не работает. Некоторые люди предлагали для этого установить локальный гем-сервер (geminabox, stickler).
Однако я обнаружил, что гораздо проще использовать локальный gem-сервер из файловой системы: просто поместите ваши файлы .gem в локальный каталог, а затем используйте «gem generate_index», чтобы сделать его хранилищем Gem.
mkdir repo
mkdir repo/gems
cp *.gem repo/gems
cd repo
gem generate_index
Наконец, наведите указатель на это местоположение, добавив следующую строку в ваш Gemfile
source "file://path/to/repo"
Если вы обновите драгоценные камни в хранилище, обязательно обновите индекс.
gem server
не хотел размещать весь проект, только файл .gem.
source "file://#{File.expand_path('.')}/chef-11.10.0.dev.2"
Could not fetch specs from file://Users/nakilon/....../
По умолчанию Bundler сначала проверит вашу систему, и если он не сможет найти драгоценный камень, он будет использовать источники, указанные в вашем Gemfile.
Вы можете заставить сборщик использовать развернутые гемы, используя «пакет комплекта» и «комплект комплекта --local»
На вашей машине разработки:
bundle install
(Устанавливает необходимые гемы и делает Gemfile.lock)
bundle package
(Кэширует драгоценные камни в вендоре / кеше)
На сервере:
bundle install --local
(--local означает «использовать драгоценные камни из вендора / кэша»)
bundle install
создайте его, затем скопируйте gem-файл в vendor / cache , добавьте gem обратно в gem-файл и выполните bundle install --local
bundle package
отличное предложение, даже сейчас, три года спустя. Если ваша версия Bundler старше 2.0 (еще не выпущена на момент написания этой статьи), вам нужно будет использовать ее, bundle package --all
если вы хотите включить гемы path
или git
зависимости. Тем не менее, он даст вам полезное напоминание, если обнаружит такие зависимости.
--local
документации: «Обратите внимание, что если на rubygems.org существует соответствующий платформенный гем, он не будет найден».
Добавление .gem
к, vendor/cache
кажется, работает. Никаких вариантов не требуется Gemfile
.
Я нашел, что проще всего запустить свой собственный гем-сервер, используя geminabox
Смотрите эти простые инструкции .