Rubyにおいて「浮動小数点数パースにおけるヒープオーバーフロー (CVE-2013-4164)」なんていう危なげなものがあったので、サーバ上のRubyのバージョンを上げることにしたよ。
作業にかかった時間はおおよそ20~30分程度かな。
アップデートする前の注意点
1.9.3に切り替えた時、こんなエラーがちょくちょく出る場合があるんだ。
/usr/local/lib/ruby/1.9.1/yaml.rb:83:in `’:
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
解決策: libyamlを入れる
(これを放置することによって起こる弊害は未検証だよ)
導入手順
$ su -
# cd /usr/local/src
# wget http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz
# tar -zxvf yaml-0.1.4.tar.gz
# cd yaml-0.1.4
# ./configure
# make
# make install
rubyのアップデート
$ su -
# cd /usr/local/src
# cd (旧版のrubyのあるディレクトリ)
# cat .installed.list | xargs rm
# cd ../
# wget http://cache.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p484.tar.gz
# tar zxvf ruby-1.9.3-p484.tar.gz
# cd ruby-1.9.3-p484
# ./configure
# make
# make install
- rootではいる
- 旧版rubyを削除
- 新しいのをDL
- 解凍
- configureしてmakeしてインストール
導入完了!
完了後、バージョンチェックしてみよう。
$ ruby -v
ruby 1.9.3p484 (2013-11-22) [i686-linux]
おまけ:libyamlを入れる前にうっかり間違えてrubyを入れ替えた場合
なんてことはない。
libyamlを導入(前述)してrubyを再インストールしよう。
以下を実行すれば多分大丈夫。
# cd /usr/local/src/ruby-1.9.3-p484
# cat .installed.list | xargs rm
# make clean
# make
# make install
番外編: rbenvを使ったバージョン切り替え
ローカルのrubyを更新する場合等。
ruby-buildをアップデートしないと新しいバージョンが一覧に出てこない。
詳細はこのへんが詳しい。
http://qiita.com/kawasy/items/5d000afa6571c71c2723
ちなみにgithubからの場合でgitコマンドを動かすのは(普通に入れていれば)この場所。
$ cd ~/.rbenv/plugins/ruby-build/
場所がわからなくてあたふたしたので補則。
番外編: railsとか何やらが起動しない
こんなのが出ちゃう。
found a tab character that violate intendation while scanning a plain scalar at line 59 column 9 (Psych::SyntaxError)
原因:ruby1.9.2と1.9.3でYAMLのライブラリが変わったから。
http://qiita.com/udzura/items/ec4c5b83db94363c9cdf
解決法:使ってるYAMLファイルにタブ文字が入っているので、grepして探してそれを修正する。
grepのタブ文字検索の方法は以下を参照のこと
http://akio0911.net/archives/3051
ちなみに1.9.2ではタブ文字が入っていようが起動するみたい。
参考資料
http://d.hatena.ne.jp/donbulinux/20111111/1321004527
http://pyyaml.org/wiki/LibYAML
http://d.hatena.ne.jp/mikage014/20091021/p1
http://d.hatena.ne.jp/koziy/20111104/1320370451
http://centos.bungu-do.jp/archives/000294.html
http://tech.tmd45.jp/entry/2013/07/03/182414
http://fjordegg.tumblr.com/post/36575034137/day-13-mysql-readme
http://www.smokeymonkey.net/2013/11/ruby-on-macbook.html
http://qiita.com/udzura/items/ec4c5b83db94363c9cdf
http://akio0911.net/archives/3051