【Linux】warning: Please check that your locale settings
最近必要に迫られてperlを使うことがしばしある。
用途としてはtailやらshell内でちょっと使ったり。 そこまで多様はしないけど、使えるにこしたことはないと思い 今使っているサーバでperlコマンドで色々やってみようと。
早速今使っているサーバではperlはバージョンいくつなんだろうとコマンドを打ってみる
# perl -version perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LC_CTYPE = "UTF-8", LANG = "ja_JP.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). This is perl, v5.10.1 (*) built for x86_64-linux-thread-multi Copyright 1987-2009, Larry Wall Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5 source kit. Complete documentation for Perl, including FAQ lists, should be found on this system using "man perl" or "perldoc perl". If you have access to the Internet, point your browser at http://www.perl.org/, the Perl Home Page.
バージョンも古いことながら何よりもwarningが出ていらっしゃる。
locale settingsをしろと。 バージョンアップをしようにもこのエラーが気になってしょうがない。
色々調べたところ、どうやらローカルで使っている端末に何かしら原因があるらしい。
今使っているのは2012年製のMacBookAirなのだが、何が悪いんだと。 確かに昔寝ぼけてローカルで伝説のコマンド rm -rf / (通称バルス)をしたことはあるけど OSを入れなおして綺麗な体になったはずでは・・・
冗談はさておき、sshで接続する際にローカルPCの環境変数がリモートホストに送信されていたのが原因らしいです。
ということでsshで接続していたサーバからローカルへ移り、
vim /etc/ssh/ssh_config
※Macの場合パスワード聞かれるかもしれない。
ssh_configの中に
SendEnv LANG LC_*
という記述があるのでコメントアウトします。
# SendEnv LANG LC_*
これでsshで接続しなおせばエラーは消えます。
Macの場合 この設定を変えたくない場合はTerminal.appの設定で 詳細タブを選択し、起動時にロケール環境変数を設定という部分を変更すれば解決します。
ただし、ローカル環境の日本語表示が正しく表示されてしまうので、ssh_configを編集してしまったほうがいいかもしれないです。 環境を英語にしていれば問題ないんですけどね。