Logical Rabbit.

さくらのVPS

cpanでreadlineを使いたい場合

cpanプロンプトでうっかりカーソルキーを押してしまってコントロールコードが入るのが鬱陶しい…というかそのせいで妙な誤動作をしてしまうのが怖いので、readlineに対応できないのかとグーグルさんに伺った所以下の記事が見つかりました。

ReadLine で CPAN を便利に – はちゅにっき

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