【发布时间】:2011-05-22 14:05:29
【问题描述】:
我可以将 gem 源重定向到我的 web 服务器路径,在那里我将下载所有必要的 gem 包并将其放在那里?我想通过“bundle install”使用那些
GemFile 将从http://rubygems.org 中获取它们,因为它在那里定义。 我通常会收到“请求过多”之类的错误(似乎是网络拥塞问题)。
是否可以将 gem 源路径重定向到我的本地服务器?
【问题讨论】:
我可以将 gem 源重定向到我的 web 服务器路径,在那里我将下载所有必要的 gem 包并将其放在那里?我想通过“bundle install”使用那些
GemFile 将从http://rubygems.org 中获取它们,因为它在那里定义。 我通常会收到“请求过多”之类的错误(似乎是网络拥塞问题)。
是否可以将 gem 源路径重定向到我的本地服务器?
【问题讨论】:
TL;DR:使用:path option。
假设您要从不可访问的资源安装 gem,例如:
# Gemfile
gem 'rails_admin', :git => 'git://github.com/sferik/rails_admin.git'
由于防火墙或其他原因,您无法使用 bundle install 安装 gem。
按照以下步骤操作:
下载文件(使用您可以使用的任何方法,例如使用 http_proxy,来自 https://github.com/sferik/rails_admin/zipball/master)
把下载的文件放到一个文件夹里,比如vendor/gems/rails_admin,里面的文件应该是这样的:
$ ls vendor/gems/rails_admin
app config Gemfile Gemfile31 lib LICENSE.md rails_admin.gemspec Rakefile README.md screenshots spec
现在让我们修改您的 Gemfile:
gem 'rails_admin', :path => "vendor/gems/rails_admin"
运行bundle,工作!
【讨论】:
你可以bundle install --local
来自here 更多详情
【讨论】:
您是否尝试像这样在您的 Gemfile 中声明额外的 Rubygems 源?
source "http://youserver.com"
【讨论】: