Ruby
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 コードが動かなくなったり、予期せぬバグが生まれる可能性があります。
Ruby 1.8
Ruby 1.8.7 をインストールするには、ruby1.8AUR か ruby-1.8.7-svnAUR を AUR からインストールしてください。Ruby 1.8 には RubyGems が含まれていません。そのかわり、rubygems1.8AUR パッケージから利用できます。
複数のバージョン
同じシステム上で複数のバージョン (例: 2.0.0-p0 と 1.9.3-p392) を動作させたい場合、一番簡単な方法は RVM や rbenv を使うことです。
RubyGems
gem は Ruby のモジュール (Gem と呼ばれます) のためのパッケージマネージャで、Arch Linux における pacman に(多少は)相当します。上述の通り Ruby のインストールを行えば gem コマンドがインストールされます。
使用方法
インストールされている gem を確認するには:
$ gem list
gem についての情報を得るには:
$ gem spec <gem_name>
デフォルトで、gem list
や gem 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/
にはインストールされません。
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 ツールを代替として使うことが可能です。
関連項目
参照
- Ruby - http://ruby-lang.org/
- Rubyforge - http://rubyforge.org
- Bundler - http://github.com/carlhuda/bundler