Help us understand the problem. What is going on with this article?

初心者は覚えておきたいRubygemsのコマンドまとめ

More than 5 years have passed since last update.

gemかわいいよgem

Rubygems(gem)って?

Ruby用のパッケージ管理システムです。ジェムって発音されるようです。
コマンド一つでパッケージをインストール・削除・更新などできるので便利です。

さらにbundlerも入れておければ設定ファイルに書いておいたものも一括で導入できます。

はい、釈迦に説法ですね。すみません

Rubygemsコマンド一覧

RubyGems Guideでコマンド一覧が見れます。

その中からよく使うものをリストアップ

インストール

必要なgemが予め決まっているならこれでインストール

# 最新のものを導入
$ gem install <gem名>

# バージョン指定で導入
$ gem install <gem名> -v <バージョン>

# RI,RDocドキュメントを入れない(インストールが早い)
$ gem install <gem名> --no-ri --no-rdoc

アンインストール

gemが不要になった場合にアンインストール

# 不要なgemをアンインストール
$ gem uninstall <gem名>

インストール済みGemをリストアップ

何をインストールしたか確認したいときにはこれで確認

# 単純にキーワードで検索
$ gem list <キーワード>

gemをキーワード検索

gemをキーワード検索したい場合に使います。#一応正規表現も使えます。

# 単純にキーワード検索(キーワードが短いと山ほど余計なものがでることも)
$ gem search <キーワード>

# リモートのgemをキーワード検索
$ gem search -r <キーワード>

gemの高度な検索

ローカルまたはリモートのgemを正規表現を使って検索したい場合に使います。
searchよりもこっちを覚えたほうがいいかもしれませんね。

# 特定gemの利用可能なバージョン一覧(例えばrailsとか)
$ gem query -ra -n  "^<gem名>$"

もうこれ覚えておけば十分でしょう。

[opsions]
-i, -​-[no-]installed - インストール済みかどうかを指定
-v, -​-version VERSION - バージョン指定
-n, -​-name-matches REGEXP - 正規表現を指定
-a, -​-all - すべてのgemバージョンを表示
-r, -​-remote - リモートのgemを指定
-b, -​-both - ローカルとリモートの両方を指定

アップデートが必要なgemをリストアップ

ずっと使っていると更新が必要になってきますが、更新前に一度確認しておきたいときに使います。

$ gem outdated 

gemをアップデート

gemを新しいバージョンに更新したいときに使います。

# インストール済み全gemを更新
$ gem update

# 指定gemを更新
$ gem update <gem名>

gemのrdocを生成

gemのソースコードからRDocドキュメント生成する場合に使います。
インストール時に--no-ri --no-rdocしている人など。

# 特定gemのドキュメントを生成
$ gem rdoc --rdoc <gem名>

# インストール済み全gemのドキュメントを生成
$ gem rdoc --all

gemの仕様を確認する

gemの仕様が確認したくなったら使います。
YAML形式でgemの依存関係などが出力されます

$ gem specification <gem名>

gemのオプションなどを調べる

gemの使い方がわからなくなった時に使います。

# gemの実行方法などのヘルプを表示
$ gem help <gem名>

ちょっとしたTips

サブコマンドは省略系で使えます

gem以降のサブコマンドは基本的に他のサブコマンドと重複しない最短の文字列まで短縮できます。

上で上げていないのも含めて以下のように短縮できます。

  • gem build → gem b
  • gem cert → gem ce
  • gem check → gem ch
  • gem cleanup → gem cl
  • gem contents → gem co
  • gem dependency → gem d
  • gem environment → gem e
  • gem fetch → gem f
  • gem generate_index → gem g
  • gem help → gem h
  • gem install → gem i
  • gem list → gem li
  • gem lock → gem lo
  • gem outdated → gem ou
  • gem owner → gem ow
  • gem pristine → gem pr
  • gem push → gem pu
  • gem query → gem q
  • gem rdoc → gem r
  • gem search → gem sea
  • gem server → gem ser
  • gem sources → gem so
  • gem specification → gem sp
  • gem stale → gem st
  • gem uninstall → gem uni
  • gem unpack → gem unp
  • gem update → gem up
  • gem which → gem w
muran001
2014年6月から大手SIerに見切りをつけてWeb系のエンジニアとして活動してます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away