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 :
- require 'rubygems'
- require 'rubygems/gem_runner'
-
Gem.manage_gems