タイトルのとおりです。
環境は前回に引き続き、CentOS 6.5 です。
Ruby ですが、CentOSの yum でインストールしてもいいのですが、バージョンが古いんですよね。
しかも、一度インストールしてしまうとバージョンの変更が面倒ですよね。
特に Ruby はバージョンごとに挙動が大きく異なっていたりして、いろいろと面倒です。
そこで、Ruby をそのまま入れるのではなく RVM という Ruby のバージョン管理ソフトを使って Ruby の異なるバージョン共存させ、コマンド一つで自在に変更できるようにしてみましょう。
RVMの公式サイト:
https://rvm.io/
基本的には、上のサイトを見ればわかるのですが、いろいろハマった点がありましたので、インストール手順を紹介しながら解決策を紹介したいと思います。
RVMをインストールする
(--ruby オプションにより、Ruby 最新版も同時にインストールされる。)
$ \curl -sSL https://get.rvm.io | bash -s stable --ruby
途中ログインユーザーのパスワードを求められますが、そのままパスワードを入力してエンターを押して進んであげてください。
足りない依存ファイルをRPMインストールするために必要なものです。
Ruby 1.9.3 をインストールし、デフォルトで使用
$ rvm install ruby-1.9.3 $ rvm use ruby-1.9.3 --default
Ruby がちゃんと使えることを確認しましょう。
$ ruby -v ruby 1.9.3p547 (2014-05-14 revision 45962) [x86_64-linux]
やったね。
ここで注意点。
一旦ターミナルをおとして、再起動してから Ruby を起動すると、そんなコマンドはないと言われてしまいます。
$ ruby -v
bash: ruby: コマンドが見つかりません
ああ、ターミナルをおとすと、また rvm use しないといけないのだなぁ・・・と思って次のコマンドを打ってみると、予想外の動きをします。
$ rvm use ruby-1.9.3 RVM is not a function, selecting rubies with 'rvm use ...' will not work. You need to change your terminal emulator preferences to allow login shell. Sometimes it is required to use `/bin/bash --login` as the command. Please visit https://rvm.io/integration/gnome-terminal/ for a example.
あら不思議!インストール時にはなかったはずのエラーが現れました。
実はインストールのときに「さりげなく」書いてあったのですが、ターミナル起動時に毎回
$ source ~/.rvm/scripts/rvm
というコマンドを打つ必要があったのです。
毎回打っていると面倒ですし、CGIを使う際に、これではまずいので、.bashrc に追加しておきましょう。
~/.bashrc に以下を追加
source ~/.rvm/scripts/rvm
反映させます。
$ source ~/.bashrc
$ ruby -v ruby 1.9.3p547 (2014-05-14 revision 45962) [x86_64-linux]
これで大丈夫。
ターミナル一旦閉じて、また開くと自動で Ruby 1.9.3 が使えます。
$ ruby -v ruby 1.9.3p547 (2014-05-14 revision 45962) [x86_64-linux]
ほらね。
また、この状態では
$ /usr/bin/env ruby -v ruby 1.9.3p547 (2014-05-14 revision 45962) [x86_64-linux]
となり、上記のコマンドでも Ruby が起動できます。
(このコマンドは、CGIのときに使いますね。)
参考:
zshでRVMを使うと「RVM is not a function,...」 - Hack Your Design!
ついでなんで、ホームディレクトリに適当なスクリプトファイルを作って実行してみましょう。
$ cd ~
$ vim test.rb
#!/usr/bin/env ruby # coding: utf-8 puts "今日もお疲れさまです。"
そのまま
$ ruby test.rb
としてもいいですが、せっかく最初の行に Ruby の実行パスを書いたわけですから、
次のように実行権限をつけて実行してみましょう。
$ chmod 700 test.rb $ ls -la -rwx------. 1 hoge hoge 80 6月 20 19:28 2014 test.rb
さぁ、実行です。
$ ./test.rb 今日もお疲れさまです。
それでは、お疲れさまでした~。