2013-02-14 56 views
3

我在最近的烦恼与部署应用程序,因为连接到rubygems.org一样的错误:ruby​​gems.org的任何官方镜像?

Fetching gem metadata from http://rubygems.org/ 
Error Bundler::HTTPError during request to dependency API 
Fetching full source index from http://rubygems.org/ 
Unfortunately, a fatal error has occurred. Please see the Bundler 
troubleshooting documentation at http://bit.ly/bundler-issues. Thanks!                   

~/.rvm/rubies/ruby-1.9.3-p374/lib/ruby/1.9.1/net/http.rb:762:in `initialize' 
Connection timed out - connect(2) 
Errno::ETIMEDOUT 

的宝石系统是伟大的,但我认为这是单一故障点,当它不可用你不能得到最新的补丁等。有一个庞大的Debian存储网络,可以在地理位置上选择镜像。宝石有类似的东西吗?如果有镜子,我怎么能确定那里的包没有妥协? (最近也发生在rubygems.org)

另一件事,当我有一个本地副本的宝石时,可以将bundler直接将它们传输到服务器而无需从rubygems.org获取?它可以减少服务器的负载,而且确保你的部署随时可以工作(我知道,我可以检查我的git仓库中的宝石,但我不喜欢这样做)。

回答

0

这个宝石可能会解决问题capistrano-strategy-copy-bundled。用法很简单:

config/deploy.rb:

require 'capistrano-strategy-copy-bundled' 
set :deploy_via, :copy_bundled 

你所有的宝石都挤满本地的tar归档文件,这是继传送到服务器。但是有一个问题,如果你想用本地扩展部署gem(比如数据库驱动,therubyracer等),你需要在两台机器上都有相同的架构和版本的依赖库(比如glibc)。

0

有可能是Rubygems.org的镜像,但我没有尝试过它们,不知道它们是否具有所有的宝石。 但您的Gemfile中有一个声明,名为source,您可以告诉Bundler查看其他镜像。

然而有一个宝石,可所有的宝石镜像到你叫rubygems-mirror

您可以安装某些宝石本地系统本地到您的git通过捆扎机:path命令。 所以,如果你想拥有让我们说设计,你可以做

gem 'devise', :path => 'vendor/devise' 

然后你克隆你的vendor/devise文件夹中的色器件库,并承诺,为的Git的本地副本。

虽然如果你试图用所有的宝石来做这件事,它真的很无聊,因为有几十个只包含在Rails本身中的宝石。您可以查看RVM Gemsets,并且有一种方法可以让bundler获取所有宝石并将其与您的应用程序捆绑在一起(对不起,您需要查阅文档以了解更多信息,因为我还不需要)

+0

它可能是一个缓存镜像,只保留最近使用过的宝石的副本并将其他请求转发给rubygems.org。我不喜欢只依赖一个来源,大多数服务器都可能位于美国,在欧洲有一些东西会很好。是的,我不希望将宝石检出到git存储库,我宁愿将本地所有宝石打包到一个归档文件,并将其发送到服务器。可以用JRuby来做到这一点(你只需创建一个'war'文件)。 – Tombart 2013-02-14 12:59:19

+0

这个问题可能会帮助你:http:// stackoverflow。com/questions/8411045 /如何建立一个rubygems镜像服务器似乎彻底.. – Tigraine 2013-02-14 13:04:35

0

如果宝石在那里可用,你也可以使用github。尽管Rubyforge非常受欢迎。据我所知,你的gemfile必须正确声明,如果你有单一的ruby和/或rails安装,看看你是否与gem/s有版本冲突。

+0

然后,我会依靠github的可用性,它不解决任何问题。当然,我有一些来自github的最新版本的gem,但其中大多数来自rubygems.org。 – Tombart 2013-02-14 13:03:29

+0

几个月前,我在安装databasedotcom-salseforce gem时遇到了一个问题,它在ruby-forge和github都可用,但它们都没有工作,于是我不得不解决gemfile问题,问题。 – 2013-02-14 13:10:04

相关问题