Ruby on rails 有rubygems.org的官方镜像吗?
由于连接到rubygems.org的错误,我最近在部署应用程序时遇到了麻烦,例如:Ruby on rails 有rubygems.org的官方镜像吗?,ruby-on-rails,ruby,bundler,Ruby On Rails,Ruby,Bundler,由于连接到rubygems.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
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
gems系统很棒,但我认为它是一个单一的故障点,当它不可用时,你无法获得最新的补丁等。Debian存储库有一个庞大的网络,镜像可以根据地理位置进行选择。宝石也有类似的东西吗?如果有镜子,我如何确保那里的软件包没有被破坏?(最近rubygems.org上也发生了这种情况)
另一件事,当我有一个gems的本地副本时,bundler可以不从rubygems.org获取而直接将它们传输到服务器吗?它可能会减少服务器的负载,而且可以确保您的部署在任何时候都能正常工作(我知道,我可以将gems检查到我的git存储库中,但我不喜欢这样做)。可能有Rubygems.org的镜像,但我没有尝试过,也不知道它们是否拥有所有gems。 但是在您的
Gemfile
中有一个名为source
的声明,您可以告诉Bundler在另一面镜子上查看
然而,有一个gem可以将所有gem镜像到本地系统,名为
您可以通过Bundler:path
命令在本地将某些gems安装到git中。
所以,如果你想有一个本地副本,让我们说,设计你可以做
gem 'devise', :path => 'vendor/devise'
然后在供应商/designe
文件夹中克隆designe存储库,并将其提交给Git
但是如果你试着对所有的gem都这么做的话,会很快变得很无聊,因为Rails本身只涉及到几十个gem。您可以查看RVM Gemsets,bundler有一种方法可以获取所有gems并将它们与您的应用程序捆绑在一起(很抱歉,您需要咨询文档以了解更多信息,因为我还不需要这些信息)如果gem在那里可用,您也可以使用github。不过Rubyforge很受欢迎。据我所知,您的gemfile必须正确声明,如果您只安装了ruby和/或rails,请查看是否与gem/s存在版本冲突。此gem可能会解决此问题。用法非常简单:
config/deploy.rb:
require 'capistrano-strategy-copy-bundled'
set :deploy_via, :copy_bundled
您的所有gem都打包到本地tar归档中,然后再传输到服务器。但是,有一个问题,如果您想使用本机扩展(如数据库驱动程序、therubyracer等)部署GEM,则需要在两台机器上具有相同的体系结构和版本的依赖库(如glibc)。它可能是缓存镜像,只需保存最近使用的gems的副本,并将其他请求转发到rubygems.org。我不喜欢只依赖一个来源,大多数服务器可能位于美国,如果在欧洲有一些东西就好了。是的,我不想将gems签出到git存储库,我更喜欢将本地的所有gems打包到一个归档,然后发送到服务器。使用JRuby可以做到这一点(您只创建了一个
war
文件)。这个问题可能会帮助您做到这一点:看起来很彻底。然后我会依赖github的可用性,它解决不了任何问题。当然,我在github上有一些最新版本的gems,但大多数都是rubygems.org上的。几个月前,我在安装databasedotcom salseforce gem时遇到了一个问题,ruby forge和github都提供了gem,它们都不起作用,然后我不得不处理gem文件,它遇到了所有问题。