2014-05-09 3 views
1

Je suis un débutant de Ruby travaillant sur une application de Rails. Nous essayons d'accélérer nos installations en exécutant un serveur de gem local au lieu de toujours aller sur rubygems.org. J'ai trouvé que l'exécution de la commande:Ruby - exécutez un serveur local de gem

gem server 

ensembles ça, avec le serveur en cours d'exécution à localhost 8808. Cependant quand j'ajoute une ligne de source pour cette URL à mon Gemfile, puis exécutez « paquet install », il échoue après une minute disant:

Gem::RemoteFetcher::FetchError: bad response Not Found 404 (http://localhost:8808/gems/rake-10.3.1.gem) 
An error occurred while installing rake (10.3.1), and Bundler cannot continue. 
Make sure that `gem install rake -v '10.3.1'` succeeds before bundling. 

Si je navigue sur ce serveur, je vois une page disant que Rake, la version 10.3.1 est installé, mais quand je vais à l'URL indiquée, je ne reçois 404 page. Après avoir exécuté la pierre précieuse commande d'installation, je reçois encore une page 404, mais le faisceau devient une étape installer plus loin et échoue avec:

Gem::RemoteFetcher::FetchError: bad response Not Found 404 (http://localhost:8808/gems/activesupport-3.2.12.gem) 
An error occurred while installing activesupport (3.2.12), and Bundler cannot continue. 
Make sure that `gem install activesupport -v '3.2.12'` succeeds before bundling. 

Qu'est-ce qui se passe ici? J'ai les deux sources dans mon Gemfile, donc je m'attendrais à ce que le bundler se rende sur rubygems.org pour tout ce qu'il ne trouve pas localement, mais il semble aussi que les gemmes soient déjà installées localement. Dois-je exécuter des installations individuelles pour chaque dépendance à la gemme? Je suis sûr que je fais quelque chose qui ne va pas ici, mais je ne sais pas ce que c'est.

Répondre

1

Ceci est une procédure pas à pas décent de quelques situations que vous pourriez rencontrer lors de la configuration d'un serveur de pierres précieuses: http://guides.rubygems.org/run-your-own-gem-server/

Celui-ci n'est pas demi-mal non plus, si vous cherchez à utiliser simplement des versions locales de pierres précieuses (bien que cette technique ne configure pas un serveur gem séparé): https://coderwall.com/p/tqdrhq

+0

Oui, ce premier lien est l'endroit où j'ai trouvé la commande "gem server". Est-ce que c'est une promenade décente? Je l'ai trouvé un peu rare. Cela a mis en évidence l'existence de l'outil, mais il en est resté à peu près tout. Je fais un certain progrès avec le serveur mais juste par essais et erreurs. L'astuce semble être d'installer une fois avec rubygems.org, puis pointez le serveur sur le gemset que vous utilisiez. Cependant, bundle install ne peut toujours pas fonctionner sans sourcer rubygems.org, bien qu'il semble obtenir la plupart des gems du serveur local. –