WARNING: terminal is not fully functional

Mac OS X Lionを導入。いろいろ設定作業をしているとなぜかターミナルでlessやmanを使おうとすると

WARNING: terminal is not fully functional

という警告が出るように。

いろいろ調べているとどうやらApp StoreからXcodeをインストールした際にターミナルのプロファイルが削除されてしまうせいだとか。ちなみに以前のMacとは異なり, Lionはデフォルトでは環境変数$TERMがxterm-256colorに設定されている。少なくともLeopardではxterm-colorが使用されていた。このプロファイルを確認するには

$ infocmp

とする。Lion上では少なくともXcodeインストール後にこのコマンドを実行した際にエラーが出るため、プロファイルが欠けているということが分かる。

参考: marcoschuh.de » ssh and Lion’s xterm-256color terminfo

xterm系のプロファイルはMacでは /usr/share/terminfo/78/ 以下に格納されている。そのディレクトリの中身をLeopardと比較してみると確かになんだか少ない…。ともかくxterm-256colorをコピーすれば良さそう。LeopardMacの同じ場所からコピーしてもいいけれど、ファイルのやり取りがめんどくさいので手近なCentOSマシンからscpでコピーすることに。

$ sudo scp user@centos-host:/usr/share/terminfo/x/xterm-256color /usr/share/terminfo/78/

(user, centos-hostは適宜置き換えてください)

これでようやく解決。英語フォーラムではOS Xパブリックベータの頃からアップグレードの度に悩まされて来たというポストも見られたのでご参考までに。