Ruby RubyGems

Ruby RubyGems

RubyGems 是 Ruby 的一個包管理器,它提供一個分發 Ruby 程式和庫的標準格式,還提供一個管理程式包安裝的工具。

RubyGems 旨在方便地管理 gem 安裝的工具,以及用於分發 gem 的伺服器。這類似於 Ubuntu 下的apt-get, Centos 的 yum,Python 的 pip。

RubyGems大約創建於2003年11月,從Ruby 1.9版起成為Ruby標準庫的一部分。

如果你的 Ruby 低於 1.9 版本,也可以通過手動安裝:

  • 首先下載安裝包:https://rubygems.org/pages/download。
  • 解壓並進入目錄,執行命令:ruby setup.rb

更新 RubyGems 命令:

$ gem update --system          # 需要管理員或root使用者

Gem

Gem 是 Ruby 模組 (叫做 Gems) 的包管理器。其包含包資訊,以及用於安裝的檔案。

Gem通常是依照".gemspec"檔案構建的,包含了有關Gem資訊的YAML檔案。Ruby程式碼也可以直接建立Gem,這種情況下通常利用Rake來進行。

gem命令

gem命令用於構建、上傳、下載以及安裝Gem包。

gem用法

RubyGems 在功能上與 apt-get、portage、yum 和 npm 非常相似。

安裝:

gem install mygem

解除安裝:

gem uninstall mygem

列出已安裝的gem:

gem list --local

列出可用的gem,例如:

gem list --remote

為所有的gems建立RDoc文件:

gem rdoc --all

下載一個gem,但不安裝:

gem fetch mygem

從可用的gem中搜索,例如:

gem search STRING --remote

gem 包的構建

gem命令也被用來構建和維護.gemspec和.gem檔案。

利用.gemspec檔案構建.gem:

gem build mygem.gemspec

修改國內源

由於國內網路原因(你懂的),導致 rubygems.org 存放在 Amazon S3 上面的資原始檔間歇性連線失敗。

所以你會與遇到 gem install rack 或 bundle install 的時候半天沒有響應,具體可以用 gem install rails -V 來檢視執行過程。

因此我們可以將它修改為國內的下載源: https://gems.ruby-china.com

首先,檢視當前源:

$ gem sources -l
*** CURRENT SOURCES ***

https://rubygems.org/

接著,移除 https://rubygems.org/,並新增國內下載源 https://gems.ruby-china.com/。

$ gem sources --remove https://rubygems.org/
$ gem sources -a https://gems.ruby-china.com/
$ gem sources -l
*** CURRENT SOURCES ***

https://gems.ruby-china.com/
# 請確保只有 gems.ruby-china.com
$ gem install rails

如果你使用 Gemfile 和 Bundle (例如:Rails 專案)

你可以用bundle的gem原始碼映象命令。

$ bundle config mirror.https://rubygems.org https://gems.ruby-china.com/

這樣你不用改你的 Gemfile 的 source。

source 'https://rubygems.org/'
gem 'rails', '4.1.0'
...