RubyGems 導覽選單
指南

從一個想法開始,以一個可分發的 Ruby 程式碼套件結束。

與其他使用者分享你的寶石程式碼的方式。

簡介

現在你已經建立你的寶石,你可能準備好與他人分享它。雖然建立私人寶石僅為了整理大型私人專案中的程式碼是完全合理的,但更常見的是建立寶石,以便它們可以被多個專案使用。本指南討論你可以與世界分享你的寶石的各種方式。

分享原始碼

從作者的角度來看,與其他開發人員分享寶石的最簡單方法是將其以原始碼形式進行分發。如果你將寶石的完整原始碼放在公開的 git 儲存庫中(通常,但不總是,這表示透過GitHub分享),則其他使用者可以使用Bundler 的 git 功能來安裝它。

例如,你可以透過在 Gemfile 中包含這行來在專案中安裝 wicked_pdf 寶石的最新程式碼

gem "wicked_pdf", :git => "git://github.com/mileszs/wicked_pdf.git"

直接從 git 儲存庫安裝 gem 是 Bundler 的功能,而不是 RubyGems 的功能。以這種方式安裝的 gem 在執行 gem list 時不會顯示。

提供你自己的寶石

如果您想要控制誰可以安裝 gem,或直接追蹤與 gem 相關的活動,那麼您需要設定私人 gem 伺服器。您可以 設定自己的 gem 伺服器,或使用商業服務,例如 Gemfury

RubyGems 2.2.0 和更新版本支援 allowed_push_host 元資料值,以將 gem 推送限制到單一主機。如果您正在發布私人 gem,您應該設定此值,以防止意外推送至 rubygems.org

Gem::Specification.new 'my_gem', '1.0' do |s|
  # ...
  s.metadata['allowed_push_host'] = 'https://gems.my-company.example'
end

請參閱 資源 指南,以取得私人 gem 伺服器的最新選項清單。

發布到 RubyGems.org

公開發行 gem 的最簡單方法是使用 RubyGems.org。發布到 RubyGems.org 的 gem 可以透過 gem install 指令或透過使用 Isolate 或 Bundler 等工具安裝。

首先,您需要在 RubyGems.org 上建立一個帳戶。請前往 註冊 頁面,並提供您控制的電子郵件地址、一個代號(使用者名稱)和密碼。

建立帳戶後,在推送 gem 時使用您的電子郵件和密碼。(RubyGems 會為您將憑證儲存在 ~/.gem/credentials,因此您只需要登入一次。)

請注意,您的 gem 名稱必須是唯一的。它不能使用已由已發布到 RubyGems.org 的其他 gem 使用的名稱。

要發布名為「squid-utils」的新 gem 的 0.1.0 版本

$ gem push squid-utils-0.1.0.gem
Enter your RubyGems.org credentials.
Don't have an account yet? Create one at https://rubygems.org/sign_up
   Email:   gem_author@example
Password:
Signed in.
Pushing gem to RubyGems.org...
Successfully registered gem: squid-utils (0.1.0)

恭喜!您的新 gem 現在已準備好供全世界任何 ruby 使用者安裝!

RubyGems.org 上的推送權限

如果您有多個 gem 維護者,您可以透過 gem owner 指令 讓您的維護者夥伴取得將 gem 推送至 rubygems.org 的權限。

寶石安全性

請參閱 安全性 頁面。