ruby on rails - rails - ruby-bundle install/update too slow
ruby gems (7)
Acabo de instalar RVM, Ruby, Rails, etc. en mi ubuntu 12.04 virtual de 32 bits en una virtualbox. Ahora me encuentro con el problema de que para mi primer bundle install
rieles o la bundle update
lleva mucho tiempo. Incluso cuando creo un nuevo proyecto con rieles (que incluye la bundle install
).
Yo uso solo las gemas estándar
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''
Probé la instalación del paquete sin gemas, pero gem ''rails'', ''3.2.12''
. Después de eso volví a escribir bundle install
con todas las gemas en mi gemfile. Me llevó 10 minutos verificar las dependencias. El resultado de --verbose es una combinación de HTTP success
HTTP redirection
y HTTP redirection
.
Versión de rieles: rieles 3.2.12
Versión Ruby: ruby 1.9.3p392 (2013-02-22 revision 39386)
Rvm: rvm 1.18.18
paquete de versión: Bundler versión 1.3.2
Ya busqué una solución, pero nada ayudó.
Bundler acaba de recibir una actualización del procesamiento paralelo de gemas.
gem install bundler --pre
resolverá el problema de la mejor manera posible por ahora.
Bundler v1.12.x se lanzó en 2016 y ocasionó que algunos usuarios experimentaran problemas lentos de instalación de paquetes .
En este caso, quedarse con v1.11.2 es la mejor opción (es rápido) hasta que se libere una solución.
Vale la pena ir a Rubygems.org para probar diferentes versiones de la gema del bundler.
Verifique las versiones existentes del paquete, desinstale la versión existente, instale la versión 1.11.2 ejemplo:
gem list | grep bundler
gem uninstall bundler -v existing-version-number
gem install bundler -v 1.11.2
Cambiar https
a http
en mi Gemfile hizo la magia. Antes tengo que crear el proyecto con rails new APP --skip-bundle
Quiero advertir aquí, que hay un propósito de seguridad para usar https sobre http. Pruebe al principio las otras respuestas mencionadas en este hilo.
Sé que esta puede ser una respuesta básica, pero intente instalar herramientas de desarrollador desde el sitio principal de Ruby. He tenido un problema similar y funcionó. ¡A veces las soluciones simples son las mejores!
¡Buena suerte!
Si todavía está viendo este problema con Bundler 1.12.5, puede intentar actualizar el OpenSSL utilizado por su Ruby .
Para mí esto fue así:
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]
[... más producción de brew
...]
pmorse$ rvm reinstall ruby-2.2.2 --with-openssl-dir=`brew --prefix openssl`
[... mucha producción de rvm
...]
pmorse$ ruby -ropenssl -e ''puts OpenSSL::OPENSSL_VERSION''
OpenSSL 1.0.2h 3 May 2016
Esto debería hacer que el bundle
más rápido nuevamente sin necesidad de pasar de https
a http
.
También puede usar múltiples trabajos, puede mejorar un poco
bundle install --jobs 8
Aquí hay un tutorial sobre eso
Un método amigable para desarrolladores es anular el servidor de gemas con una alternativa más rápida.
En nuestro caso, podemos configurar http
como un espejo para abordar conexiones lentas https
:
bundle config mirror.https://rubygems.org http://rubygems.org
Esto le permite mantener la configuración original de Gemfile
mientras usa conexiones http
más rápidas para buscar gemas.
Si desea volver a https
:
bundle config --delete mirror.https://rubygems.org
bundle config
tiene una opción predeterminada --global
. Puede especificar --local
para limitar las configuraciones a la carpeta de la aplicación local.
La configuración se guarda en global ~/.bundle/config
y local .bundle/config
.