RubyGems 導覽選單
指南

每個 gem 命令的功能,以及如何使用它。

此參考文件是從 RubyGems 版本 3.5.9 自動產生的。

gem build

從 gemspec 建立 gem

用法

gem build GEMSPEC_FILE [options]

選項

  • --platform PLATFORM - 指定要建置的 gem 平台
  • --force - 略過規格驗證
  • --strict - 驗證規格時將警告視為錯誤
  • -o, --output FILE - 輸出具有指定檔名的 gem
  • -C PATH - 執行時,視為 gem build 已在 中啟動,而非目前工作目錄。

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

引數

  • GEMSPEC_FILE - 要為其建置 gem 的 gemspec 檔名

說明

build 指令可讓您從 ruby gemspec 建立 gem。

建置 gem 的最佳方式是使用 Rakefile 和 RubyGems 附帶的 Gem::PackageTask。

gemspec 可以手動建立,或使用 gem spec 從現有 gem 萃取。

$ gem unpack my_gem-1.0.gem
Unpacked gem: '.../my_gem-1.0'
$ gem spec my_gem-1.0.gem --ruby > my_gem-1.0/my_gem-1.0.gemspec
$ cd my_gem-1.0
[edit gem contents]
$ gem build my_gem-1.0.gemspec

可使用 output 選項將 gem 儲存至指定的檔名

$ gem build my_gem-1.0.gemspec --output=release.gem

gem cert

管理 RubyGems 憑證和簽署設定

用法

gem cert [options]

選項

  • -a, --add CERT - 新增受信任憑證。
  • -l, --list [FILTER] - 列出受信任憑證,其中主旨包含 FILTER
  • -r, --remove FILTER - 移除受信任憑證,其中主旨包含 FILTER
  • -b, --build EMAIL_ADDR - 為 EMAIL_ADDR 建立私密金鑰和自簽憑證
  • -C, --certificate CERT - --sign 的簽署憑證
  • -K, --private-key KEY - --sign--build 的金鑰
  • -A, --key-algorithm ALGORITHM - 選擇要使用哪個金鑰演算法來執行 --build
  • -s, --sign CERT - 使用 -K 中的金鑰和 -C 中的憑證簽署 CERT
  • -d, --days NUMBER_OF_DAYS - 憑證過期前的天數
  • -R, --re-sign - 使用 -K 中的金鑰重新簽署 -C 中的憑證

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

說明

cert 命令管理簽署金鑰和憑證,用於建立已簽署的 gem。您的簽署憑證和私密金鑰通常分別儲存在 ~/.gem/gem-public_cert.pem 和 ~/.gem/gem-private_key.pem。

建立用於簽署 gem 的憑證

gem cert --build you@example

如果您已經有 RSA 金鑰,或正在為現有金鑰建立新的憑證

gem cert --build you@example --private-key /path/to/key.pem

如果您希望信任某個憑證,可以使用下列指令將其新增至信任清單:

gem cert --add /path/to/cert.pem

您可以使用下列指令列出受信任的憑證:

gem cert --list

gem cert --list cert_subject_substring

如果您希望移除先前受信任的憑證

gem cert --remove cert_subject_substring

簽署其他 gem 作者的憑證

gem cert --sign /path/to/other_cert.pem

如需進一步了解如何簽署 gem,請參閱 ri Gem::Security

gem check

檢查 gem 儲存庫中新增或遺失的檔案

用法

gem check [OPTIONS] [GEMNAME ...] [options]

選項

  • -a, --[no-]alien - 回報 gem 儲存庫中「未管理」或流氓檔案
  • --[no-]doctor - 清除已解除安裝的 gem 和損毀的規格
  • --[no-]dry-run - 不移除檔案,只回報會移除哪些檔案
  • --[no-]gems - 檢查已安裝的 gem 是否有問題
  • -v, --version VERSION - 指定要檢查的 gem 版本

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

引數

  • GEMNAME - 要檢查的 gem 名稱

說明

check 命令可以列出並修復已安裝 gem 和規格的問題,並會清除已部分解除安裝的 gem。

gem cleanup

清除已安裝 gem 的舊版本

用法

gem cleanup [GEMNAME ...] [options]

選項

  • -n, -d, --dry-run - 不解除安裝 gem
  • -D, --[no-]check-development - 在解除安裝時檢查開發相依性(預設值:true)
  • --[no-]user-install - 在使用者的家目錄中清除,而不是在 GEM_HOME 中清除。

已棄用的選項

  • --dryrun - 不要解除安裝 gem

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

引數

  • GEMNAME - 要清理的 gem 名稱

說明

清理指令會移除 GEM_HOME 中不需要滿足依賴關係的 gem 舊版本。如果 gem 安裝在 GEM_PATH 的其他位置,清理指令不會將其刪除。

如果未命名任何 gem,則會清理 GEM_HOME 中的所有 gem。

gem contents

顯示已安裝 gem 的內容

用法

gem contents GEMNAME [GEMNAME ...] [options]

選項

  • -v, --version VERSION - 指定要顯示內容的 gem 版本
  • --all - 顯示所有 gem 的內容
  • -s, --spec-dir a,b,c - 在特定路徑下搜尋 gem
  • -l, --[no-]lib-only - 僅傳回 Gem 的 lib_dirs 中的檔案
  • --[no-]prefix - 不要包含已安裝的路徑前綴
  • --[no-]show-install-dir - 僅顯示 gem 安裝目錄

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

引數

  • GEMNAME - 要列出其內容的 gem 名稱

說明

內容指令會列出已安裝 gem 中的檔案。清單可以是完整檔名、不含已安裝目錄前綴的檔名,或僅限於可要求的檔案。

gem dependency

顯示已安裝 gem 的依賴關係

