Hatena::ブログ(Diary)

tkrdの日記 (rails や ubuntu のことなど)

株式会社オイアクス (東京都港区芝大門) で社長をしています。

2012-08-28

Ubuntu Server 12.04: 警告「Setting locale failed」への対処法

12:14

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_*

あまり有用とも思われないので、この行をコメントアウトするのも一手です。Macでも同じような設定になっているそうです。

fidelisjapanfidelisjapan 2014/05/16 19:36 Localeなのは当たりがついてましたが、「USのままなのにな〜??」って気になってました。
大変参考になりました。ありがとうございます!

トラックバック - http://d.hatena.ne.jp/tkrd/20120828/1346123699
リンク元