君の瞳はまるでルビー - Ruby 関連まとめサイト

パッケージマネジメント関連用語

最終更新: 2015-03-31 (火) 21:53:13 (2920d)

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 である。
    • bundle コマンドは、gem のインストールのみならず管理した gem をアプリケーションに適切に利用させるためアプリケーション実行にも利用する。
    • bundle install コマンドで Gemfile に書かれている gem を環境にインストールする。
    • インストールした gem を利用させるため Bundler を利用したアプリケーションの実行は bundle exec コマンドで行う。
    • RubyGems に自作の gem を公開するための機能も有する。

その他(RubyGems へ自作の gems を公開するためのサポートツール)

主観的なお勧めは、最後の「Bundler」です。