常に新しいパッケージをインストールしようとすると、次のメッセージが表示されます。
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=C
rootに設定していいえロケール。