RubyGemsの使い方

下記のページを参考にパッケージの利用方法を勉強する。
RubyGems の使い方 - WebOS Goodies

RubyGemsはRubyInstallerでインストールしたら入っていたのでインストール方法は省略する。
環境構築 RubyInstaller - ayaketanのプログラミング勉強日記

gemコマンドの使い方


RubyGemsのほとんどの機能はgemというコマンドで利用できる。
基本的な書式は下記のようになる。

gem <サブコマンド> [オプション] [パラメータ]

gemコマンドは様々な機能を持っているので、どの機能を実行するかをサブコマンドで実行する。(正式なドキュメントでは「command」と呼ばれているが、紛らわしいので「サブコマンド」と呼ぶ。)

コマンド 機能
gem help commands 利用可能なサブコマンドのリストを表示
gem help <サブコマンド> オプションやパラメータ等サブコマンドの詳細情報を表示


パッケージのインストール

コマンド 機能
gem install --remote <パッケージ名> リモートリポジトリからパッケージをダウンロードしてインストール

installコマンドには下記のオプションも使用できる

オプション 機能
--version バージョン 指定バージョンをインストール
--[no-]rdoc RDoc 形式のドキュメントを生成する[しない]
--[no-]ri ri コマンドで読めるドキュメントを生成する[しない]
--force 依存性チェックをスキップして強制インストール
--ignore-dependencies 依存パッケージをインストールしない

"--version"オプションのバージョン指定は、単に"1.0.0"などと記述すれば正確に一致するバージョンになるし、"<1.0.0"のように演算子を付けることもできる。
利用可能な演算子は下記の通り。

演算子 意味
= 指定バージョン(デフォルト)
!= 指定バージョン以外
> 指定バージョンより新しいもの
>= 指定バージョンか、より新しいもの
指定バージョンより古いもの
<= 指定バージョンか、より古いもの
~> "~>2.0" とすると、 2.x 系列で最新のものになる

パッケージのアップデート


インストール済みパッケージを最新版に更新するときは、updateサブコマンドを使う。
RubyGems では複数バージョンのパッケージがインストールできるので、パッケージを更新しただけでは旧バージョンは削除されない。

コマンド 機能
gem update [パッケージ名] インストール済みパッケージを最新版に更新
gem outdated 更新が必要なパッケージを一度に確認
gem cleanup [パッケージ名] 最新バージョンを残してすべてアンインストール

パッケージのアンインストール


特定のパッケージを削除するには、uninstallサブコマンドを使う。

コマンド 機能
gem uninstall <パッケージ名> パッケージをアンインストール

複数のバージョンがインストールされている場合は、それらを列挙してどのバージョンを削除するか尋ねてくる。また、他のパッケージが削除しようとするパッケージに依存している場合は本当に削除してよいか確認してくる。
よく使用するオプションは下記の通り。

オプション 機能
--all 該当するすべてのバージョンを削除
--version バージョン 指定されたバージョンを削除

パッケージの検索


インストールするパッケージの名前がはっきりしないときは、 search サブコマンドで検索をかけることができる。

コマンド 機能
gem search --remote <検索文字列> 名前に検索文字列を含むパッケージをリストアップ
gem query --remote --name-matches <正規表現> 名前が正規表現にマッチするパッケージをリストアップ

インストール済みパッケージの情報取得

コマンド 機能
gem search インストール済みパッケージの一覧を表示
gem contents [--version <バージョン>] <パッケージ名> 特定のパッケージに含まれるファイルの一覧を表示

ライブラリの利用方法


最新のライブラリを読み込む


RubyGemsでインストールしたライブラリを利用する場合は、必ずスクリプトの最初で'rubygems'を読み込む。

require "rubygems"

あとは通常通りライブラリをrequireするだけでよい。複数のバージョンがインストールされている場合は、その中から最新のものが読み込まれる。

バージョンを指定して読み込む


特定のバージョンのライブラリを使いたいときは"rubygems"をrequireした後にgemを使ってバージョンを指定する。
例えば、下記の例はactive_recordのバージョン1.14.0を読み込む。

require "rubygems"
gem "active_record", "=1.14.0"
require "active_record"