Tue, 30 Apr 2013 (平成25年) [長年日記]
_ 引き続き体調不良
風邪と思われるが、出ないとややこしいことになる会議が珍しく二つもあるので出社してる……
_ rbenv のインストール → tDiary で使う ruby のバージョン変更(失敗 成功)
この日記サーバを ruby 2.0.0-p0 にしてしまおうと思い立った。今回は https://github.com/sstephenson/rbenv#installation をそのままなぞってみた。
$ git clone git://github.com/sstephenson/rbenv.git ~/.rbenv $ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile $ exec $SHELL -l
ruby-build をインストール
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
これで準備完了したので ruby 2.0 のインストール。
$ rbenv install 2.0.0-p0
1.8 系もまだ必要なので(追記: 最終的には 1.8 系は /usr/local/bin/ruby を使うことにしてしまったので意味なし)
$ rbenv install 1.8.7-p371 $ rbenv global 2.0.0-p0 $ rbenv rehash $ ruby -v $ cd ~/public_html/rantenna/ $ rbenv local 1.8.7-p371 $ ruby -v ruby 1.8.7 (2012-10-12 patchlevel 371) [i686-linux] $ cd $ ruby -v ruby 2.0.0p0 (2013-02-24 revision 39474) [i686-linux]
これで OK だろうとこの日記にアクセスしてみたら、Powered by Ruby version 1.8.8dev-2012-12-02 とまだ表示されてる。/usr/local/bin/ruby の名前を変えてみたら別のさらに古い ruby が使われる状態に。さらにたどってまたリネームしたら今度は
/usr/bin/env: ruby: No such file or directory [Tue Apr 30 16:32:28 2013] [error] [client 192.168.0.3] Premature end of script headers: update.rb
なんでこうなるの。試しに手動で呼んでみたら
$ /usr/bin/env ruby -v ruby 2.0.0p0 (2013-02-24 revision 39474) [i686-linux]
と使えるのにな。要調査、ということでいったん元の ruby 1.8.8-dev に戻した。
追記: そうか、自分の shell での環境変数と apache が見るのとが違うからか。それくらいすぐに気づけばいいのに > 自分
ということで、index.rb と update.rb の shebang 行を書き換えたら OK。
さらに追記: apache の設定で PATH を変更できないのかと調べてみたら envvars に書けばいいという情報を見つけて試してみたけど変化なし。そういえば、suexec が何かしているのかもと調べてみたらやっぱりあった。--with-suexec-safepath=PATH というオプションで変更できる模様。
CGI 実行ファイルに渡される安全な PATH 環境変数です。 デフォルト値は "/usr/local/bin:/usr/bin:/bin" です。
でも、下手に変更してややこしいことになるよりは shebang 行の書き換えのほうがよさそうだと思えるのでそのままで。
_ プラグインのエラー
これでうまくいくと思ったら、今度は flickr.rb と recent_comment3.rb を外さないとエラーが出てしまった。組み合わせをいくつか試してみると、flickr.rb だけなら問題なしで、recent_comment3.rb が問題を起こしている模様。エラーログを要調査。