web-dev-qa-db-ja.com

ロケールを設定できない問題。 $ 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

私のOSは、フランス語のキーボードで英語を使用する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=
52
Ismail Sensei

Debianはロケールをソース形式で出荷します。明示的にコンパイルする必要があります。この理由は、コンパイルされたロケールはより多くのディスク領域を使用しますが、ほとんどの人はそれらのいくつかしか使用しないためです。

Rootとしてdpkg-reconfigure localesを実行し、リストから希望のロケールを選択します(設定にはen_GBen_US.UTF-8が必要です— en_USen_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)。)

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

私の場合、最高評価のソリューションは役に立たなかったので、これを使用しました:

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

その後、ログアウトしてログインしましたが、エラーがありませんでした。

21
ssasa

これらのコマンドは私の命を救った

# echo "LC_ALL=en_US.UTF-8" >> /etc/environment
# echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
# echo "LANG=en_US.UTF-8" > /etc/locale.conf
# locale-gen en_US.UTF-8
8
Taras Vaskiv

Raspberry Pi(またはその他)でこの問題が発生していて、piにsshするとエラーが発生する場合は、他に2つの解決策があります

1つは編集/etc/ssh/sshd_config piで行をコメント化

AcceptEnv LANG LC_*

例えば ​​Sudo nano /etc/ssh/sshd_config

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

Sudo systemctl restart ssh

もう1つはクライアントマシン上にあります(piではない)edit /etc/ssh/ssh_config(上記とは異なるパス)と行をコメント化

SendEnv LANG LC_*
6
gman

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

このようなエラーが発生しないようにするための回避策:LANG=Cをrootに設定して、noロケールを使用するようにします。

2