web-dev-qa-db-ja.com

ruby-バンドルのインストール/更新が遅すぎる

RVM、Ruby、Railsなどをvirtualboxで実行している仮想ubuntu 12.04 32ビットにインストールしました。今、最初のRailsプロジェクトbundle installまたはbundle updateは非常に長い時間がかかります。 Rails(これにはbundle install)。

標準のgemのみを使用します。

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なしでバンドルインストールを試みましたが、gem 'Rails', '3.2.12'。その後、もう一度入力しましたbundle installすべてのgemをgemfileに入れます。依存関係を確認するのに10分かかりました。 --verboseの出力は、HTTP successおよびHTTP redirection

Railsバージョン:Rails 3.2.12

Rubyバージョン:Ruby 1.9.3p392(2013-02-22リビジョン39386)

Rvm:rvm 1.18.18

バンドルバージョン:Bundlerバージョン1.3.2

私はすでに解決策を探していましたが、何も助けませんでした。

37
Robin Wieruch

Gemfilehttpshttpに変更すると、魔法がかかった。 Rails new APP --skip-bundleでプロジェクトを作成する前に

http経由でhttpsを使用することにはセキュリティ上の目的があることをここで警告します。最初にこのスレッドに記載されている他の回答を試してください。

40
Robin Wieruch

Bundlerだけ 更新を取得 gemの並列処理。

gem install bundler --pre 

現時点で可能な限り最善の方法で問題を解決します。

ソース

13
Mohit Jain

Bundler v1.12.xは2016年にリリースされ、一部のユーザーに バンドルのインストールの問題 を経験させました。

この場合、修正がリリースされるまで、v1.11.2のままにするのが最良のオプションです(高速です)。

Rubygems.org に移動して、さまざまなバージョンのbundler gemを試してみる価値があります。

既存のバンドラーのバージョンを確認し、既存のバージョンをアンインストールし、バージョン1.11.2の例をインストールします。

gem list | grep bundler

gem uninstall bundler -v existing-version-number

gem install bundler -v 1.11.2
5
Red

複数のジョブを使用することもできますが、少し改善される可能性があります

  bundle install --jobs 8

これは チュートリアル です

4
duykhoa

開発者に優しい方法は、より高速な代替手段でgemサーバーをオーバーライドすることです。

この場合、httpをミラーとして設定して、低速のhttps接続に対処できます。

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

これにより、元のGemfile設定を保持しながら、より高速なhttp接続を使用してgemを取得できます。

httpsに戻す場合:

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

bundle configにはデフォルトの--globalオプションがあります。 --localを指定して、構成をローカルアプリケーションフォルダーに制限できます。

設定はグローバル~/.bundle/configおよびローカル.bundle/configに保存されます。

2
Reza Hashemi

Bundler 1.12.5でこの問題が引き続き発生する場合は、 Rubyで使用されているOpenSSLを更新してみてください が必要な場合があります。

私にとってこれは次のようになりました:

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]

[... more 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が再び高速になります。

2
pjmorse

これは基本的な答えかもしれませんが、メインのRubyサイトから開発者ツールをインストールしてみてください。同様の問題があり、うまくいきました。時々、簡単な解決策が最適です!

幸運を!

0
Adamosch