cpanプロンプトでうっかりカーソルキーを押してしまってコントロールコードが入るのが鬱陶しい…というかそのせいで妙な誤動作をしてしまうのが怖いので、readlineに対応できないのかとグーグルさんに伺った所以下の記事が見つかりました。
Term::ReadLine::Gnu をインストールすれば幸せになれるようです。
インストール要件
- ncurses, ncurses-devel, readline, readline-devel
(Term::ReadLine::Gnuをインストールする時点でncurses、readlineは導入済みだったため、必須か否かは未確認です。が、develを入れるなら実行モジュールも入れてしまえばいいと思う)
インストール時のエラーによると、ncursesのほか libtermcap.a でも良いようです。ncurses-develはrubyコンパイル時にも使用するので、こちらを選択しました。
cpan>プロンプトはreadline対応しますが、インストール時の依存性解決で
Shall I follow them and prepend them to the queue of modules we are processing right now? [yes]
と聞いてくるあたりはやっぱりダメみたい。割とここで余計なキー入力してしまうのですが…。
インストールログ
$ sudo yum install ncurses ncurses-devel $ sudo yum install readline readline-devel # cpan cpan[1]> install Term::ReadLine::Gnu (省略) CPAN: File::Temp loaded ok (v0.22) (省略) CPAN.pm: Going to build H/HA/HAYASHI/Term-ReadLine-Gnu-1.26.tar.gz (省略) Checking if your kit is complete... Looks good (省略) HAYASHI/Term-ReadLine-Gnu-1.26.tar.gz /usr/bin/make -- OK Running make test (省略) Result: PASS HAYASHI/Term-ReadLine-Gnu-1.26.tar.gz /usr/bin/make test -- OK (省略) Running make install (省略) HAYASHI/Term-ReadLine-Gnu-1.26.tar.gz /usr/bin/make install -- OK (省略) CPAN: Term::ReadLine::Gnu loaded ok (v1.26) ..................... 21 subroutines in Term::ReadLine redefined