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

https://github.com/sstephenson/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

https://rvm.io/

インストール

https://rvm.io/rvm/install/

~/.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.***)。

参考:

http://ubuntuforums.org/showthread.php?t=1494997

はまった

irbで文字化け

$ irb -Ku

または

export RUBYOPT=-Ku

実行すると「./hoge.rb: bad interpreter: /usr/bin/ruby^M: そのようなファイルやディレクトリはありません」と怒られる。

==> ソースコードの改行コードが \r\n や \r になってるのが原因。\n に直す。