Blog

OSX ユーザーのために Term::ReadLine::EditLine をだした。

問題

Term::ReadLine::Gnu を OSX にいれるのがだるい

なぜか?

OSX では(たぶん) license の関係で GNU readline が搭載されておりません。ですから Term::ReadLine::Gnu をつかうのがちょっと大変。さらに、libedit は libreadline.dylib も提供しているのでこれをつかえばよさそうなのだけど、こいつを Term::ReadLine::Gnu が拒否する。
さらに、homebrew では system が提供する libreadline.dylib をうわがきしないように brew link しないようになっているということもあって、Term::ReadLine::Gnu のインストールは存外面倒である。

まとめると、面倒なことを楽にできるようにする必要があったということです。

解決策

libedit をつかう Term::EditLine というライブラリがありますので、これに Term::ReadLine::* のインターフェイスを提供し、Term/ReadLine.pm で Term::ReadLine::EditLine をつかってもらえるようにする。

https://metacpan.org/module/Term::ReadLine::EditLine

結果

とりあえず rafl に pull-req をおくってみている。これがとりこまれなくても .zshrc で osx のときだけ export PERL_RL=EditLine ってしておけばつかえます。