Ubuntu Server 12.04: 警告「Setting locale failed」への対処法
Ubuntu Server 12.04 で次のような警告が出てパッケージのインストールがうまく行かない場合があります。
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_US:en",
LC_ALL = (unset),
LC_CTYPE = "ja_JP.UTF-8",
LC_COLLATE = "ja_JP.UTF-8",
LC_MESSAGES = "ja_JP.UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
この問題は language-pack-ja-base
というパッケージをインストールするか、~/.bashrc
に次の行を追加すれば解消されます。
export LC_ALL=en_US.UTF-8
ただ、ちょっと変なのは、Ubuntu Serverをインストールした際に日本語を使うような設定をしていないのに、こういう警告が出ることです。
もしかするとタイムゾーンを東京にしたのが原因かなとも思いましたが、そんなはずはありませんね。
実際、サーバの /etc/default/locale
はこうなっています:
LANG="en_US.UTF-8"
LANGUAGE="en_US:en"
いろいろと調べたところ、sshで接続する際にローカルPCの環境変数がリモートホストに送信されていたのが原因でした。
ローカルPC(Ubuntu)の/etc/ssh/ssh_config
を確認すると、次の記述があります:
SendEnv LANG LC_*