Come posso installare un gioiello locale?


Risposte:


288

Sì, quando lo fai gem install, cercherà prima la directory corrente, quindi se il tuo file .gem è lì, lo prenderà. L'ho trovato sul riferimento gemma , che potresti trovare utile anche:

gem install installerà la gemma nominata. Tenterà un'installazione locale (ovvero un file .gem nella directory corrente) e, in caso contrario, tenterà di scaricare e installare la versione più recente della gemma desiderata.


2
Il collegamento termina in reindirizzamenti infiniti :(
Ain Tohvri,

2
Check-in per dire che questo funziona per me nel 2019.
Charles Wood,

1
Ho Gemfileun .gemfile ma non un file. Quindi cos'è questo .gemfile? Cosa dovrebbe contenere? - Aspetta - Capisco. Intendi un gem-name.gemfile. Ricorda che su unix è abbastanza normale avere un file che inizia con un '.' quindi è meglio precisarlo.
Martin

Posso confermare dal futuro del 2020, il collegamento funziona per me. Nel caso in cui non funzionasse in un futuro lontano, ecco l' istantanea di
Jed Burke,

329

Inoltre, puoi usare gem install --local path_to_gem/filename.gem

Ciò salterà la normale scansione del repository gemma che si verifica quando si interrompe --local.

Puoi trovare altra magia con gem install --help.


Scarica una gemma come i rubygem in formato zip. Quindi non esiste alcun file .gem qui. Come posso installarlo da locale? Grazie.
Erran Morad,

3
@BoratSagdiyev, un file zip non è un gioiello. Come la maggior parte dei file zip, è necessario decomprimerlo prima di poter fare molto con esso. Se contiene una gemma, puoi usare gem install sul file .gem estratto. Non ricordo gli interni del formato gemma; è possibile che sia solo un file zip con un'intestazione speciale, ma rubygems non riconosce i file zip in quanto tali.
JasonTrue,

62

puoi anche usare il nome file completo per il tuo file gem:

gem install /full/path/to/your.gem

funziona anche questo - è probabilmente il modo più semplice


38

Se crei le tue gemme con il bundler:

# do this in the proper directory
bundle gem foobar

Puoi installarli con rake dopo che sono stati scritti:

# cd into your gem directory
rake install

È probabile che anche la tua gemma scaricata lo sappia rake install.


3
questa sembra la migliore risposta moderna. la risposta accettata è di 8 anni fa
sixty4bit il

14

se scarichi il file di progetto da github o da un altro sito host scm, usa gem build per creare prima il progetto, in modo da poter ottenere un file what.gem nella directory corrente. Quindi gemma installalo!


13

Se vuoi lavorare su una forcella modificata localmente di una gemma, il modo migliore per farlo è

gem 'pry', path: './pry'

in un Gemfile.

... dove ./prysarebbe il clone del tuo repository. Esegui semplicemente bundle installuna volta e tutte le modifiche apportate alle fonti di gemme apportate vengono immediatamente riflesse. Con gem install pry/pry.gem, i sorgenti vengono ancora spostati GEM_PATHe dovrai sempre eseguire entrambi bundle gem prye gem updatetestare.



0

Bene, è questa la mia installazione DRY:

  1. Cerca in un computer con gemme già installate necessarie nella directory della cache (per impostazione predefinita: [Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache )
  2. Copiare tutti i " *.gemsfile" ad un computer senza gemme in proprio posto di cache gioiello (per impostazione predefinita lo stesso percorso patrono della prima fase: [Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache)
  3. Nella console posizionarsi nella cache gems (cd [Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache) e lanciare gem install anygemwithdependencieshere(per esempio cucumber-2.99.0)

È ASCIUTTO perché dopo l'installazione di qualsiasi gemma, per impostazione predefinita rubygems inserisce il file gem nella directory gem della cache e non ha senso duplicare i suoi file, è più facile se si desidera che entrambi i computer abbiano le stesse versioni (o macchiato da regole di sicurezza paranoiche: v)

Modifica: in alcune versioni di ruby ​​o rubygems, non funziona e genera avvisi o errori, puoi mettere gemme in un altro posto ma non ottenere ASCIUTTO, altra alternativa sta usando il comando di avvio integrato gem servere aggiungi l'URL localhost nelle fonti gemma, altro informazioni in: https://guides.rubygems.org/run-your-own-gem-server/


0

Puoi scaricare gemme da https://rubygems.org/gems/ o creare la tua gemma locale tramite bundle e rack.

per esempio:

  • raggruppa gemma yourGemName
  • rake install

Prenditi cura di installare le dipendenze prima di installare gemme reali.

  • gem install --local /pathToFolder/xxx-2.6.1.gem

Nota: se si utilizza fluentd td-agent e ruby ​​sulla stessa macchina. Assicurati di usare il comando td-agent-gem di td-agent. td-agent ha il suo Ruby.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.