用法

gem dependency REGEXP [options]

選項

  • -v, --version VERSION - 指定要顯示其依賴關係的 gem 版本
  • --platform PLATFORM - 指定要顯示其依賴關係的 gem 的平台
  • --[no-]prerelease - 允許 gem 的預發行版本
  • -R, --[no-]reverse-dependencies - 在輸出中包含反向依賴關係
  • --pipe - 管道格式(名稱 --version 版本)

已棄用的選項

  • -u, --[no-]update-sources - 更新本機來源快取

本機/遠端選項

  • -l, --local - 將操作限制在 LOCAL 網域
  • -r, --remote - 將操作限制在 REMOTE 網域
  • -b, --both - 允許 LOCAL 和 REMOTE 操作
  • -B, --bulk-threshold COUNT - 切換到大量同步的閾值(預設值為 1000)
  • --clear-sources - 清除 gem 來源
  • -s, --source URL - 將 URL 附加到遠端 gem 來源清單
  • -p, --[no-]http-proxy [URL] - 使用 HTTP 代理進行遠端操作

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

引數

  • REGEXP - 顯示名稱以 REGEXP 開頭的 gem 的依賴關係

說明

依賴關係指令會列出特定 gem 所依賴的其他 gem。對於本機 gem,只能顯示反向依賴關係(哪些 gem 依賴於指定的 gem)。

依賴關係清單可以顯示為適合管道傳輸的格式,以便與其他指令搭配使用。

gem environment

顯示 RubyGems 環境資訊

用法

gem environment [arg] [options]

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

引數

  • home - 顯示安裝 gem 的路徑。別名:gemhome、gemdir、GEM_HOME
  • path - 顯示用於搜尋 gem 的路徑。別名:gempath、GEM_PATH
  • user_gemhome - 顯示在提供 --user-install 時安裝 gem 的路徑。別名:user_gemdir
  • version - 顯示 gem 格式版本
  • remotesources - 顯示遠端 gem 伺服器
  • platform - 顯示支援的 gem 平台
  • <omitted> - 顯示所有內容

說明

environment 指令可讓您查詢 rubygems 的組態,以用於 shell 指令碼或作為除錯輔助工具。

RubyGems 環境可透過命令列引數、gemrc 檔案、環境變數和內建預設值來控制。

命令列引數預設值和一些 RubyGems 預設值可設定在 ~/.gemrc 檔案中,供個別使用者使用,以及在 SYSTEM CONFIGURATION DIRECTORY 中的 gemrc 供所有使用者使用。這些檔案是 YAML 檔案,具有下列 YAML 鍵

:sources: A YAML array of remote gem repositories to install gems from
:verbose: Verbosity of the gem command. false, true, and :really are the
          levels
:update_sources: Enable/disable automatic updating of repository metadata
:backtrace: Print backtrace when RubyGems encounters an error
:gempath: The paths in which to look for gems
:disable_default_gem_server: Force specification of gem server host on push
<gem_command>: A string containing arguments for the specified gem command

範例

:verbose: false
install: --no-wrappers
update: --no-wrappers
:disable_default_gem_server: true

RubyGems 的預設本機儲存庫可使用 GEM_PATH 和 GEM_HOME 環境變數覆寫。GEM_HOME 設定要安裝到的預設儲存庫。GEM_PATH 允許搜尋多個本機儲存庫以尋找 gem。

如果您在代理伺服器之後,RubyGems 會使用 HTTP_PROXY、HTTP_PROXY_USER 和 HTTP_PROXY_PASS 環境變數來找出代理伺服器。

如果您想將 gem 推送到私人 gem 伺服器,RUBYGEMS_HOST 環境變數可設定為該伺服器的 URI。

如果您正在封裝 RubyGems,所有 RubyGems 的預設值都在 lib/rubygems/defaults.rb 中。您可以在 lib/rubygems/defaults/operating_system.rb 中覆寫這些預設值

gem exec

從 gem 執行指令

用法

gem exec [options --] COMMAND [args] [options]

選項

  • -v, --version VERSION - 指定要執行 gem 的版本
  • --[no-]prerelease - 允許安裝 gem 的預發行版本
  • -g, --gem GEM - 從指定的 gem 執行可執行檔

安裝/更新選項

  • --conservative 偏好最新安裝的版本,而非整體最新版本

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

引數

  • COMMAND - 要執行的可執行命令

說明

exec 命令處理安裝(如有需要)並執行寶石的可執行檔,無論該寶石是否已安裝。

exec 命令可視為執行 gem install 然後執行已安裝寶石的可執行檔的捷徑。

例如,gem exec rails new . 會在目前目錄執行 rails new .,而無需手動執行 gem install rails。此外,exec 命令確保使用寶石的最新版本(除非使用 --conservative 執行),且寶石不會安裝到與使用者安裝的寶石相同的寶石路徑。

gem fetch

下載寶石並放置在目前目錄

用法

gem fetch GEMNAME [GEMNAME ...] [options]

選項

  • -v, --version VERSION - 指定要擷取的寶石版本
  • --platform PLATFORM - 指定要擷取的寶石平台
  • --[no-]prerelease - 允許 gem 的預發行版本
  • --[no-]suggestions - 在找不到寶石時建議替代方案

本機/遠端選項

  • -B, --bulk-threshold COUNT - 切換到大量同步的閾值(預設值為 1000)
  • -p, --[no-]http-proxy [URL] - 使用 HTTP 代理進行遠端操作
  • -s, --source URL - 將 URL 附加到遠端 gem 來源清單
  • --clear-sources - 清除 gem 來源

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

引數

  • GEMNAME - 要下載的寶石名稱

說明

fetch 命令擷取可儲存以供稍後使用或解壓以檢查其內容的寶石檔案。

