Ruby

提供: ArchWiki
2015年1月7日 (水) 10:57時点におけるKusakata (トーク | 投稿記録)による版 (1版 をインポートしました)
ナビゲーションに移動 検索に移動

Ruby はシンプリシティと生産性に重点を置いた、オープンソースの動的なスクリプト言語です。

Ruby のインストール

インストールするべき Ruby のバージョンはあなたが必要としているものによります。レガシーなアプリケーションをサポートするつもりなら、Ruby 1.9 や 1.8 をインストールしてください。新しいプロジェクトを初めるつもりなら、Ruby 2.0 が推奨です。利用可能な Ruby のバージョンと入手方法の概要を以下に述べます。

Ruby 2.0

Ruby 2.0.0 をインストールするには、ruby をインストールしてください。Ruby 2.0 には #RubyGems が含まれています。

Ruby 1.9

Ruby 1.9.3 をインストールするには、ruby1.9AUR をインストールしてください。Ruby 1.9 には #RubyGems が含まれています。

メリット:

  • 1.8 に比べてパフォーマンスがはるかに向上しています。
  • fiber などの並列化のための新機能があります。
  • 他にも、CSV パーサーの改善などさまざまな機能向上がなされています。

デメリット:

  • 多くの古い gem (そして Ruby On Rails バージョン 2.3 以前) と互換性がありません。
  • 言語の変更によって古い Ruby コードが動かなくなったり、予期せぬバグが生まれる可能性があります。
ノート: あなたの必要な gem/module が Ruby 1.9 と互換性があるか知るには http://isitruby19.com/ を見て下さい。

Ruby 1.8

Ruby 1.8.7 をインストールするには、ruby1.8AURruby-1.8.7-svnAURAUR からインストールしてください。Ruby 1.8 には RubyGems が含まれていません。そのかわり、rubygems1.8AUR パッケージから利用できます。

複数のバージョン

同じシステム上で複数のバージョン (例: 2.0.0-p0 と 1.9.3-p392) を動作させたい場合、一番簡単な方法は RVMrbenv を使うことです。

RubyGems

gem は Ruby のモジュール (Gem と呼ばれます) のためのパッケージマネージャで、Arch Linux における pacman に(多少は)相当します。上述の通り Ruby のインストールを行えば gem コマンドがインストールされます。

使用方法

インストールされている gem を確認するには:

$ gem list

gem についての情報を得るには:

$ gem spec <gem_name>

デフォルトで、gem listgem spec--local オプションを使います。つまりローカルのシステムだけで gem を検索します。これを --remote フラグで上書きすることが可能です。そう、例えば mysql の gem を検索するには:

$ gem list --remote mysql

gem をインストールするには:

$ gem install mysql

ローカルのドキュメントが必要ない場合はスピードアップすることができます:

$ gem install mysql --no-rdoc --no-ri

インストールされている gem を全てアップデートするには:

$ gem update

標準ユーザーで実行

標準ユーザーとして gem を実行すると、gem はシステム全体ではなく ~/.gem にインストールされます。Arch で gem を管理するにはこれが最適だと思われます。残念ながら、全ての gem はこの方法ではインストールできず、root でインストールするように言われているもの (特にネイティブ拡張 (コンパイルされた C コード) を持っている gem) があります。このユーザーごとにインストールする挙動は /etc/gemrc で有効にされており ~/.gemrc ファイルによって書き換えることが可能です。

バイナリをインストールする gem を使う時は、~/.gem/ruby/2.0.0/bin$PATH に追加する必要があります。

root で実行

root として実行したとき、gem は /root/.gems にインストールされます。/usr/lib/ruby/gems/ にはインストールされません

ノート: 詳しくは #33327 を見て下さい。

Bundler は gem をあなたのアプリケーションにパッケージングすることでこの問題をある程度解決します。bundler を使用するにあたって下のセクションを見て下さい。

Bundler

Bundler を使うことであなたのアプリケーションが依存している gem はどれか、さらに(任意で)その gem のバージョンは何でなければならないかを指定することができます。この記述があると、Bundler は必要な gem を全て (完全な gem の依存ツリーを含む) インストールして、後の点検のために結果をログに残します。デフォルトで、Bundler は gem を共有の場所にインストールしますが、あなたのアプリケーションに直接インストールすることも可能です。あなたのアプリケーションが実行されると、複数のバージョンの gem がインストールされている時でも、Bundler はそれぞれの gem の正しいバージョンを与えます。これにはわずかばかりの作業が必要です: アプリケーションは bundle exec で呼び出される必要があり、あなたのアプリケーションのメインの実行ファイルに2行のボイラープレートコード(おまじない)を入れなくてはなりません。

Bundler をインストールするには:

$ gem install bundler

デフォルトで、Bundler は gem をシステム全体にインストールします。これは Arch での gem それ自体の挙動とは反対です。これを正すには、次を ~/.bashrc に追加してください:

export GEM_HOME=~/.gem/ruby/2.0.0

新しい bundle を始めるには:

$ bundle init

次に (bundle init によって作成された) 作業ディレクトリ内の Gemfile を編集して必要な gem を記載してください:

Gemfile
gem "rails", "3.2.9"
gem "mysql"

次を実行して gem を GEM_HOME にインストールしてください:

$ bundle install

もしくは、次を実行して gem を作業ディレクトリ内の .bundle にインストールしてください:

$ bundle install --path .bundle

あなたのメインの実行ファイルを編集するのを忘れないで下さい:

#!/usr/bin/env ruby

# "This will automatically discover your Gemfile, and make all of the gems in
# your Gemfile available to Ruby." http://gembundler.com/v1.3/rationale.html
require 'rubygems'
require 'bundler/setup'

...

最後に、あなたのプログラムを実行して下さい:

bundle exec <main_executable_name.rb>

pacman を使って RubyGems を管理する

直接 gem コマンドを使うかわりに pacman を使って普通のパッケージのようにインストールした gem を管理することができます。AUR から利用できる ruby パッケージがたくさんあります。Ruby パッケージは ruby-[gemname] という命名規則に従っています。pacman を使った後 gem から自動で arch パッケージを作成しインストールする pacgemAUR ツールを代替として使うことが可能です。

警告: AUR にある ruby gem パッケージの多くは、/etc/gemrc やユーザーの ~/.gemrc 内のグローバルな設定を無視して、コマンドラインスイッチの --no-user-install--user-install を明示的に使います。インストールする前に PKGBUILD ファイルを編集しますよね?

関連項目

参照