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 ?
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
.
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 :)
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: