47 votes

Comment installer un fichier de gemme Ruby téléchargé?

Comment fonctionne "gem install" ? Ce n'est pas intuitif...

Mon gem est vraiment ici :

[root@localhost Téléchargement]# ll *.gem
-rw-rw-r-- 1 jean jean 16353818 mar  5 11:39 ruby-processing-1.0.9.gem

Mais un "gem install" idiomatique ne le voit pas...

[root@localhost Téléchargement]# gem install ruby-processing-1.0.9.gem 
ERROR: could not find gem ruby-processing-1.0.9.gem locally or in a repository

Qu'est-ce qui ne va pas ?

52voto

Paz Points 1903

Peut-être que je n'ai pas pleinement compris la question. Mais si vous voulez simplement installer une gemme que vous avez sur votre machine locale, tout ce que vous devez faire à partir de la console est d'aller dans le répertoire contenant votre gemme et gem install --local your.gem.

27voto

Haris Krajina Points 3051

Juste quelques éclaircissements au cas où vous auriez besoin de construire / installer votre propre fichier gemme dans cet exemple foo-bar.

gem build foo-bar.gemspec
gem install --local foo-bar-0.1.0.gem

Je cherchais comment faire cela et ce post était le premier résultat :)

0 votes

Merci. La deuxième ligne devrait probablement être corrigée en : gem install --local foo-bar-1.0.0.gem

1 votes

@valk Eh bien, cela dépend de la version spécifiée dans *.gemspec. Il est bon de mentionner que vous n'avez pas besoin de l'indicateur --local, mais la documentation dit le contraire donc je l'ai respectée.

0 votes

@HarisKrajina Il est utile d'avoir --local car cela évite de vérifier chaque source pour le dépôt et permet de gagner un peu de temps. Particulièrement utile si vous avez modifié un gem trouvé en ligne (j'ai fait cela pour le rendre compatible avec un autre programme).

13voto

RedFred Points 166

Le problème est que gem install cherche des gemmes à installer dans son répertoire par défaut. Vous pouvez découvrir où cela se trouve en exécutant :

$ gem environment

Cela vous donnera quelque chose comme :

> Environnement RubyGems:
>   - VERSION RUBYGEMS: 1.3.6
>   - VERSION RUBY: 1.8.6 (24 septembre 2007 niveau de correctif 111) [i486-linux]
>   - RÉPERTOIRE D'INSTALLATION: /usr/lib/ruby/gems/1.8
>   - EXÉCUTABLE RUBY: /usr/bin/ruby1.8
>   - RÉPERTOIRE EXÉCUTABLE: /usr/bin
>   - PLATES-FORMES RUBYGEMS:
>     - ruby
>     - x86-linux
>   - CHEMINS DES GEMMES:
>      - /usr/lib/ruby/gems/1.8
>      - /home/adminuser/.gem/ruby/1.8

Les emplacements des CHEMINS DES GEMMES sont là où gem install attend de trouver des gemmes à installer. Donc, la solution à votre problème serait de copier la gemme de son emplacement actuel vers le répertoire attendu, c'est-à-dire :

$ cp my.gem /home/adminuser/.gem/ruby/1.8/

Si vous exécutez ensuite gem install, il va récupérer votre gemme et l'installer. Assurez-vous d'exécuter la commande de copie en tant que superutilisateur (sudo, si vous utilisez Ubuntu comme moi)

P.S Si, lorsque vous exécutez $ gem environment, vous obtenez une erreur "undefined method ‘manage_gems’ for Gem:Module (NoMethodError)", alors modifiez /usr/bin/gem et assurez-vous que les trois premières lignes du fichier ressemblent à ceci :

  1. require 'rubygems'
  2. require 'rubygems/gem_runner'
  3. Gem.manage_gems

0 votes

Je suis en train d'essayer d'installer une gemme à partir de la source, comment puis-je faire cela ? De préférence avec un lien symbolique pour pouvoir mettre à jour la source.

0 votes

Merci pour cela. J'ai besoin d'installer l'adaptateur Oracle et j'ai dû le faire à partir du fichier .gem car la source n'est plus disponible.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X