請參閱 build 命令說明,以取得解壓寶石、修改寶石,然後重新封裝寶石的範例。

gem generate_index

為寶石伺服器目錄產生索引檔案(需要 rubygems-generate_index)

用法

gem generate_index [options]

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

說明

generate_index 命令已移至 rubygems-generate_index 寶石。

gem help

提供「gem」命令的說明

用法

gem help ARGUMENT [options]

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

gem info

顯示指定寶石的資訊

用法

gem info GEMNAME [options]

選項

  • -i, --[no-]installed - 檢查已安裝的寶石
  • -I - 等同於 --no-installed
  • -v, --version VERSION - 指定要查詢的寶石版本,以搭配 --installed 使用
  • --[no-]versions - 僅顯示寶石名稱
  • -a, --all - 顯示所有寶石版本
  • -e, --exact - 要查詢的寶石名稱與提供的字串相符
  • --[no-]prerelease - 顯示預發行版本

已棄用的選項

  • -u, --[no-]update-sources - 更新本機來源快取

本機/遠端選項

  • -l, --local - 將操作限制在 LOCAL 網域
  • -r, --remote - 將操作限制在 REMOTE 網域
  • -b, --both - 允許 LOCAL 和 REMOTE 操作
  • -B, --bulk-threshold COUNT - 切換到大量同步的閾值(預設值為 1000)
  • --clear-sources - 清除 gem 來源
  • -s, --source URL - 將 URL 附加到遠端 gem 來源清單
  • -p, --[no-]http-proxy [URL] - 使用 HTTP 代理進行遠端操作

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

引數

  • GEMNAME - 要列印其資訊的寶石名稱

說明

info 會列印寶石的資訊,例如名稱、描述、網站、授權和已安裝路徑

gem install

將寶石安裝到本機儲存庫

用法

gem install [options] GEMNAME [GEMNAME ...] -- --build-flags [options]

選項

  • --platform PLATFORM - 指定要安裝的寶石平台
  • -v, --version 版本 - 指定要安裝的 gem 版本
  • --[no-]prerelease - 允許安裝 gem 的預發行版本。(僅限於列出的 gem)

已棄用的選項

  • -u, --[no-]update-sources - 更新本機來源快取

安裝/更新選項

  • -i, --install-dir 目錄 - 取得已安裝 gem 的 Gem 儲存庫目錄
  • -n, --bindir 目錄 - 安裝 gem 時放置執行檔的目錄
  • --document [類型] - 為已安裝的 gem 產生文件,列出您想要產生的文件類型。例如:rdoc、ri
  • --build-root 目錄 - 暫時安裝根目錄。對於建置套件很有用。安裝遠端 gem 時請勿使用此選項。
  • --vendor - 將 gem 安裝到 vendor 目錄中。僅供 gem 重新包裝者使用。
  • -N, --no-document - 停用文件產生
  • -E, --[no-]env-shebang - 重新撰寫已安裝指令碼中的 shebang 行,以使用 /usr/bin/env
  • -f, --[no-]force - 強制安裝 gem,略過相依性檢查
  • -w, --[no-]wrappers - 對執行檔使用 bin wrapper,dosish 平台上不適用
  • -P, --trust-policy 政策 - 指定 gem 信任政策
  • --ignore-dependencies - 不要安裝任何所需的相依 gem
  • --[no-]format-executable - 使已安裝的執行檔名稱與 Ruby 相符。如果 Ruby 是 ruby18,foo_exec 將會是 foo_exec18
  • --[no-]user-install - 安裝在使用者的家目錄中,而不是 GEM_HOME 中。
  • --development - 安裝額外的開發相依性
  • --development-all - 安裝所有 gem 的開發相依性(包括開發相依性本身)
  • --conservative - 不要嘗試升級已符合版本需求的 gem
  • --[no-]minimal-deps - 不要升級任何已符合版本需求的相依性
  • --[no-]post-install-message - 列印安裝後訊息
  • -g, --file [檔案] - 從 gem 相依性 API 檔案中讀取並安裝列出的 gem
  • --without 群組 - 從 gem 相依性檔案中安裝時,略過指定的群組(以逗號分隔)
  • --default - 將 gem 的完整規格新增到 specifications/default 中,並僅提取其 bin
  • --explain - 顯示會安裝哪些 gem,而不是安裝它們
  • --[no-]lock - 建立鎖定檔(與 -g/--file 一起使用時)
  • --[no-]suggestions - 在找不到寶石時建議替代方案

本機/遠端選項

  • -l, --local - 將操作限制在 LOCAL 網域
  • -r, --remote - 將操作限制在 REMOTE 網域
  • -b, --both - 允許 LOCAL 和 REMOTE 操作
  • -B, --bulk-threshold COUNT - 切換到大量同步的閾值(預設值為 1000)
  • --clear-sources - 清除 gem 來源
  • -s, --source URL - 將 URL 附加到遠端 gem 來源清單
  • -p, --[no-]http-proxy [URL] - 使用 HTTP 代理進行遠端操作

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

引數

  • 寶石名稱 - 要安裝的寶石名稱

說明

install 指令會將本機或遠端的寶石安裝到寶石存放庫中。

對於具有可執行檔的寶石,Ruby 預設會在可執行檔目錄中安裝一個包裝檔案。這可以使用 –no-wrappers 選項覆寫。包裝檔允許您使用 版本在備用寶石版本之間進行選擇。

例如,rake _0.7.3_ --version 會執行 Rake 版本 0.7.3,即使也安裝了較新版本。

寶石相依性檔案

當存在寶石相依性檔案(gem.deps.rb、Gemfile 或 Isolate)時,RubyGems 可以使用 gem install -g 在多個環境中安裝一組一致的寶石。如果沒有提供明確的檔案,RubyGems 會嘗試在目前目錄中尋找一個。

