Mac のruby のirb で日本語入力をできるようにする
Leopard に最初から入っているruby のirb は日本語を入力できない
日本語を入力しようとRET を押すと、日本語が消える。Rails 使っている人には、script/console で日本語ができないので、結構辛い。
解決策1. ruby 1.8.7 を入れる
今回僕はこの方法でやりました。まだ1.8.7 にしてなかったので一石二鳥。
- 参考
日本語入力もおk
$ ruby -v
ruby 1.8.7 (2008-06-20 patchlevel 22) [i686-darwin9]
$ irb
irb(main):001:0> puts 'あ'
あ
nil
irb(main):002:0>
解決策2. ソースからインストールする
ruby のバージョンを1.8.6 以前のものを使いたい場合等で、かつこの問題を解決するにはソースからruby を入れる必要があります。
- 参考
日本語が入力できない原因
ふと、Leopard付属のirbで日本語入れてみたら、確定と同時に消されちゃったもので。
これ、原因はreadlineだよね。
あーあ、せっかくLeopardにrails最初から入ってて喜んでたのになぁ。この微妙な中途半端さ。
仕方ない。readlineからrubyも入れ直しますよ。
原因は、readline にあるらしい。なので、readline とruby 共々ソースから再インストールする必要があります。
ちなみに、解決策1 で問題が解決するのは、macports でインストールすると、readline も一緒に入れてくれるためです。
GNU readline をインストール
$ mkdir ~/src
$ cd ~/src
$ wget ftp://ftp.gnu.org/gnu/readline/readline-5.2.tar.gz
$ tar zxvf readline-5.2.tar.gz
$ cd readline-5.2
GNU readline は、普通にはコンパイルできない。support/shobj-conf ファイルを修正する必要があります。
support/shobj-conf の174行目、
darwin[78]*) SHOBJ_LDFLAGS=''
で、"[78]" を"[789]" に変更します。Leopardはdarwin9なので。
darwin[789]*) SHOBJ_LDFLAGS=''
とすると、コンパイルできます。
上記の修正後、コンパイルしてインストール。
$ ./configure --disable-static
$ make
$ make test
$ sudo make install
$ make clean
インストールした際に、「install: you may need to run ldconfig」ってでるけど、それらしきコマンドもスクリプトファイルもないから無視。
ruby をインストール
今回はruby 1.8.6 をインストールすることを想定。
- 参考
$ cd ~/src
$ wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.6-p230.tar.gz
$ tar xfvz ruby-1.8.6-p230.tar.gz
$ cd ruby-1.8.6-p230
$ ./configure --enable-shared --with-readline-dir=/usr/local
$ make
$ make test
$ sudo make install
$ make clean
Ruby Install Guide::MacOS Xには、インストールの際のオプションとして、「--enable-pthread」を指定していますが、これを指定すると「Segmentation Fault」するので、これは外しておきます。
また、ガイドにあるとおり、readline のパスを指定します。
irbの動作を改善するために、別途readlineをインストールした場合は、「--with-readline-dir=/usr/local」を追加してください
gem を入れ直す
どちらの解決策をとっても、gem は入れ直す必要があります。僕の場合、gem はデフォルトのバージョンと合わせたかったので、ソースからインストールしました。
デフォルトのgem のバージョンの確認
$ /usr/bin/gem -v
1.0.1
ソースからgem をインストール
$ cd ~/src
$ wget http://rubyforge.org/frs/download.php/29548/rubygems-1.0.1.tgz
$ tar xvfz rubygems-1.0.1.tgz
$ cd rubygems-1.0.1
$ sudo ruby setup.rb
正しく入ったか確認。
$ gem list
*** LOCAL GEMS ***
正しくインストールされた。これから、rails とかをインストールして、元の環境と合わせます。面倒。。。