我刚刚在虚拟机中运行的虚拟ubuntu 12.04 32bit上安装了RVM,Ruby,Rails等。现在我遇到的问题是,我的第一个rails项目bundle install
或bundle update
需要很长时间。即使我使用rails创建一个新项目(包括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
我宝石文件中的所有宝石。我花了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
我已经搜索了一个解决方案,但没有任何帮助。
答案 0 :(得分:40)
在我的 Gemfile 中将https
更改为http
的确如此神奇。在我必须使用rails new APP --skip-bundle
我想在此警告,通过http使用https有一个安全目的。首先尝试本主题中提到的其他答案。
答案 1 :(得分:13)
答案 2 :(得分:5)
Bundler v1.12.x于2016年发布,使一些用户体验slow bundle install issues。
在这种情况下,保留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
答案 3 :(得分:3)
答案 4 :(得分:2)
开发人员友好的方法是使用更快的替代方法覆盖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
。
答案 5 :(得分:2)
如果您仍然在使用Bundler 1.12.5时遇到此问题,则可能需要try updating the OpenSSL used by your 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 :(得分:0)
我知道这可能是基本答案,但尝试从主Ruby站点安装开发人员工具。我有一个类似的问题,它确实有效。有时简单的解决方案是最好的!
祝你好运!