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' ...