gem or gems
- gem とは英語で宝玉のことを表す。
- Ruby のライブラリを宝玉になぞらえて、Ruby のパッケージ1つ1つを gem と呼ぶ。
- gem の集まりを gems と呼ぶ。
- gems を管理するパッケージマネージメントである RubyGems のコマンド名が gem であり、これを指すこともある。
- gem list --remote でインストール可能なライブラリの一覧を取得できる。
- gem list --local でインストール済みライブラリの一覧を取得できる。
- gem にはライブラリだけではなく、コマンド拡張を含むものがある。
- gem には Pure Ruby のものと native コードを含むものがあり、native コードを含むものの中には事前の環境準備を必要とするものもある。
- 例)pg は Postgres を操作する gem であるが、Postgres の native コードを呼び出すため、Postgres 本体が事前にインストールされている必要がある。
RubyGems
- gem を管理するツール/ライブラリである。
- RubyGems を使うと gem のインストール/アンインストール/アップグレードなどができる。
- 依存関係の解決機能を有し、ライブラリインストール時、前提となるライブラリも同時にインストールしてくれる。
- Windows では初期状態でインストールされるが、UNIX ではインストールが必要である(※ 「Rubyクックブック ―エキスパートのための応用レシピ集」p.345 参照)。
- コマンド名は gem である。
- Ruby 1.8 では RubyGems によりインストールしたライブラリを利用するには require 'rubygems' が必要であった。
- Ruby 1.9 以降は RubyGems によりインストールしたライブラリは標準で利用できるので require 'rubygems' の記述は不要である。
- 参考
DEVELOPMENT KIT
- 環境依存の特殊な gem を Windows 環境にインストールする際に必要なツール群のこと。
- gem install コマンドで gem をインストールできなかった場合、DEVELOPMENT KIT をセットアップしてないことが原因の可能性がある。
- Windows にはない UNIX 系コマンド群を提供してくれる。
- ls や cat などの基本的なコマンド。
- make や gcc などのコンパイルコマンド。
- 独自にまとめた情報
Bundler
- Ruby アプリケーションで利用する gem を管理するツール/ライブラリである。
- Gemfile というファイルにアプリケーションで利用する gem を書いて利用する。
- アプリケーションが利用する gem を明示し、開発者間で共有できる。
- gem install bundler でインストールが必要である。
- コマンド名は bundle である。
- 独自にまとめた情報
- 参考
- メインサイト - Bundler: The best way to manage Ruby applications
- bundlerでgemをプロジェクトごとに管理する | クラスメソッド開発ブログ
- 基礎的なコマンドの利用方法である bundle init、bundle install、bundle exec までがまとめられている。
- ASCIIcasts - "Episode 245 - Bundlerでgemを作る"
- Bundler を使って RubyGems に自作の gem を公開する方法がまとめられている。
その他(RubyGems へ自作の gems を公開するためのサポートツール)
- newgem
- jeweler
- Bundler
主観的なお勧めは、最後の「Bundler」です。