ロケールを設定できません。 $LC_*と$LANGが正しいことを確認してください!

ロケールを設定できません。 $LC_*と$LANGが正しいことを確認してください!

常に新しいパッケージをインストールしようとすると、次のメッセージが表示されます。

Can't set locale; make sure $LC_* and $LANG are correct!
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = "en_GB:en",
    LC_ALL = (unset),
    LC_CTYPE = "en_GB.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_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

私のオペレーティングシステムはDebian Jessie 8.3(Mate)で、英語とフランス語のキーボードがあります。ロケールを入力すると、次のようになります。

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
LANG=en_US.UTF-8
LANGUAGE=en_GB:en
LC_CTYPE=en_GB.UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

答え1

Debian はソースコード形式でロケールを提供します。明示的なコンパイルが必要です。その理由は、コンパイルされたロケールはより多くのディスク領域を使用しますが、ほとんどの人はそのうちのほんの一部しか使用しないからです。

rootとして実行し、dpkg-reconfigure localesリストから目的のロケールを選択し(設定に従って、両方がen_GB必要です。両方を選択するen_US.UTF-8ことをお勧めしますen_US)キーを押します。en_GB.UTF-8<OK>

または を編集し、目的の/etc/locale.genロケールの行のコメントを外し、locale-genルートとして実行します。

(注:Ubuntuでは動作が異なります。locale-gen生成したいロケールを引数として使用して実行してください。例:sudo locale-gen en_GB en_US en_GB.UTF-8 en_US.UTF-8.)

locales-all代わりに、Debianには代わりにインストールできるパッケージがありますlocales。これにはすべてのロケールが事前に作成されています。欠点は、より多くのディスク容量を占めることです(112 MB対16 MB)。

答え2

トップクラスのソリューションが私の場合は役に立たなかったので、次のようにしました。

export LC_ALL="en_US.UTF-8"
sudo dpkg-reconfigure locales

その後ログアウトしてログインしましたが、エラーは消えました。

答え3

ラズベリーパイ(または他のもの)でこの問題が発生し、パイをSSHに接続するときにエラーが発生する場合は、他に2つの回避策があります。

一つは、/etc/ssh/sshd_configパイを編集してその行をコメントアウトすることです。

AcceptEnv LANG LC_*

例えばsudo nano /etc/ssh/sshd_config

その後、SSHサーバーを再起動する必要があります。

sudo systemctl restart ssh

もう1つはクライアントコンピュータにあります(パイではない)編集/etc/ssh/ssh_config(上記とは異なるパス)し、その行をコメントアウトします。

SendEnv LANG LC_*

答え4

localesこのパッケージ(またはlocales-all使用しているDebianのバージョンに応じてen_GBロケール)をインストールする必要があります。

この種のエラーを防ぐための回避策:LANG=Crootに設定していいえロケール。

関連情報