web-dev-qa-db-fra.com

Comment installer un fichier gem Ruby gem téléchargé?

Comment fonctionne "l'installation de gemmes"? Ce n'est pas intuitif ...

Mon bijou est vraiment là:

[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 une "installation de gemme" 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 avec ça ?

40
JCLL

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

48
Oscar

Juste quelques précisions au cas où vous auriez besoin de construire/installer votre propre fichier gem 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 a été le premier résultat :)

24
Haris Krajina

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

$ gem environment

Cela vous donnera quelque chose comme:

> RubyGems Environment:
>   - RUBYGEMS VERSION: 1.3.6
>   - Ruby VERSION: 1.8.6 (2007-09-24 patchlevel 111) [i486-linux]
>   - INSTALLATION DIRECTORY: /usr/lib/Ruby/gems/1.8
>   - Ruby EXECUTABLE: /usr/bin/Ruby1.8
>   - EXECUTABLE DIRECTORY: /usr/bin
>   - RUBYGEMS PLATFORMS:
>     - Ruby
>     - x86-linux
>   - GEM PATHS:
>      - /usr/lib/Ruby/gems/1.8
>      - /home/adminuser/.gem/Ruby/1.8

L'emplacement GEM PATHS est l'endroit où l'installation de gemmes s'attend à trouver des gemmes à installer. Ainsi, 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 l'installation de gemmes , il récupérera votre gemme et l'installera. Assurez-vous d'exécuter la commande copy en tant que superutilisateur (Sudo, si vous utilisez Ubuntu comme moi)

PS Si, lorsque vous exécutez l'environnement $ gem , vous obtenez une "méthode non définie 'manage_gems' pour Gem: Module (NoMethodError ) ", puis modifiez /usr/bin/gem et assurez-vous que les trois premières lignes du fichier ressemblent à ceci:

  1. nécessitent des "rubygèmes"
  2. nécessite 'rubygems/gem_runner'
  3. Gem.manage_gems

12
RedFred