Automatisez une installation Ruby Gem qui a une entrée
-
01-07-2019 - |
Question
J'essaie d'installer la gemme ibm_db pour pouvoir accéder à DB2 depuis Ruby.Quand j'essaye :
sudo gem install ibm_db
Je reçois la demande de précision suivante :
Select which gem to install for your platform (i486-linux) 1. ibm_db 0.10.0 (ruby) 2. ibm_db 0.10.0 (mswin32) 3. ibm_db 0.9.5 (mswin32) 4. ibm_db 0.9.5 (ruby) 5. Skip this gem 6. Cancel installation
Je vais toujours installer la version Linux (qui, je suppose, est la version "ruby"), alors existe-t-il un moyen de choisir celle que je vais installer directement à partir de la commande gem install ?
La raison pour laquelle il s'agit d'un problème est que je dois automatiser cette installation via un script bash, je voudrais donc sélectionner à l'avance la version "ruby".
La solution
Vous pouvez utiliser un « document ici ».C'est-à-dire:
sudo gem install ibm_db <<heredoc
1
heredoc
Ce qui se trouve entre \<\<\SOMETHING et SOMETHING est saisi comme entrée de la commande précédente (un peu comme les propres documents de Ruby).Le seul, bien sûr, est la sélection de la plate-forme "ibm_db 0.10.0 (ruby)".
J'espère que c'est suffisant.
Autres conseils
Essaye ça:
sudo gem install --platform ruby ibm_db
Notez que vous pouvez obtenir de l'aide sur la commande d'installation en utilisant :
gem help install
MISE À JOUR: Il semble que cette option ne fonctionne que pour RubyGems 0.9.5 ou supérieur.
Essayez ceci, je pense que cela ne fonctionne que sur Bash
sudo gem install ibm_db < <(echo 1)
J'ai déjà essayé gem help install, et --platform n'est pas une option, tant en aide qu'en pratique :
$ sudo gem install ibm_db --platform ruby ERROR: While executing gem ... (OptionParser::InvalidOption) invalid option: --platform
MISE À JOUR:Les dépôts Ubuntu ont la version 0.9.4 de rubygems, qui n'a pas l'option --platform.Il semble que ce soit peut-être le cas une nouvelle fonctionnalité dans la version 0.9.5, mais il n'y a toujours pas de documentation en ligne à ce sujet, et quoi qu'il en soit, cela ne fonctionnera pas sur Ubuntu, qui est la plate-forme sur laquelle j'en ai besoin pour travailler.
Les versions de Rubygems à partir de 1.0 détectent automatiquement la plateforme que vous utilisez et ne posent donc pas cette question.Êtes-vous en mesure de mettre à jour vos gemmes au plus tard ?
$ sudo gem update --system
Soyez averti si vous êtes sous Windows une fois la mise à jour effectuée ;vous pourriez tomber sur ce problème.
Une autre option consiste à télécharger le fichier .gem et à l'installer manuellement en tant que tel :
sudo gem install path/to/ibm_db-0.10.0.gem
Ce joyau particulier était à rubisforge.