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


49

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

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=

回答:


62

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

ファイル名を指定して実行dpkg-reconfigure localesルートとして、リストにしたいロケールを選択します(お使いの設定で、あなたが必要en_GBen_US.UTF-8-私は選択をお勧めen_USen_GB.UTF-8同様)を押します<OK>

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

(注:Ubuntuでは、これは異なる動作locale-genをしますsudo locale-gen en_GB en_US en_GB.UTF-8 en_US.UTF-8。例えば、生成したいロケールを引数として実行します。)

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


1
動作しましたが、ログアウトしてから再度ログインしてからです。
フォービン

私のためにも働いた!
ジェイミーイワノフ

編集/etc/locale.genは私のために仕事をしませんでした(ログアウト/ログインをしました)がlocale-gentmux: need UTF-8 locale (LC_CTYPE)上の問題を解決しましたDebian 4.9.82
-eapo

2
@eapo私の答えで述べているように、編集/etc/locale.gen してから実行する必要がありますlocale-gen
ジル 'SO-悪であるのをやめる'

en_US.UTF-8同様に有効にすることとあなた自身のロケールについて少し見逃しました。難しい方法を見つけて、ここに戻って自分の答えを出して、それがずっとここにあることに気付きました。
アラステアマコーマック

19

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

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

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


2
LC_ALLを使用すると、すべてが上書きされるため、使用しないことを強くお勧めします。テスト時にのみ使用し、スタートアップファイルに設定しないでください。通り:wiki.debian.org/Locale
Pitone Maledetto

6

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

# 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

6

ラズベリーパイ(または他の?)でこの問題が発生しており、パイにsshするときにエラーが発生する場合は、他に2つの解決策があります

1つは/etc/ssh/sshd_configpiを編集し、行をコメントアウトする

AcceptEnv LANG LC_*

例えば sudo nano /etc/ssh/sshd_config

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

sudo systemctl restart ssh

もう1つはクライアントマシン(piではなく/etc/ssh/ssh_config上にあり(上とは異なるパス)編集して、行をコメントアウトします。

SendEnv LANG LC_*

これらは両方ともコメントされていませんが、問題が発生します。(RPi3、macOS10.14)
jorijnsmit

行をコメントアウトしました。実際にテストする機会はありませんが、このように論理的に聞こえます...ありがとう。
-jorijnsmit

2

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.