Ruby - пакет установить/обновить слишком медленно

Я только что установил RVM, Ruby, Rails и т.д. на своем виртуальном ubuntu 12.04 32bit, работающем в виртуальном боксе. Теперь я столкнулся с проблемой, что для моих первых рельсов проект bundle install или bundle update занимает очень много времени. Даже когда я создаю новый проект с рельсами (который включает bundle install).

Я использую только стандартные драгоценные камни:

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'

Я попробовал установку пакета без каких-либо драгоценных камней, но gem 'rails', '3.2.12'. После этого я снова набрал bundle install со всеми драгоценными камнями в моем gemfile. Мне потребовалось 10 минут, чтобы проверить зависимости. Выходной сигнал --verbose представляет собой комбинацию HTTP success и HTTP redirection.

Версия Rails: Rails 3.2.12

Ruby version: ruby ​​1.9.3p392 (2013-02-22 версия 39386)

Rvm: rvm 1.18.18

версия пакета: версия Bundler 1.3.2

Я уже искал решение, но ничего не помогло.

Ответ 1

Изменение https до http в моем Gemfile делало магию. Прежде чем я должен создать проект с помощью rails new APP --skip-bundle

Я хочу предупредить здесь, что есть цель безопасности для использования https через http. Сначала попробуйте другие ответы, упомянутые в этой теме.

Ответ 2

Bundler просто получил обновление параллельной обработки драгоценных камней.

gem install bundler --pre 

будет решать проблему наилучшим образом на данный момент.

Источник

Ответ 3

Bundler v1.12.x был выпущен в 2016 году и заставил некоторых пользователей испытать медленные проблемы с установкой пакета.

В этом случае оставаться с v1.11.2 является лучшим вариантом (это быстро), пока не будет выпущено исправление.

Стоит переходить к Rubygems.org, чтобы попробовать разные версии жгута пробки.

Проверить существующие версии поставщика, удалить существующую версию, пример версии 1.11.2:

gem list | grep bundler

gem uninstall bundler -v existing-version-number

gem install bundler -v 1.11.2

Ответ 4

Вы также можете использовать несколько заданий, это может немного улучшить

  bundle install --jobs 8

Вот учебник об этом

Ответ 5

Если вы все еще видите эту проблему с Bundler 1.12.5, вы можете попробовать обновить OpenSSL, используемый вашим Ruby.

Для меня это было так:

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]

[... больше brew вывод...]

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

[... много результатов rvm...]

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

Это должно сделать bundle быстрее, не требуя перехода от https до http.

Ответ 6

Другим способом для разработчиков является переопределение сервера gem с более быстрой альтернативой.

В нашем случае мы можем настроить http как зеркало для обращения к медленным https соединениям:

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

Это позволяет сохранить исходную конфигурацию Gemfile, продолжая использовать более быстрые http соединения для извлечения драгоценных камней.

Если вы хотите вернуться к https:

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

bundle config имеет параметр по умолчанию --global. Вы можете указать --local для ограничения конфигураций в локальной папке приложения.

Конфигурация сохраняется в глобальном ~/.bundle/config и локальном .bundle/config.

Ответ 7

Я знаю, что это может быть основным ответом, но попробуйте установить инструменты разработчика с основного сайта Ruby. У меня была аналогичная проблема, и это действительно сработало. Иногда простые решения являются лучшими!

Удачи!