Comment puis-je installer une gemme locale?

Réponses:

288

Oui, lorsque vous le faites gem install, il recherchera d'abord le répertoire actuel, donc si votre fichier .gem est là, il le ramassera. Je l'ai trouvé sur la référence de gemme , que vous pouvez également trouver utile:

l'installation de gem installera la gemme nommée. Il tentera une installation locale (c'est-à-dire un fichier .gem dans le répertoire courant), et si cela échoue, il tentera de télécharger et d'installer la version la plus récente de la gemme souhaitée.

Chris Bunch
la source
2
Le lien se termine par des redirections infinies :(
Ain Tohvri
2
Enregistrement pour dire que cela fonctionne pour moi en 2019.
Charles Wood
1
J'ai Gemfileun .gemfichier mais pas un . Alors, quel est ce .gemfichier? Que doit-il contenir? - Attends - je vois. Vous voulez dire un gem-name.gemfichier. Rappelez-vous que sur unix, il est assez normal d'avoir un fichier commençant par un '.' il est donc préférable de le préciser.
Martin
Je peux confirmer qu'à partir de 2020, le lien fonctionne pour moi. Dans le cas où cela ne fonctionnerait pas dans un avenir lointain, voici l' instantané
Jed Burke
329

Vous pouvez également utiliser gem install --local path_to_gem/filename.gem

Cela ignorera l'analyse habituelle du référentiel de gemmes qui se produit lorsque vous vous arrêtez --local.

Vous pouvez trouver une autre magie avec gem install --help.

JasonTrue
la source
Je télécharge un bijou tel que rubygems au format zip. Il n'y a donc pas de fichier .gem ici. Comment est-ce que j'installe ceci du local? Je vous remercie.
Erran Morad
3
@BoratSagdiyev, un fichier zip n'est pas un joyau. Comme la plupart des fichiers zip, vous devez le décompresser avant de pouvoir en faire beaucoup. S'il contient une gemme, vous pouvez utiliser l'installation de gemme sur le fichier .gem extrait. Je ne me souviens pas des composants internes du format gem; il est possible qu'il s'agisse simplement d'un fichier zip avec un en-tête spécial, mais rubygems ne reconnaît pas les fichiers zip en tant que tels.
JasonTrue
62

vous pouvez également utiliser le nom de fichier complet dans votre fichier gem:

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

cela fonctionne aussi - c'est probablement le moyen le plus simple

lesmana
la source
38

Si vous créez vos gemmes avec bundler:

# do this in the proper directory
bundle gem foobar

Vous pouvez les installer avec râteau après leur écriture:

# cd into your gem directory
rake install

Il y a de fortes chances que votre bijou téléchargé le sache rake installégalement.

Boris Stitnicky
la source
3
cela semble être la meilleure réponse moderne. la réponse acceptée
remonte
14

si vous téléchargez le fichier de projet à partir de github ou d'un autre site hôte scm, utilisez d'abord gem build pour construire le projet, afin que vous puissiez obtenir un fichier quelquechose.gem dans le répertoire courant. Ensuite, installez-le!

hechen0
la source
13

Si vous voulez travailler sur une fourche de gemme modifiée localement, la meilleure façon de le faire est

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

dans un Gemfile.

... où ./pryserait le clone de votre référentiel. Exécutez simplement bundle installune fois et tout changement dans les sources de gemmes que vous effectuez est immédiatement reflété. Avec gem install pry/pry.gem, les sources sont toujours déplacées GEM_PATHet vous devrez toujours exécuter les deux bundle gem pryet gem updatetester.

Matthias Winkelmann
la source
5

Allez sur le chemin où se trouve la gemme et appelez gem install -l gemname.gem

leobelizquierdo
la source
0

Eh bien, c'est mon installation sèche:

  1. Regardez dans un ordinateur avec des pierres précieuses déjà installés nécessaires dans le répertoire du cache (par défaut: [Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache)
  2. Copier tous les « *.gemsfichiers » à un ordinateur sans pierres précieuses en propre lieu de cache de pierres précieuses (par défaut le même chemin patron de la première étape: [Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache)
  3. Dans la console, placez-vous dans le cache des gemmes (cd [Ruby Installation version]/lib/ruby/gems/[Ruby version]/cache) et lancez le gem install anygemwithdependencieshere(par exemple cucumber-2.99.0)

C'est SEC, car après avoir installé n'importe quelle gemme, par défaut rubygems place le fichier gem dans le répertoire cache gem et n'a pas de sens de dupliquer des fichiers, c'est plus facile si vous voulez que les deux ordinateurs aient les mêmes versions (ou bloqués par des règles de sécurité paranoïaques: v)

Modifier: dans certaines versions de ruby ​​ou rubygems, cela ne fonctionne pas et déclenche des alertes ou des erreurs, vous pouvez placer des gemmes à un autre endroit mais ne pas obtenir DRY, une autre alternative consiste à lancer la commande intégrée gem serveret à ajouter l'URL localhost dans les sources de gemmes, plus informations sur: https://guides.rubygems.org/run-your-own-gem-server/

Daniel Antonio Nuñez Carhuayo
la source
0

Vous pouvez télécharger des gemmes sur https://rubygems.org/gems/ ou créer votre gemme locale via un bundle et un rack.

par exemple:

  • bundle gem yourGemName
  • installation de râteau

Prenez soin d'installer les dépendances avant d'installer de véritables gemmes.

  • installation de gem --local /pathToFolder/xxx-2.6.1.gem

Remarque: Si vous utilisez fluentd td-agent et ruby ​​sur la même machine. Veuillez vous assurer d'utiliser la commande td-agent-gem de td-agent. td-agent a son propre Ruby.

Vinayak Mishra
la source