wake-up-neo.com

ruby - Bundle installieren/aktualisieren zu langsam

Ich habe gerade RVM, Ruby, Rails usw. auf meinem virtuellen Ubuntu 12.04 32bit in einer Virtualbox installiert. Jetzt stoße ich auf das Problem, dass bundle install oder bundle update für mein erstes Rails-Projekt sehr lange dauert. Auch wenn ich ein neues Projekt mit Rails (einschließlich bundle install) erstelle. 

Ich verwende nur die Standardedelsteine:

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'

Ich habe versucht, Bundle ohne Edelsteine ​​zu installieren, aber gem 'Rails', '3.2.12'. Danach habe ich noch einmal bundle install mit allen Edelsteinen in meinem Gemfile eingegeben. Ich habe 10 Minuten gebraucht, um nach Abhängigkeiten zu suchen. Die Ausgabe von --verbose ist eine Mischung aus HTTP success und HTTP redirection.

Schienenversion: Schienen 3.2.12

Ruby-Version: Ruby 1.9.3p392 (2013-02-22, Revision 39386)

Rvm: rvm 1.18.18

bundle-Version: Bundler-Version 1.3.2

Ich habe schon nach einer Lösung gesucht, aber nichts hat geholfen.

35
Robin Wieruch

https in http in meinem Gemfile zu ändern, hat die Magie ausgeführt Bevor ich das Projekt mit Rails new APP --skip-bundle erstellen muss

Ich möchte hier warnen, dass es einen Sicherheitszweck für die Verwendung von https über http gibt. Versuchen Sie zunächst die anderen in diesem Thread erwähnten Antworten.

39
Robin Wieruch

Bundler nur erhielt ein Update der parallelen Verarbeitung von Edelsteinen. 

gem install bundler --pre 

wird das Problem auf die bestmögliche Weise lösen.

Quelle

13
Mohit Jain

Bundler v1.12.x wurde im Jahr 2016 veröffentlicht und führte dazu, dass einige Benutzer Probleme mit der langsamen Paketinstallation hatten

In diesem Fall ist das Verbleiben bei v1.11.2 die beste Option (schnell), bis ein Fix veröffentlicht wird.

Es lohnt sich, nach Rubygems.org zu fahren, um verschiedene Versionen des Bundler-Edelsteins auszuprobieren.

Bestehende Bundler-Versionen prüfen, vorhandene Version deinstallieren, Version 1.11.2 installieren. Beispiel:

gem list | grep bundler

gem uninstall bundler -v existing-version-number

gem install bundler -v 1.11.2
5
Red

Sie können auch mehrere Jobs verwenden, dies kann sich jedoch etwas verbessern

  bundle install --jobs 8

Hier ist ein Tutorial darüber

3
duykhoa

Eine für Entwickler geeignete Methode besteht darin, den Gem-Server mit einer schnelleren Alternative zu überschreiben.

In unserem Fall können wir http als Spiegel konfigurieren, um langsame https-Verbindungen anzusprechen:

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

Auf diese Weise können Sie die ursprüngliche Gemfile-Konfiguration beibehalten und gleichzeitig schnellere http-Verbindungen zum Abrufen von Gems verwenden.

Wenn Sie wieder zu https wechseln wollten: 

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

bundle config verfügt über eine standardmäßige --global-Option. Sie können --local angeben, um Konfigurationen auf lokale Anwendungsordner zu beschränken.

Die Konfiguration wird in globalem ~/.bundle/config und lokalem .bundle/config gespeichert.

2
Reza Hashemi

Wenn dieses Problem weiterhin mit Bundler 1.12.5 auftritt, können Sie versuchen, die von Ruby verwendete OpenSSL zu aktualisieren.

Für mich lief das so:

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]

[... mehr brew Ausgabe ...]

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

[... viele rvm Ausgaben ...]

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

Dies sollte bundle wieder schneller machen, ohne dass Sie von https zu http wechseln müssen.

2
pjmorse

Ich weiß, dass dies eine grundlegende Antwort sein kann, aber versuchen Sie, die Entwicklertools von der Ruby-Hauptseite aus zu installieren. Ich hatte ein ähnliches Problem und es hat funktioniert. Manchmal sind einfache Lösungen die besten!

Viel Glück!

0
Adamosch