簡體   English   中英

rubygems.org的官方鏡像?

[英]Any official mirrors of 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獲取? 它可能會減少服務器的負載,而且確保您的部署可以隨時工作(我知道,我可以將gems檢查到我的git存儲庫中,但我不喜歡這樣做)。

可能有Rubygems.org的鏡像,但我沒有嘗試過,也不知道他們是否擁有所有的寶石。 但是你的Gemfile有一個名為source的聲明,你可以告訴Bundler查看另一個鏡像。

然而,有一個寶石可以將所有寶石鏡像到本地系統,稱為rubygems-mirror

您可以通過Bundler :path命令在本地將某些gem安裝到您的git中。 因此,如果你想擁有一個本地副本,讓我們說你可以做到

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

然后,您在vendor/devise文件夾中克隆devise存儲庫並將其提交給Git。

如果你試圖用所有Gems做到這一點,那真的很無聊,因為Rails本身只涉及數十個寶石。 您可以查看RVM Gemsets,並且捆綁器有一種方法可以獲取所有寶石並將它們與您的應用程序捆綁在一起(對不起,您需要查閱文檔以獲取更多信息,因為我還不需要它)

如果寶石在那里可用,你也可以使用github。 Rubyforge非常受歡迎。 據我所知,您的gemfile必須正確聲明,如果您有單個ruby和/或rails安裝,請查看您是否與gem / s存在某些版本沖突。

這個寶石可能會解決capistrano-strategy-copy-bundled問題 用法很簡單:

config/deploy.rb:

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

您的所有寶石都打包在本地的tar存檔中,然后傳輸到服務器。 但是有一個問題,如果你想部署具有本機擴展的gems(如數據庫驅動程序,therubyracer等),你需要在兩台機器上擁有相同的體系結構和依賴庫的版本(如glibc)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM