2010-09-21 14 views
2

Je travaille sur un ensemble de gemmes pour mon application.éviter http vérification lors de l'installation d'un bijou fait maison

Lors de l'installation de mes propres gemmes, le programme gem vérifie les spécifications des rubugems (éventuellement pour les dépendances). Avec un drapeau bavard je peux voir des messages comme:

GET http://rubygems.org/latest_specs.4.8.gz 
302 Found 
GET http://production.s3.rubygems.org/latest_specs.4.8.gz 
200 OK 
GET http://rubygems.org/specs.4.8.gz 

Le problème est que je travaille sur ces pierres précieuses, et ce paquet I/réinstalle un certain nombre de fois par jour, et le processus d'installation est assez longue. Comme je suis sûr que toutes les dépendances gem externes sont satisfaites, est-il possible de télégramme de ne pas vérifier les dépendances de rubygems.org, et éviter, éventuellement le trafic http lent?

Cordialement,

_dl

+0

--ignore-dépendances peut-être? –

+0

Eh oui, cela fait l'affaire! merci – devlearn

Répondre

0

Utilisez-vous bijoutier pour créer le bijou?

Vous pouvez utiliser rake install installer la pierre précieuse

+0

Non, nous n'utilisons pas de bijoutier, la gemme est installée dans le cadre d'un processus où la ligne de commande gem est invoquée. J'ai donc vraiment besoin d'une option gem et --ignore-dependencies fait exactement ce dont j'ai besoin. – devlearn

1

Si vous voulez garder les choses comme rubygems.org d'être consulté dans le cadre de votre construction, vous pouvez utiliser un gemserver interne comme GemInABox pour accueillir les gemmes vous utiliser dans votre organisation.

Ensuite, assurez-vous simplement de transmettre à la fois les options --clear-sources et --source à gem.

Par exemple:

gem install bundler --clear-sources --source http://your.corporate.gemserver.here.com 

Cela vous permettra de garder les problèmes de connectivité et de lag réseau de votre build CI, éliminant ainsi une autre source de la variance de construction.

Autrefois, l'option --source de gem était utilisée comme seule source pour les recherches de gemmes. À partir de quelque part en 2009, il a changé pour combiner la source fournie en option avec les sources par défaut définies pour les gemmes, dont l'une est http://rubygems.org. Malheureusement, cela signifiait que si vous utilisiez une gemme dans une machine qui était bloquée et ne pouvait même pas accéder à un proxy http, vous trouveriez que l'installation gem échouait avec des problèmes de réseau car elle aurait le mal du pays et tenterait de chercher http://rubygems.org même si vous l'aviez dit de ne pas regarder là-bas.

Le manuel Rubygems est un peu en retrait de la courbe, et l'option --clear-source n'est pas documentée dans le manuel. C'est seulement visible si vous regardez dans le code source. J'espère que cela sera repris et utilisé par d'autres pour leur faire gagner du temps.

Vive Stuart