Ответы:
Это не является строго ответом на ваш вопрос об установке .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
Смотрите эти простые инструкции .