web-dev-qa-db-fra.com

ruby - bundle installer/mettre à jour trop lentement

Je viens d’installer RVM, Ruby, Rails, etc. sur mon ordinateur virtuel Ubuntu 12.04 32bit s’exécutant dans une boîte virtuelle. Je rencontre maintenant le problème suivant: pour mon premier projet Rails, bundle install ou bundle update prend très longtemps. Même lorsque je crée un nouveau projet avec Rails (qui inclut bundle install). 

Je n'utilise que les gemmes standards:

source 'https://rubygems.org'

gem 'Rails', '3.2.12'

# Bundle Edge Rails instead:
# gem 'Rails', :git => 'git://github.com/Rails/rails.git'

group :development do
  gem 'sqlite3', '1.3.5'
end


# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-Rails',   '3.2.5'
  gem 'coffee-Rails', '3.2.2'

  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  # gem 'therubyracer', :platforms => :Ruby

 gem 'uglifier', '1.2.3'
end

gem 'jquery-Rails', '2.0.2'

J'ai essayé l'installation groupée sans aucune gemme mais gem 'Rails', '3.2.12'. Après cela, j'ai tapé à nouveau bundle install avec toutes les pierres précieuses dans mon fichier gem. Il m'a fallu 10 minutes pour vérifier les dépendances. Le résultat de --verbose est un mélange de HTTP success et HTTP redirection.

Version de Rails: Rails 3.2.12

Version Ruby: Ruby 1.9.3p392 (2013-02-22 révision 39386)

Rvm: rvm 1.18.18

version de paquet: Bundler version 1.3.2

J'ai déjà cherché une solution, mais rien n'y fait.

35
Robin Wieruch

Changer https en http dans mon Gemfile a fait la magie. Avant de devoir créer le projet avec Rails new APP --skip-bundle

Je tiens à avertir ici, qu'il existe un objectif de sécurité pour utiliser https sur http. Essayez d’abord les autres réponses mentionnées dans ce fil.

39
Robin Wieruch

Bundler vient de avoir une mise à jour du traitement parallèle des gemmes 

gem install bundler --pre 

résoudra le problème de la meilleure façon possible pour le moment.

La source

13
Mohit Jain

Bundler v1.12.x a été publié en 2016 et a provoqué chez certains utilisateurs des problèmes avec des problèmes de lenteur liés à l'installation d'un ensemble

Dans ce cas, rester avec v1.11.2 est la meilleure option (c'est rapide) jusqu'à ce qu'un correctif soit publié.

Il vaut la peine de se rendre sur Rubygems.org pour essayer différentes versions de la gemme de bundler.

Vérifiez les versions de bundler existantes, désinstallez la version existante, installez la version 1.11.2 par exemple:

gem list | grep bundler

gem uninstall bundler -v existing-version-number

gem install bundler -v 1.11.2
5
Red

Vous pouvez également utiliser plusieurs tâches, cela peut améliorer un peu

  bundle install --jobs 8

Voici un tutorial about it

3
duykhoa

Une méthode conviviale pour les développeurs consiste à remplacer le serveur Gem par une alternative plus rapide.

Dans notre cas, nous pouvons configurer http en tant que miroir pour traiter les connexions https lentes:

bundle config mirror.https://rubygems.org http://rubygems.org

Cela vous permet de conserver la configuration Gemfile d'origine tout en utilisant des connexions http plus rapides pour récupérer des gemmes.

Si vous voulez revenir à https

bundle config --delete mirror.https://rubygems.org

bundle config a une option par défaut --global. Vous pouvez spécifier --local pour limiter les configurations au dossier de l'application locale.

La configuration est enregistrée dans le ~/.bundle/config global et le .bundle/config local.

2
Reza Hashemi

Si vous rencontrez toujours ce problème avec Bundler 1.12.5, vous pouvez essayer de mettre à jour le OpenSSL utilisé par votre Ruby .

Pour moi, ça s'est passé comme ça:

pmorse$ bundle --version
Bundler version 1.12.5
pmorse$ Ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION'
OpenSSL 1.0.1j 15 Oct 2014
pmorse$ openssl version
OpenSSL 0.9.8zg 14 July 2015
pmorse$ brew info openssl
openssl: stable 1.0.2h (bottled) [keg-only]

[... plus brew sortie ...]

pmorse$ rvm reinstall Ruby-2.2.2 --with-openssl-dir=`brew --prefix openssl`

[... beaucoup de sortie rvm ...]

pmorse$ Ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION'
OpenSSL 1.0.2h  3 May 2016

Cela devrait rendre bundle encore plus rapide sans que vous deviez passer de https à http.

2
pjmorse

Je sais que cette réponse est peut-être élémentaire, mais essayez d'installer des outils de développement à partir du site principal de Ruby. J'ai eu un problème similaire et cela a fonctionné. Parfois, les solutions simples sont les meilleures!

Bonne chance!

0
Adamosch