當 RUBYGEMS_GEMDEPS 環境變數設定為寶石相依性檔案時,該檔案中的寶石會在啟動時啟用。將其設定為特定檔案名稱或 “-“,讓 RubyGems 自動從目前目錄向上尋找寶石相依性檔案。

注意:在多使用者系統上啟用自動偵測,可能會在您無法控制的目錄中執行任意程式碼。

擴充安裝失敗

如果擴充在寶石安裝期間無法編譯,寶石規格不會寫入,但寶石會保持解壓縮狀態在存放庫中。您可能需要指定函式庫標頭和函式庫的路徑才能繼續。您可以透過在 RubyGems 選項和擴充建置選項之間加入 – 來執行此動作

$ gem install some_extension_gem
[build fails]
Gem files will remain installed in \
/path/to/gems/some_extension_gem-1.0 for inspection.
Results logged to /path/to/gems/some_extension_gem-1.0/gem_make.out
$ gem install some_extension_gem -- --with-extension-lib=/path/to/lib
[build succeeds]
$ gem list some_extension_gem

*** LOCAL GEMS ***

some_extension_gem (1.0)
$

如果您透過編輯寶石檔案修正編譯錯誤,您需要手動撰寫規格。例如

$ gem install some_extension_gem
[build fails]
Gem files will remain installed in \
/path/to/gems/some_extension_gem-1.0 for inspection.
Results logged to /path/to/gems/some_extension_gem-1.0/gem_make.out
$ [cd /path/to/gems/some_extension_gem-1.0]
$ [edit files or what-have-you and run make]
$ gem spec ../../cache/some_extension_gem-1.0.gem --ruby > \
           ../../specifications/some_extension_gem-1.0.gemspec
$ gem list some_extension_gem

*** LOCAL GEMS ***

some_extension_gem (1.0)
$

指令別名

您可以使用 i 指令取代 install

$ gem i GEMNAME

gem 清單

顯示名稱符合 REGEXP 的本機寶石

用法

gem list [REGEXP ...] [options]

選項

  • -i, --[no-]installed - 檢查已安裝的寶石
  • -I - 等同於 --no-installed
  • -v, --version VERSION - 指定要列出的寶石版本,供 --installed 使用
  • -d, --[no-]details - 顯示寶石的詳細資訊
  • --[no-]versions - 僅顯示寶石名稱
  • -a, --all - 顯示所有寶石版本
  • -e, --exact - 要查詢的寶石名稱與提供的字串相符
  • --[no-]prerelease - 顯示預發行版本

已棄用的選項

  • -u, --[no-]update-sources - 更新本機來源快取

本機/遠端選項

  • -l, --local - 將操作限制在 LOCAL 網域
  • -r, --remote - 將操作限制在 REMOTE 網域
  • -b, --both - 允許 LOCAL 和 REMOTE 操作
  • -B, --bulk-threshold COUNT - 切換到大量同步的閾值(預設值為 1000)
  • --clear-sources - 清除 gem 來源
  • -s, --source URL - 將 URL 附加到遠端 gem 來源清單
  • -p, --[no-]http-proxy [URL] - 使用 HTTP 代理進行遠端操作

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

引數

  • REGEXP - 在寶石名稱中尋找的正規表示法

說明

list 指令用於檢視您已在本機安裝的寶石。

「-details」選項會顯示其他詳細資料,包括摘要、首頁、作者、不同版本寶石的位置。

若要搜尋遠端寶石,請使用「search」指令。

gem 鎖定

產生寶石鎖定清單

用法

gem lock GEMNAME-VERSION [GEMNAME-VERSION ...] [options]

選項

  • -s, --[no-]strict - 如果無法滿足相依性,則會失敗

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

引數

  • GEMNAME - 要鎖定的寶石名稱
  • VERSION - 要鎖定的寶石版本

說明

「lock」指令會產生一個「+gem+」陳述清單,用來鎖定命令列中提供的寶石版本。它會在需求清單中指定確切版本,以確保載入的寶石始終一致。系統會產生所有受影響寶石的完整遞迴搜尋。

範例

gem lock rails-1.0.0 > lockdown.rb

將產生在 lockdown.rb 中

require "rubygems"
gem 'rails', '= 1.0.0'
gem 'rake', '= 0.7.0.1'
gem 'activesupport', '= 1.2.5'
gem 'activerecord', '= 1.13.2'
gem 'actionpack', '= 1.11.2'
gem 'actionmailer', '= 1.1.5'
gem 'actionwebservice', '= 1.0.0'

只要從應用程式載入 lockdown.rb,就能確保載入目前的版本。請務必在任何其他「require」陳述之前載入 lockdown.rb。

請注意,Rails 1.0.0 僅需要使用 Rake 0.6.2 或更新版本。Rake-0.7.0.1 是滿足該條件的最新已安裝版本,因此我們將其鎖定至確切版本。

gem 鏡像

鏡像所有寶石檔案(需要 rubygems-mirror)

用法

gem mirror [options]

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

說明

「mirror」指令已移至 rubygems-mirror 寶石。

gem 開啟

在編輯器中開啟寶石來源

用法

gem open [-e COMMAND] GEMNAME [options]

選項

  • -e, --editor COMMAND - 將 COMMAND 前置於寶石路徑。可用於指定編輯器。
  • -v, --version VERSION - 開啟特定寶石版本

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

引數

  • GEMNAME - 要在編輯器中開啟的寶石名稱

說明

      The open command opens gem in editor and changes current path
      to gem's source directory.
      Editor command can be specified with -e option, otherwise rubygems
      will look for editor in $EDITOR, $VISUAL and $GEM_EDITOR variables.

