2008-09-19 6 views
1

J'essaie d'installer la gem ibm_db pour pouvoir accéder à DB2 à partir de Ruby. Lorsque je tente:Automatiser une installation Ruby Gem qui a une entrée

sudo gem install ibm_db 

Je reçois la demande suivante des éclaircissements:

 
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 être installer la version Linux (que je suppose est la version « rubis »), est donc il y a un moyen de choisir lequel je vais installer directement à partir de la commande gem install?

La raison pour laquelle ceci est un problème est que j'ai besoin d'automatiser cette installation via un script bash, donc je voudrais choisir que je veux la version "ruby" à l'avance.

Répondre

2

Vous pouvez utiliser un 'document ici'. C'est:

sudo gem install ibm_db <<heredoc 
    1 
heredoc 

Ce qui est entre le \ < \ < \ quelquechose et quelquechose s'entré que l'entrée à la commande précédente (un peu comme propres heredocuments de rubis). Le 1 seul, bien sûr, est la sélection de la plateforme "ibm_db 0.10.0 (ruby)".

Espérons que ce soit suffisant.

+0

Voici la solution qui fonctionne pour la version 0.9 de rubygems .4 ... vérifiez vos gems help install pour voir s'il existe une option --platform. –

1

Essayez ceci:

sudo gem install --platform ruby ibm_db 

Notez que vous pouvez obtenir de l'aide sur la commande d'installation à l'aide:

gem help install 

MISE À JOUR: On dirait que cette option ne fonctionne que pour RubyGems 0,9. 5 ou plus.

+0

Clarification: Cela ne fonctionne pas sur Ubuntu qui utilise des rubygems 0.9.4 (dans les repos), mais il semble que cela puisse être une caractéristique des versions ultérieures de rubygems. –

0

@John Topley

Je gem déjà essayé aider à installer et --platform n'est pas une option, aussi bien dans l'aide et dans la pratique:

 
$ sudo gem install ibm_db --platform ruby 
ERROR: While executing gem ... (OptionParser::InvalidOption) 
    invalid option: --platform 

MISE À JOUR: Les prises en pension Ubuntu avoir la version 0.9.4 de rubygems, qui n'a pas l'option --platform. Il semble que ce soit a new feature in 0.9.5, mais il n'y a toujours pas de documentation en ligne pour cela, et peu importe, cela ne marchera pas sur Ubuntu qui est la plate-forme sur laquelle je dois travailler.

+0

Quelle version de RubyGems êtes-vous? Je l'ai juste essayé sur Mac OS X en utilisant RubyGems v1.2.0 et je n'ai pas eu cette erreur. –

+0

La nouvelle version installée à partir de apt-get install rubygems sur Ubuntu ... voir aussi: http://www.rubygems.org/read/chapter/10#page33 (No --plateforme spécifiée dans la documentation en ligne de rubygems) –

+0

la sortie de gem -v ? –

0

Essayez, je pense que cela ne fonctionne que sur Bash si

sudo gem install ibm_db < <(echo 1) 
+0

Hmm, intéressant ... bien que la sortie d'écho de tuyauterie puisse fonctionner aussi bien ...? IE sudo gem installer ibm_db | echo "1" –

0

Les versions de Rubygems de 1.0 et jusqu'à détectera automatiquement la plate-forme que vous utilisez et donc ne demandez pas à cette question. Êtes-vous capable de mettre à jour vos gemmes à la dernière?

$ sudo gem update --system 

Soyez averti si vous êtes sur Windows une fois que vous avez mis à jour; vous pourriez rencontrer this issue.

+0

Merci, mais je préfère utiliser mon système d'emballage pour mettre à jour mes applications (ie, apt-get depuis que je suis sur Ubuntu) :-) –

0

Une autre option consiste à télécharger le fichier.fichier des pierres précieuses et l'installer manuellement en tant que tel:

sudo gem install path/to/ibm_db-0.10.0.gem 

Ce petit bijou particulier était rubyforge.

Questions connexes