Ruby

コードスニペット

インストール

もろもろ必要そうなパッケージもまとめてインストール
sudo apt-get install ruby1.9.1-full build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison

ライブラリ

リファレンス


rbenv


rbenvとruby-buildをインストール

Git cloneする場合:

git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
以下を.zshrcや.bash_profileに追加
export PATH=$HOME/.rbenv/bin:$PATH
if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi

HomebrewでMac OS Xにインストールする場合:

$ brew install rbenv ruby-build openssl readline
以下を.zshrcや.bash_profileに追加
if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi

Rubyのインストール

インストール可能なRubyのバージョン一覧
$ rbenv install --list

通常のインストール(Homebrew以外):
$ rbenv install 2.0.0-p195
$ rbenv rehash

Homebrew経由でインストールしたOpenSSLやReadlineをリンクする場合:
$ CONFIGURE_OPTS="--with-readline-dir=$(brew --prefix readline) --with-openssl-dir=$(brew --prefix openssl)" rbenv install 2.0.0-p195
$ rbenv rehash

インストールしたRubyのバージョン一覧
$ rbenv versions

特定のディレクトリで使用するRubyのバージョンを指定

$ rbenv local 2.0.0-p195
実行したディレクトリに.ruby-version(古いrbenvでは.rbenv-version)というファイルが作成され、そこにRubyのバージョン名が書かれる。

解除
$ rbenv local --unset
.ruby-versionファイルは削除される。

特定のシェルで使用するRubyのバージョンを指定

$ rbenv shell 2.0.0-p195
環境変数のRBENV_VERSIONにバージョン名が書かれる。

解除
$ rbenv shell --unset

Rehash

Rubyのパスやgemでインストールしたコマンドのパスを通す(~/rbenv/shims/ 以下のファイルを更新する)。
Rubyをインストールした後や、bundlerやrailsのようにコマンド付きのgemをインストールした後、rbenv rehashを実行する必要がある。
$ rbenv rehash


RVM


インストール

~/.rvm にインストールされる

以下を.zshrcとかに追記
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"

Rubyをインストール
$ rvm list known
$ rvm install 1.9.2
$ rvm use 1.9.2

gemset
$ rvm gemset create hoge
$ rvm gemset use hoge
もしくは
$ rvm 1.9.2@hoge

あとは普通にgem installする

.rvmrcに以下のように書いておくとそのディレクトリにcdした時、自動でrvm useしてくれる。
rvm use 1.9.2@hoge


rvmで入れたruby1.9のgemを使おうとするとzlibが無いとのエラー
ERROR:  Loading command: install (LoadError)
    no such file to load -- zlib
ERROR:  While executing gem ... (NameError)
    uninitialized constant Gem::Commands::InstallCommand

zlib関係や必要そうなライブラリ(build-essential libssl-dev libreadline5 libreadline5-dev zlib1g zlib1g-dev)を入れて、
一度rvmで入れたrubyを削除してから、再度rubyをインストールし直すと良い(rvm reinstall ruby-1.9.***)。

参考:



はまった

irbで文字化け
$ irb -Ku
または
export RUBYOPT=-Ku

実行すると「./hoge.rb: bad interpreter: /usr/bin/ruby^M: そのようなファイルやディレクトリはありません」と怒られる。
 ==> ソースコードの改行コードが \r\n や \r になってるのが原因。\n に直す。

Comments