お願いします、
半年前にサーバーをインストールして以来、誰かがこの奇妙なロケール関連の警告に光を当てることができますか。これは「LC_CTYPEをデフォルトのロケールに設定できない」の変形であり、かなり一般的な問題のようですが、以前に報告したどのケースとも一致しない、奇妙なひねりがあります。
この警告は、WindowsでPuTTYを使用してLinuxサーバーにログインした直後に出力されます。
-bash: warning: setlocale: LC_CTYPE: cannot change locale (en_GB.UTF-8,LANG=en_US.UTF-8): No such file or directory
-bash: warning: setlocale: LC_CTYPE: cannot change locale (en_GB.UTF-8,LANG=en_US.UTF-8)
GitBashからssh
コマンドを使用した場合も同じことが起こります。 VNCを使用してログを記録し、KDEでKonsoleを開くと、これらの警告なしにBashが開きます。
私の場合に固有なのは、LC_CTYPEを設定しようとする値:en_GB.UTF-8,LANG=en_US.UTF-8
です。 2つの連結された文字列のように見えます。どうしてこんなことが起こったの!?
これはサーバー側の元の出力です
$ locale
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
LANG=en_GB.UTF-8
LC_CTYPE=en_GB.UTF-8,LANG=en_US.UTF-8
LC_NUMERIC="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_COLLATE="en_GB.UTF-8"
...
LC_IDENTIFICATION="en_GB.UTF-8"
LC_ALL=
ご了承ください:
1)LC_ALLを除くすべての変数が設定されています-それは正常ですか?
2)LC_CTYPEに奇妙な「連結」値があります
3)LC_CTYPEを除くすべての値には引用符があります
4)警告も同様ですが、LC_ALLについても不平を言っています
サーバー側で~/.profile
を編集し、次のように追加して修正しようとしました。
export LANG=en_GB.UTF-8
export LC_ALL=en_GB.UTF-8
現在、再ログ後、ロケールは妥当な値を示しているようで、localeコマンドからの警告はありません。
$ locale
LANG=en_GB.UTF-8
LC_CTYPE="en_GB.UTF-8"
LC_NUMERIC="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_COLLATE="en_GB.UTF-8"
...
LC_IDENTIFICATION="en_GB.UTF-8"
LC_ALL=en_GB.UTF-8
一部の値の前後に引用符がないことを心配する必要がありますか?
しかし、ログイン警告はまだそこにあり、どこかからen_GB.UTF8,LANG=en_US.UTF-8
を引き出しています。
-bash: warning: setlocale: LC_CTYPE: cannot change locale (en_GB.UTF8,LANG=en_US.UTF-8): No such file or directory
-bash: warning: setlocale: LC_CTYPE: cannot change locale (en_GB.UTF8,LANG=en_US.UTF-8)
Linuxサーバー:「openSUSELeap15.0」
Windowsクライアント1:PuTTY 0.70
Windowsクライアント2:Git Bash 2.21.0(MinTTYターミナル)
何か案は?
解決した、謎の終わり。問題はファイルにありました/etc/locale.conf
。奇妙な線が1つだけありました。
LC_CTYPE=en_GB.UTF-8,LANG=en_US.UTF-8
私がそれを変更したとき:
LC_CTYPE=en_GB.UTF-8
LANG=en_US.UTF-8
..警告が消えました!
OpenSUSEのバグのようです。ほとんどの場合、一部のシステムアップグレードがこのファイルを台無しにし、行末をコンマに変えました。私はこれについて良い助けを得ました openSUSEフォーラム 。
(コメントはできません。)
Linuxの/ etc/ssh/sshd_configは次の行ですか?
AcceptEnv LANG LC_*