irbの日本語(再) 12月14日, 2016
Xcodeのバージョンがあがった。readline-7.0も出ていたし,久しぶりにlibeditをlibreadlineに入れ替えることにしよう。作業の時に参照している メモ が古くなり,不適切な箇所も気になっていたので,まとめ直すことにする。(El Capitan/10.11.6)
■まず、readlineを再compile。
$ curl -O http://www.ring.gr.jp/pub/GNU/readline/readline-7.0.tar.gz $ tar xzvf readline-7.0.tar.gz; cd readline-7.0 $ ./configure; make; sudo make install
■ライブラリの指定を確認する
$ cd /System/Library/Frameworks/Ruby.framework/Versions/2.0\ /usr/lib/ruby/2.0.0/universal-darwin15/ $ otool -L readline.bundle | grep libedit /usr/lib/libedit.3.dylib (compatibility version 2.0.0, current version 3.0.0)
このlibedit.3.dylibを/usr/local/lib/libreadline.dylibに入れ替えればよい。
■ライブラリの指定を入れ替える
$ sudo cp -p readline.bundle readline.bundle.BK $ sudo install_name_tool -change \ /usr/lib/libedit.3.dylib /usr/local/lib/libreadline.dylib \ readline.bundle
■結果を確認する
$ otool -L readline.bundle | grep libreadline /usr/local/lib/libreadline.dylib (compatibility version 2.0.0, current version 3.0.0) $ irb irb(main):001:0> name="あ" => "あ" irb(main):002:0>
よし、OK//
【追記】irbのCatalinaへの対応 10月23日, 2019
irbが使えなくなった。「…Catalinaへの対応」というより「既存irbの放棄」だね。システムのRubyはWebby用に限定し, 遊びで使用するのは最新安定版(ruby-2.6.5)にすることにした。ソースをもらってきてコンパイル。ただし, このサイトを組み上げるのに使用しているWebbyは古いものなのでruby-1.8が必要。これまでOSのバージョンアップがあってもそのために古いrubyを温存してきている。ページの維持管理にはそちらを使用する。ちょっと面倒だけど, 自分でWebbyをupdateするよりは楽だろう。
readlineについてはreadline-8.0が"/usr/local"にいれてあるので, configureに指定することでirbの日本語の扱いには問題がなくなり, 上記のreadline.bundle関連のあれこれは不要になる。これで"alias irb=/usr/local/bin/irb"とでもしておけば普通にirbが使える。
ruby-2.6.5$ ./configure --with-readline-dir=/usr/local