gem 過期

顯示所有需要更新的寶石

用法

gem outdated [options]

選項

  • --platform PLATFORM - 指定要過時的寶石平台

已棄用的選項

  • -u, --[no-]update-sources - 更新本機來源快取

本機/遠端選項

  • -l, --local - 將操作限制在 LOCAL 網域
  • -r, --remote - 將操作限制在 REMOTE 網域
  • -b, --both - 允許 LOCAL 和 REMOTE 操作
  • -B, --bulk-threshold COUNT - 切換到大量同步的閾值(預設值為 1000)
  • --clear-sources - 清除 gem 來源
  • -s, --source URL - 將 URL 附加到遠端 gem 來源清單
  • -p, --[no-]http-proxy [URL] - 使用 HTTP 代理進行遠端操作

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

說明

「outdated」指令會列出您可能希望升級至較新版本的寶石。

您可以使用「dependency」指令檢查相依性不符,並使用「update」或「install」指令更新寶石。

gem 所有者

管理推播伺服器上寶石的所有者

用法

gem owner GEM [options]

選項

  • -k, --key KEYNAME - 使用 ~/.local/share/gem/credentials 中提供的 API 金鑰
  • --otp CODE - 多重驗證的數字代碼您也可以使用環境變數 GEM_HOST_OTP_CODE
  • -a, --add NEW_OWNER - 透過使用者識別碼新增所有者
  • -r, --remove OLD_OWNER - 透過使用者識別碼移除所有者
  • --host HOST - 使用另一個與 gemcutter 相容的主機(例如:https://rubygems.org)

本機/遠端選項

  • -p, --[no-]http-proxy [URL] - 使用 HTTP 代理進行遠端操作

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

引數

  • GEM - 要管理其擁有者的 gem

說明

owner 指令讓您在推播伺服器上新增和移除 gem 的擁有者(預設為 https://rubygems.org)。如果多次提供旗標,則可以同時新增或移除多個擁有者。

支援的使用者識別碼會依推播伺服器而定。對於 rubygems.org,即使使用者識別碼欄位稱為「email」,但電子郵件和處理程式都受支援。

gem 的擁有者有權限推播新版本、取消現有版本或編輯 gem 的 HTML 頁面。請小心您將推播權限授予哪些人。

gem 原始

從 gem 快取中找到的檔案,將已安裝的 gem 還原為原始狀態

用法

gem pristine [GEMNAME ...] [options]

選項

  • --all - 將所有已安裝的 gem 還原為原始狀態
  • --skip=gem_name - 用於 --all,如果名稱 == gem_name,則略過
  • --[no-]extensions - 除了常規 gem 之外,還原具有擴充功能的 gem
  • --only-missing-extensions - 僅還原具有遺失擴充功能的 gem
  • --only-executables - 僅還原可執行檔
  • --only-plugins - 僅還原外掛程式
  • -E, --[no-]env-shebang - 使用 /usr/bin/env 的 shebang 重寫可執行檔
  • -i, --install-dir DIR - 安裝 binstubs 和外掛程式的 Gem 存放庫
  • -n, --bindir DIR - 可執行檔所在目錄
  • -v, --version VERSION - 指定要還原為原始狀態的 gem 版本

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

引數

  • GEMNAME - 要還原為原始狀態的 gem(除非為 –all)

說明

pristine 指令會將已安裝的 gem 與其快取 .gem 檔案的內容進行比較,並還原任何與快取 .gem 副本不符的檔案。

如果您已修改已安裝的 gem,pristine 指令會將它們還原。所有擴充功能都會重建,所有 gem 的 bin stub 都會在檢查修改後重新產生。

如果找不到快取的 gem,它將會下載。

如果提供了 –no-extensions,pristine 將不會嘗試還原帶有擴充功能的 gem。

如果給出了 –extensions(但沒有 –all 或 gem 名稱),只有帶有擴充功能的 gem 會被還原。

gem 推送

將 gem 推送到 gem 伺服器

用法

gem push GEM [options]

選項

  • -k, --key KEYNAME - 使用 ~/.local/share/gem/credentials 中提供的 API 金鑰
  • --otp CODE - 多重驗證的數字代碼您也可以使用環境變數 GEM_HOST_OTP_CODE
  • --host HOST - 推送到另一個與 gemcutter 相容的主機(例如:https://rubygems.org)

本機/遠端選項

  • -p, --[no-]http-proxy [URL] - 使用 HTTP 代理進行遠端操作

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

引數

  • GEM - 要推上傳的已建置 gem

說明

push 指令會將 gem 上傳到 push 伺服器(預設為 https://rubygems.org)並將它新增到索引。

可以使用 yank 指令從索引中移除 gem 並從伺服器中刪除它。有關進一步討論,請參閱 yank 指令的說明。

push 指令會使用 ~/.gem/credentials 向伺服器進行驗證,但您可以使用 RubyGems 環境變數 GEM_HOST_API_KEY 設定 API 金鑰進行驗證。

gem 查詢

查詢本地或遠端儲存庫中的 gem 資訊

用法

gem query [options]

選項

  • -n, --name-matches REGEXP - 要查詢的 gem 名稱與提供的 REGEXP 相符
  • -i, --[no-]installed - 檢查已安裝的寶石
  • -I - 等同於 --no-installed
  • -v, --version VERSION - 指定要查詢的 gem 版本,與 --installed 搭配使用
  • -d, --[no-]details - 顯示寶石的詳細資訊
  • --[no-]versions - 僅顯示寶石名稱
  • -a, --all - 顯示所有寶石版本
  • -e, --exact - 要查詢的寶石名稱與提供的字串相符
  • --[no-]prerelease - 顯示預發行版本

已棄用的選項

  • -u, --[no-]update-sources - 更新本機來源快取

本機/遠端選項

  • -l, --local - 將操作限制在 LOCAL 網域
  • -r, --remote - 將操作限制在 REMOTE 網域
  • -b, --both - 允許 LOCAL 和 REMOTE 操作
  • -B, --bulk-threshold COUNT - 切換到大量同步的閾值(預設值為 1000)
  • --clear-sources - 清除 gem 來源
  • -s, --source URL - 將 URL 附加到遠端 gem 來源清單
  • -p, --[no-]http-proxy [URL] - 使用 HTTP 代理進行遠端操作

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

說明

query 指令是 list 和 search 指令的基礎。

您真的應該改用 list 和 search 指令。此指令太難使用了。

gem rdoc

為預先安裝的 gem 產生 RDoc

用法

gem rdoc [args] [options]

選項

  • --all - 為所有已安裝的 gem 產生 RDoc/RI 文件
  • --[no-]rdoc - 產生 RDoc HTML
  • --[no-]ri - 產生 RI 資料
  • --[no-]overwrite - 覆寫已安裝的文件
  • -v, --version VERSION - 指定要產生 rdoc 的 gem 版本

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

引數

  • GEMNAME - 要為其產生文件的 gem(除非使用 –all)

說明

rdoc 指令會為已安裝的 gem 建置文件。預設只會使用 rdoc 建置文件,但可以透過 rubygems 外掛程式和 Gem.post_installs 掛鉤建置其他類型的文件。

使用 –overwrite 強制重新建置文件。

gem 重新建置

嘗試重現 gem 的建置。

用法

gem rebuild GEM_NAME GEM_VERSION [options]

選項

  • --diff - 如果檔案不符,使用 diffoscope 比較它們。
  • --force - 略過規格驗證。
  • --strict - 在驗證規格時將警告視為錯誤。
  • --source GEM_SOURCE - 指定下載 gem 的來源。
  • --original GEM_FILE - 指定要比較本機檔案(而不是下載它)。
  • --gemspec GEMSPEC_FILE - 指定 gemspec 檔案名稱。
  • -C PATH - 執行時,視為 gem build 已在 中啟動,而非目前工作目錄。

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

引數

  • GEM_NAME - 寶石伺服器上的寶石名稱
  • GEM_VERSION - 您嘗試重新建置的寶石版本

說明

重新建置指令讓您可以(嘗試)從 ruby gemspec 複製寶石建置。

此指令假設 gemspec 可以使用 gem build 指令建置。如果您在寶石的建置/發佈程序中使用任何 gem buildrake buildrake release,則它是一個潛在候選。

您需要比對使用的 RubyGems 版本,因為它包含在寶石的元資料中。

如果寶石包含鎖定檔(例如 Gemfile.lock)和類似檔案,則複製建置將需要更多工作。例如,它可能需要更精確比對的 Ruby 和/或 Bundler 版本。

顯示名稱符合 REGEXP 的遠端寶石

用法

gem search [REGEXP] [options]

選項

  • -i, --[no-]installed - 檢查已安裝的寶石
  • -I - 等同於 --no-installed
  • -v, --version VERSION - 指定要搜尋的寶石版本,以搭配 --installed 使用
  • -d, --[no-]details - 顯示寶石的詳細資訊
  • --[no-]versions - 僅顯示寶石名稱
  • -a, --all - 顯示所有寶石版本
  • -e, --exact - 要查詢的寶石名稱與提供的字串相符
  • --[no-]prerelease - 顯示預發行版本

已棄用的選項

  • -u, --[no-]update-sources - 更新本機來源快取

本機/遠端選項

  • -l, --local - 將操作限制在 LOCAL 網域
  • -r, --remote - 將操作限制在 REMOTE 網域
  • -b, --both - 允許 LOCAL 和 REMOTE 操作
  • -B, --bulk-threshold COUNT - 切換到大量同步的閾值(預設值為 1000)
  • --clear-sources - 清除 gem 來源
  • -s, --source URL - 將 URL 附加到遠端 gem 來源清單
  • -p, --[no-]http-proxy [URL] - 使用 HTTP 代理進行遠端操作

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

引數

  • REGEXP - 在寶石名稱中搜尋的正規表示法

說明

搜尋指令會顯示名稱符合指定正規表示法的遠端寶石。

–details 選項會顯示寶石的更多詳細資料,但會花費較長的時間完成,因為它必須從索引中個別下載資訊。

若要列出本機寶石,請使用 list 指令。

gem 伺服器

啟動主機 RDoc 的網路伺服器(需要 rubygems-server)

用法

gem server [options]

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

說明

伺服器指令已移至 rubygems-server 寶石。

gem 登入

登入任何相容於 gemcutter 的主機。它預設為 https://rubygems.org

用法

gem signin [options]

選項

  • --host HOST - 推送到另一個相容於 gemcutter 的主機
  • --otp CODE - 多重驗證的數字代碼您也可以使用環境變數 GEM_HOST_OTP_CODE

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

說明

登入指令會為推播伺服器執行主機登入(預設為 https://rubygems.org)。主機可以透過主機旗標提供,或可以從提供的寶石中推論。主機解析與推播指令的解析策略相符。

gem 登出

從所有目前的階段登出。

用法

gem signout [options]

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

說明

signout 指令用於從所有目前的階段登出,讓您可以使用不同的憑證組登入。

gem 來源

管理 RubyGems 用於搜尋寶石的來源和快取檔案

用法

gem sources [options]

選項

  • -a, --add SOURCE_URI - 新增來源
  • -l, --list - 列出來源
  • -r, --remove SOURCE_URI - 移出來源
  • -c, --clear-all - 移出所有來源(清除快取)
  • -u, --update - 更新來源快取
  • -f, --[no-]force - 不顯示任何確認提示,並假裝總是回答「是」

本機/遠端選項

  • -p, --[no-]http-proxy [URL] - 使用 HTTP 代理進行遠端操作

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

說明

RubyGems 從您已設定的來源擷取寶石(儲存在 ~/.gemrc 中)。

預設來源為 https://rubygems.org,但您可能已設定其他來源。本指南將協助您更新來源或設定自己使用自己的寶石伺服器。

不帶任何引數時,來源會列出您目前設定的來源

$ gem sources
*** CURRENT SOURCES ***

https://rubygems.org

這可能會列出多個來源或非 RubyGems 來源。您可能在之前設定過它們,或有一個舊的 ~/.gemrc。如果您有自己不認識的來源,您應該將它們移除。

RubyGems 已設定透過以下網址提供寶石

  • http://gems.rubyforge.org(RubyGems 1.3.5 及更早版本)
  • http://rubygems.org(RubyGems 1.3.6 至 1.8.30,以及 2.0.0)
  • https://rubygems.org(RubyGems 2.0.1 及更新版本)

由於這些來源全部指向同一組寶石,因此您在清單中只需要其中一個。建議使用 https://rubygems.org,因為它會為寶石下載帶來 SSL 連線的保護。

若要新增來源,請使用 –add 引數

  $ gem sources --add https://rubygems.org
  https://rubygems.org added to sources

RubyGems 會檢查在新增之前是否可以從提供的來源安裝寶石。

若要移除來源,請使用 –remove 引數

  $ gem sources --remove https://rubygems.org/
  https://rubygems.org/ removed from sources

gem 規格

顯示寶石規格(以 yaml 格式)

用法

gem specification [GEMFILE] [FIELD] [options]

選項

  • -v, --version VERSION - 指定要檢查的寶石版本
  • --platform PLATFORM - 指定要規格的寶石平台
  • --[no-]prerelease - 允許 gem 的預發行版本
  • --all - 輸出寶石所有版本的規格
  • --ruby - 輸出 Ruby 格式
  • --yaml - 輸出 YAML 格式
  • --marshal - 輸出 Marshal 格式

已棄用的選項

  • -u, --[no-]update-sources - 更新本機來源快取

本機/遠端選項

  • -l, --local - 將操作限制在 LOCAL 網域
  • -r, --remote - 將操作限制在 REMOTE 網域
  • -b, --both - 允許 LOCAL 和 REMOTE 操作
  • -B, --bulk-threshold COUNT - 切換到大量同步的閾值(預設值為 1000)
  • --clear-sources - 清除 gem 來源
  • -s, --source URL - 將 URL 附加到遠端 gem 來源清單
  • -p, --[no-]http-proxy [URL] - 使用 HTTP 代理進行遠端操作

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

引數

  • GEMFILE - 要顯示其 gemspec 的寶石名稱
  • FIELD - 要顯示的 gemspec 欄位名稱

說明

specification 指令讓您可以從 gem 中萃取規格以進行檢查。

規格可以 YAML、ruby 或 Marshal 格式輸出。

規格中的特定欄位可以用 YAML 格式萃取

$ gem spec rake summary
--- Ruby based make-like utility.
...

gem 過期

列出 gem 和存取時間

用法

gem stale [options]

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

說明

stale 指令會列出已安裝 gem 中所有檔案的最新存取時間。

您可以使用此指令找出您不再使用的 gem 和 gem 版本。

gem 解除安裝

從本機儲存庫解除安裝 gem

用法

gem uninstall GEMNAME [GEMNAME ...] [options]

選項

  • -a, --[no-]all - 解除安裝所有符合的版本
  • -I, --[no-]ignore-dependencies - 解除安裝時忽略相依性需求
  • -D, --[no-]check-development - 解除安裝時檢查開發相依性 (預設值:false)
  • -x, --[no-]executables - 解除安裝適用的可執行檔,無需確認
  • -i, --install-dir DIR - 要從中解除安裝 gem 的目錄
  • -n, --bindir DIR - 要從中移除可執行檔的目錄
  • --[no-]user-install - 除了 GEM_HOME 之外,也從使用者的家目錄解除安裝。
  • --[no-]format-executable - 假設可執行檔名稱與 Ruby 的字首和字尾相符。
  • --[no-]force - 解除安裝指定 gem 的所有版本,忽略相依性
  • --[no-]abort-on-dependent - 避免解除安裝其他 gem 相依的 gem。
  • -v, --version VERSION - 指定要解除安裝的 gem 版本
  • --platform PLATFORM - 指定要解除安裝的 gem 的平台
  • --vendor - 從供應商目錄解除安裝 gem。僅供 gem 重新包裝者使用。

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

引數

  • GEMNAME - 要解除安裝的 gem 名稱

說明

uninstall 指令會移除先前已安裝的 gem。

如果您嘗試解除安裝現有寶石的相依性寶石,RubyGems 會要求確認。您可以使用 –ignore-dependencies 選項來略過此檢查。

gem 解壓縮

將已安裝的寶石解壓縮到目前的目錄

用法

gem unpack GEMNAME [options]

選項

  • --target=DIR - 解壓縮的目標目錄
  • --spec - 解壓縮寶石規格
  • -v, --version VERSION - 指定要解壓縮的寶石版本

安裝/更新選項

  • -P, --trust-policy 政策 - 指定 gem 信任政策

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

引數

  • GEMNAME - 要解壓縮的寶石名稱

說明

unpack 指令讓您可以檢查寶石的內容或修改它們,以協助診斷錯誤。

您可以使用 RUBYLIB 環境變數或 -I 將解壓縮寶石的內容新增到載入路徑。

$ gem unpack my_gem
Unpacked gem: '.../my_gem-1.0'
[edit my_gem-1.0/lib/my_gem.rb]
$ ruby -Imy_gem-1.0/lib -S other_program

您可以使用 build 指令重新封裝已解壓縮的寶石。請參閱 build 指令說明,以取得範例。

gem 更新

將已安裝的寶石更新至最新版本

用法

gem update GEMNAME [GEMNAME ...] [options]

選項

  • --system [VERSION] - 更新 RubyGems 系統軟體
  • --platform PLATFORM - 指定要更新的寶石平台
  • --[no-]prerelease - 允許寶石的預發行版本作為更新目標

已棄用的選項

  • -u, --[no-]update-sources - 更新本機來源快取

安裝/更新選項

  • -i, --install-dir 目錄 - 取得已安裝 gem 的 Gem 儲存庫目錄
  • -n, --bindir 目錄 - 安裝 gem 時放置執行檔的目錄
  • --document [類型] - 為已安裝的 gem 產生文件,列出您想要產生的文件類型。例如:rdoc、ri
  • --build-root 目錄 - 暫時安裝根目錄。對於建置套件很有用。安裝遠端 gem 時請勿使用此選項。
  • --vendor - 將 gem 安裝到 vendor 目錄中。僅供 gem 重新包裝者使用。
  • -N, --no-document - 停用文件產生
  • -E, --[no-]env-shebang - 重新撰寫已安裝指令碼中的 shebang 行,以使用 /usr/bin/env
  • -f, --[no-]force - 強制安裝 gem,略過相依性檢查
  • -w, --[no-]wrappers - 對執行檔使用 bin wrapper,dosish 平台上不適用
  • -P, --trust-policy 政策 - 指定 gem 信任政策
  • --ignore-dependencies - 不要安裝任何所需的相依 gem
  • --[no-]format-executable - 使已安裝的執行檔名稱與 Ruby 相符。如果 Ruby 是 ruby18,foo_exec 將會是 foo_exec18
  • --[no-]user-install - 安裝在使用者的家目錄中,而不是 GEM_HOME 中。
  • --development - 安裝額外的開發相依性
  • --development-all - 安裝所有 gem 的開發相依性(包括開發相依性本身)
  • --conservative - 不要嘗試升級已符合版本需求的 gem
  • --[no-]minimal-deps - 不要升級任何已符合版本需求的相依性
  • --[no-]post-install-message - 列印安裝後訊息
  • -g, --file [檔案] - 從 gem 相依性 API 檔案中讀取並安裝列出的 gem
  • --without 群組 - 從 gem 相依性檔案中安裝時,略過指定的群組(以逗號分隔)
  • --default - 將 gem 的完整規格新增到 specifications/default 中,並僅提取其 bin
  • --explain - 顯示會安裝哪些 gem,而不是安裝它們
  • --[no-]lock - 建立鎖定檔(與 -g/--file 一起使用時)
  • --[no-]suggestions - 在找不到寶石時建議替代方案

本機/遠端選項

  • -l, --local - 將操作限制在 LOCAL 網域
  • -r, --remote - 將操作限制在 REMOTE 網域
  • -b, --both - 允許 LOCAL 和 REMOTE 操作
  • -B, --bulk-threshold COUNT - 切換到大量同步的閾值(預設值為 1000)
  • --clear-sources - 清除 gem 來源
  • -s, --source URL - 將 URL 附加到遠端 gem 來源清單
  • -p, --[no-]http-proxy [URL] - 使用 HTTP 代理進行遠端操作

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

引數

  • GEMNAME - 要更新的寶石名稱

說明

update 指令會將您的寶石更新至最新版本。

update 指令不會移除先前的版本。請使用 cleanup 指令移除舊版本。

gem 哪裡

找出您可以需要的程式庫檔案位置

用法

gem which FILE [FILE ...] [options]

選項

  • -a, --[no-]all - 顯示所有符合的檔案
  • -g, --[no-]gems-first - 在非寶石之前搜尋寶石

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

引數

  • FILE - 要尋找的檔案名稱

說明

which 指令類似於 shell which 指令,並向您顯示您想要需要的檔案所在的位置。

您可以使用 which 指令來協助確定您為何需要您未預期的版本,或查看您需要的檔案內容,以了解為何它不會按照您的預期執行。

gem yank

從索引中移除已推播的寶石

用法

gem yank -v VERSION [-p PLATFORM] [--key KEY_NAME] [--host HOST] GEM [options]

選項

  • -v, --version VERSION - 指定要移除的寶石版本
  • --platform PLATFORM - 指定要移除的寶石平台
  • --otp CODE - 多重驗證的數字代碼您也可以使用環境變數 GEM_HOST_OTP_CODE
  • --host HOST - 從另一個與 gemcutter 相容的主機 (例如 https://rubygems.org) 中移除
  • -k, --key KEYNAME - 使用 ~/.local/share/gem/credentials 中提供的 API 金鑰

常見選項

  • -h, --help - 取得此指令的說明
  • -V, --[no-]verbose - 設定輸出的詳細程度
  • -q, --quiet - 關閉指令進度計
  • --silent - 關閉 RubyGems 輸出
  • --config-file FILE - 使用此設定檔,而非預設設定檔
  • --backtrace - 錯誤時顯示堆疊追蹤
  • --debug - 開啟 Ruby 除錯
  • --norc - 避免載入任何 .gemrc 檔

引數

  • GEM - 寶石名稱

說明

yank 指令會永久移除你推送到伺服器上的寶石。

一旦你推送到寶石,好幾次下載會自動透過網路掛勾發生。如果你不小心推送到密碼或其他敏感資料,你會需要立即變更它們並撤回你的寶石。