RubyGems入門

/

RubyGems

RubyGemsはバージョン1.9以降のRubyであれば、標準でインストールされているRubyのライブラリ管理ツールです。
RubyはRubyGemsを通して「gem」と呼ばれるRubyのプログラムやライブラリをダウンロードして管理する事ができます。

RubyGemsの確認

$ gem -v
2.5.2

実行環境

ubuntu 14.04LTS

gemの使い方

gemを探す

gemを使うためには、まずはRubyGemsのサイトなどから自分が使いたいgemを探します。

・RubyGemsのサイトから探す
RubyGemsのサイトでは登録されているgemを検索できます。
ダウンロード数の多いgemのランキングなどもあるので、こういった情報を元にgemを探すことも可能です。

・コマンドで探す
ダウンロードしたいgemに検討がついている場合には、ターミナルから探したいgemを名前で検索する事も出来ます。

$ gem search -r [gem name]

searchコマンドを実行すると指定したワードと関連するgemが表示されます。

$ gem search -r bundler

*** REMOTE GEMS ***

appbundler (0.9.0)
asset_bundler (0.2.0)
atd-asset_bundler (0.0.3)
...

gemをインストールする

使いたいgemが決まったらgemの名前を指定してインストールを実行します、例えばbundlerをインストールする時のコマンドは以下のようになります。

$ gem install bundler

オプションをつけるとgemのバージョンを指定してダウンロードが出来ます。

$ gem install bundler --version 1.0

listコマンドでインストールしたgemを確認する事ができます。

$ gem list bundler

*** LOCAL GEMS ***

bundler (1.12.5)

gemの名前を指定せずにlistコマンドを実行するとインストール済みのgemの一覧を見る事ができます。

$ gem list

*** LOCAL GEMS ***

bundler (1.12.5)
mini_portile2 (2.1.0)
pkg-config (1.1.7)
rake (11.2.2)

アップデート

updateコマンドでgemのアップデートが実行できます。

$ gem update bundler

また–systemオプションでインストール済みの各gemだけでなくRubyGems自体のアップデートを実行することができます。

$ gem update --system

RubyGemsを使うのに間が空いた場合には何かのgemインストールする前にRubyGmesのアップデートをしておくと良いでしょう。

*注意

僕の環境ではubuntu14.04のパッケージ管理システムからRubyをインストールした場合、上記のコマンドで直接RubyGemsのアップデートを行うとエラーが表示されました。
原因はubuntuの場合aptを通してパッケージ管理システムからRubygemsのアップデートをサポートしているためのようです。詳しく検証していませんがubuntuでapt使用してRubyをインストールした場合にはRubyGemsのアップデートはパッケージ管理システムで行ったほうが良いかもしれません。

gemを使う

gemの使い方は各gemのドキュメントを参照するのが確実ですが、外部のライブラリとしての使う場合にはgemを使うRubyのファイルの先頭でrequireをしてgemを読み込む必要があります。

今回はwebスクリプティング用のライブラリであるNokogiriを使用してHTMLの解析を試してみます。

#!usr/bin/env ruby
# coding: utf-8

#RubyでURLにアクセスするための標準ライブラリ
require "open-uri"
#RubyGemsで追加したNokogiriを標準ライブラリと同様に読み込む
require "nokogiri"

# スクレイピングするURL(Ruby on Rails)
url = "http://rubyonrails.org/"
# Nokogiriを使用してHTMLを解析
html_doc = Nokogiri::HTML.parse(open(url))

# URLのタイトルを表示
p html_doc.css('title').inner_text
# 同じくh1の要素を表示
p html_doc.css('h1').inner_text

作成したRubyプログラムを実行してみます。

$ ruby main.rb

"Ruby on Rails"
"Imagine what you could build if you learned Ruby on Rails…"

無事にNokogiriをgemとして使用できました。

あとがき

RubyのgemsのシステムはLinuxのディストリビューションのパッケージ管理システムのようにRubyのライブラリを使用することを実現しています。
Python等と同様にライブラリ管理システムの利便性の高さがRubyが人気のプログラム言語の一つになった理由だと思います。
人気のある言語はユーザー同士でライブラリを共有出来る仕組みが色々と整えられていますが、その中でも個人的にはダウンロードやアップロードのシンプルな使いやすさではRubyGemsは優れていると感じています。

参照

library rubygems/Ruby 2.3.0 リファレンスマニュアル