ばくのエンジニア日誌

技術的なメモなどを書いていきます。

そろそろ整理しておきたい、Gemコマンドの使い方

このブログ(ばくのエンジニア日誌)はBAKUNOTEに移転しました。

Rubyのパッケージ管理システムであるGemを使う機会も増えてきたので、そろそろコマンドをまとめておくことにしました。

RubyGemsとは?

Wikipediaより引用

RubyGemsは、Ruby言語用のパッケージ管理システムであり、Rubyのプログラムと("gem" と呼ばれる)ライブラリの配布用標準フォーマットを提供している。gemを容易に管理でき、gemを配布するサーバの機能も持つ。Rubyバージョン1.9以降では標準ライブラリの一部となっている。

便利なGemパッケージが世の中には沢山配布されているので、有効に活用していきたいですね!
Gemの公式マニュアルは以下になります。
RubyGems Manuals

それでは、よく使うGemコマンドを用途別にまとめていきます。

Gemを探す

listまたはsearchは、ローカルもしくはリモートにあるGemパッケージを検索します。
2つのコマンドはほぼ同じ動作をします。違いは以下の点です。

listGemパッケージ名の頭から文字列を指定して検索
searchGemパッケージ名を正規表現検索

コマンド 機能
gem [list / search] [String] [options] Stringで始まるGemを表示する


以下のオプションを指定することができます。

オプション 機能
-i, --[no-]installed インストール済み[でない]Gemに限定する
-d, --[no-]details 詳細を併せて表示する
-l, --local localを対象とする
-r, --remote remoteを対象とする
-b, --both local, remoteどちらも対象とする
デフォルトで指定されているオプション
--local --no-details

デフォルトでは--localが指定されているので、外部のを探したい時は-r指定しないとダメですね〜。

また、インストールしてあったけどこれ何だっけ?って時には

gem list GEMNAME -d

で中身を確認します。便利ですね!

なお、Gemパッケージは以下のWebサイトでも探すことができます。
RubyGems.org
The Ruby Toolbox

Gemをインストールする

Gemパッケージをインストールするコマンドです。

コマンド 機能
gem install [GEMNAME] [options] localまたはremoteからGemパッケージをインストール

以下のオプションを指定することができます。

オプション 機能
-v, --version バージョン指定 ex) -v "= 1.0.0"
--[no-]rdoc Rdocドキュメントをダウンロードする[しない]
--[no-]ri riドキュメントをダウンロードする[しない]
-l, --local localからインストール
-r, --remote remoteからインストール
-b, --both local, remoteどちらからでも
デフォルトで指定されているオプション
--both --version '>= 0' --rdoc --ri --no-force
--install-dir /my/gems/directory


個人的に使ったことが無いですが、ローカルからインストールする時は、.gemファイルのある場所に移動してからコマンドを実行するみたいです。

アンインストール

コマンド 機能
gem uninstall [GEMNAME] Gemパッケージをアンインストール

versionが違うやつとかはややこしいのでこれで除いたりしますね。

インストールしたGemファイル(の場所)を探す

コマンド 機能
gem which [GEMNAME] localにあるGEMNAMEのPathを表示する

gemファイルが置いてある場所の階層が深かったりするので、地味に便利です。

ちなみに、

コマンド 機能
gem unpack [GEMNAME] GEMFILEをカレントディレクトリにコピーする

Gemの中身を見たい時にはこちらの方が便利かもしれません。

Gem自身の管理

コマンド 機能
gem update --system Gem自身をupdateする
gem -v Gemのバージョンを表示する

あんまりやったことが無いです(汗)

ヘルプ

コマンド 機能
gem help commands 使用できるコマンドの一覧を表示する
gem help [command] commandのヘルプを表示する
gem server サーバーを立ててgemのマニュアルを表示する

分からなくなったらとりあえずgem help commandです!

ビルド関連

自作したGemをビルドするときに使います。 こちらはまだ試していないので、、いずれ更新します!



参考になるサイト

RubyGemsの使い方 - ayaketanのプログラミング勉強日記
RubyGems Manuals
Ruby/Rubygems使い方まとめ