the glue

やってみたことで忘れそうなこと、役立ちそうなことなどをまとめています。たまに何気ない日常の話もします。

apt-get で Setting locale failed が出た場合の対処

経緯

あるときを境に、リモートのUbuntuのapt-getが以下のようなメッセージを吐くように。

...
...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = "en_US:",
    LC_ALL = (unset),
    LC_CTYPE = "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_ALL to default locale: No such file or directory
Selecting previously unselected package language-pack-ja-base.
...
...

特に実害が出ているわけではないので放置していたが、何とも気持ち悪いので対処。

環境

ログイン先

  • Ubuntu Server 14.04.1 LTS / 14.10 (手元で確認済みの環境だけ)
$ cat /etc/default/locale
LANG="en_US.UTF-8"
LANGUAGE="en_US:"

ログイン元

対応

language-pack-ja-baseをインストールしてみる

$ sudo apt-get install language-pack-ja-base

だめだった。
ただし最後の一行だけ出なくなった。
Selecting previously unselected package language-pack-ja-base.

そもそもなんでen_USなのにlanguage-pack-ja-baseを入れなければならないのか。
意味不明なので一応環境変数を確認。

$ echo $LANG
ja_JP.UTF-8

ん???
/etc/default/localeの設定と異なるので、ためしにコンソールからログインしてみるとエラーは出なかった。

ローカルのssh_configの設定を変更

Macからsshしたときだけこの現象が起こったので、Macssh_configを確認

$ cat /etc/ssh_config
...
Host *
  SendEnv LANG LC_*
...

どうやらこのSendEnv LANG LC_*がログイン時にリモートに環境変数を送っている様子。
別に送信して貰う必要はないのでコメントアウト

$ cat /etc/ssh_config
...
Host *
#  SendEnv LANG LC_*
...

できた。

$ sudo apt-get install sl
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  sl
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 26.7 kB of archives.
After this operation, 126 kB of additional disk space will be used.
Get:1 http://jp.archive.ubuntu.com/ubuntu/ trusty/universe sl amd64 3.03-17 [26.7 kB]
15% [1 sl 4,059 B/26.7 kB 15%]
Fetched 26.7 kB in 0s (55.9 kB/s)
Selecting previously unselected package sl.
(Reading database ... 101404 files and directories currently installed.)
Preparing to unpack .../archives/sl_3.03-17_amd64.deb ...
Unpacking sl (3.03-17) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Setting up sl (3.03-17) ...