irohiroki's blog

Ruby, Rails, and Web technologies

irb (Readline)で日本語が通るようにする

MacにRVMでRuby 1.9.2をインストールしたとき、irbなどのReadlineのプロンプトに日本語を入力すると「???」に化けて、そのままEnterするとinvalid multibyte charなどのエラーになる問題の解決方法。

Bug #550によると、MacではGNU readlineの代わりにEditline Libraryが使われているそうで、GNU readlineを使えば解決するらしい。

RVMには簡単にGNU readlineを導入する機能があって、Rubyをインストールした後に修正する手順は下の通り(追記:一度Rubyを消さないとうまく行かないので修正。リンク先の丸写しです)。

rvm package install readline

rvm remove 1.9.2

rvm install 1.9.2 --with-readline-dir=$rvm_path/usr

cd $HOME/.rvm/src/ruby-1.9.2-p180/ext/readline

ruby extconf.rb -- --with-readline-dir="$HOME/.rvm/usr"

make install

なお、2行目のruby-1.9.2-p180の部分はインストールしたRubyのバージョンに合わせて変えてください。

追記

GNU readlineにしたら、Readline.refresh_lineがNotImplementedErrorになりました。refresh_lineを使う場合には向きませんね。

Published on 22/03/2011 at 15h25 under . Tags , ,

Powered by Typo – Thème Frédéric de Villamil | Photo L. Lemos