Risposte:
Questa non è una risposta rigorosa alla tua domanda sull'installazione dei .gem
pacchetti, ma puoi specificare tutti i tipi di ubicazioni su base gemma per gemma modificando il tuo Gemfile .
:path
attributo installerà la gemma da quel percorso sul tuo computer locale.gem "foreman", path: "/Users/pje/my_foreman_fork"
:git
attributo verrà installata la gemma da un repository git remoto.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"
(Come menzionato da @JHurrah nel suo commento .)
gem "foreman", :git => "https://github.com/pje/foreman.git"
Sembra che il bundler non possa usare i file .gem immediatamente. Puntare il percorso: verso una directory contenente file .gem non funziona. Alcune persone hanno suggerito di installare un server gem locale (geminabox, stickler) a tale scopo.
Tuttavia, quello che ho trovato molto più semplice è usare un "server" gem locale dal file system: basta inserire i file .gem in una directory locale, quindi utilizzare "gem generate_index" per renderlo un repository Gem
mkdir repo
mkdir repo/gems
cp *.gem repo/gems
cd repo
gem generate_index
Infine punta il bundler in questa posizione aggiungendo la seguente riga al tuo Gemfile
source "file://path/to/repo"
Se aggiorni le gemme nel repository, assicurati di rigenerare l'indice.
gem server
né volevo ospitare l'intero progetto, solo il file .gem.
source "file://#{File.expand_path('.')}/chef-11.10.0.dev.2"
Could not fetch specs from file://Users/nakilon/....../
Per impostazione predefinita, Bundler controlla prima il tuo sistema e se non riesce a trovare una gemma utilizzerà le fonti specificate nel tuo Gemfile.
Puoi forzare il bundler a usare le gemme che dispieghi usando "bundle package" e "bundle install --local"
Sulla tua macchina di sviluppo:
bundle install
(Installa le gemme richieste e crea Gemfile.lock)
bundle package
(Memorizza nella cache le gemme nel fornitore / cache)
Sul server:
bundle install --local
(--local significa "usa le gemme dal fornitore / cache")
bundle install
Successivamente, copia il file gemma nel fornitore / cache , aggiungi la gemma al file gemma ed esegui bundle install --local
bundle package
è un grande suggerimento, anche adesso, tre anni dopo. Se la tua versione di Bundler è precedente alla 2.0 (non ancora pubblicata in questo documento), dovrai utilizzarla bundle package --all
se desideri includere gemme path
o git
dipendenze. Tuttavia, ti darà un utile promemoria se rileva tali dipendenze.
--local
documenti: "Nota che se su rubygems.org esiste una gemma specifica per la piattaforma appropriata, questa non verrà trovata."
L'aggiunta .gem
a vendor/cache
sembra funzionare. Nessuna opzione richiesta in Gemfile
.
Ho trovato più semplice eseguire il mio gem server usando geminabox
Vedi queste semplici istruzioni .