2013-02-14 2 views
3

У меня в последнее время проблемы с развертыванием приложения, из-за ошибок, связанных с rubygems.org, как:Любые официальные зеркала 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 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)

Другое дело, когда у меня есть местная копия драгоценных камней, может ли передатчик передать их прямо на сервер, не получая от rubygems.org? Это может снизить нагрузку на серверы, и, кроме того, убедитесь, что ваше развертывание будет работать в любое время (я знаю, я могу проверить драгоценные камни в моем репозитории git, но я не люблю это делать).

ответ

0

Этот камень может решить проблему capistrano-strategy-copy-bundled. Использование довольно просто:

config/deploy.rb:

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

Все ваши драгоценные камни упакованы на местный в архив деготь, который впоследствии передается на сервер. Однако есть одна проблема: если вы хотите развернуть самолеты с родными расширениями (такими как драйверы баз данных, therubyracer и т. Д.), Вам нужно иметь такую ​​же архитектуру и версии зависимых библиотек (например, glibc) на обеих машинах.

0

Могут быть зеркала Rubygems.org, но я не пробовал их и не знаю, есть ли у них все драгоценные камни. Но есть объявление в вашем Gemfile под названием source, где вы можете сказать Bundler посмотреть на другое зеркало.

Существует драгоценный камень, однако, что может отражать все драгоценные камни в вашу локальную систему под названием rubygems-mirror

Вы можете установить некоторые драгоценные камни локально в вашу мерзавца с помощью команды Bundler :path. Так что, если вы хотите иметь локальную копию, скажем, изобрести что вы можете сделать

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

И затем клонировать репозиторий DEViSE внутри папки vendor/devise и совершить что Git.

Это действительно очень скучно, хотя, если вы попытаетесь сделать это со всеми драгоценными камнями, поскольку есть десятки драгоценных камней, которые участвуют только в Rails. Вы можете посмотреть на RVM Gemset для этого, и есть способ для связующего, чтобы получить все драгоценные камни и расслоить их с вашим приложением (извините, вам придется проконсультироваться с документом для получения дополнительной информации, поскольку мне это еще не нужно)

+0

Это может быть зеркало для кеширования, просто сохраняя копии недавно использованных драгоценных камней и отправляя другой запрос на rubygems.org. Мне не нравится полагаться только на один источник, большинство серверов расположены, вероятно, в США, было бы неплохо иметь что-то в Европе. Да, я не хочу проверять драгоценные камни на git-репозиторий, я бы предпочел упаковать все драгоценные камни из локального в один архив и отправить его на сервер. Это можно сделать с помощью JRuby (вы создаете только один файл 'war'). – Tombart

+0

Этот вопрос может помочь вам с этим: http: // stackoverflow.com/questions/8411045/how-to-build-a-rubygems-mirror-server Похоже на то, что .. – Tigraine

0

Вы также можете использовать github, если там есть драгоценный камень. Rubyforge очень популярен. Насколько я знаю, ваш gemfile должен быть объявлен правильно, посмотрите, есть ли у вас конфликт какой-либо версии с gem/s, если у вас установлена ​​одна рубина и/или рельсы.

+0

Тогда я бы опирался на доступность github, который ничего не решает. Конечно, у меня есть некоторые передовые версии драгоценных камней из github, но большинство из них - от rubygems.org. – Tombart

+0

Несколько месяцев назад я столкнулся с проблемой при установке databasedotcom-salseforce gem, и он был доступен как в ruby-forge, так и в github, ни один из них не работал, затем мне пришлось работать с gemfile, и у него были все проблемы. –

Смежные вопросы