Debian squeezeのロケール設定を修正する方法


17

時折ロケールエラーが発生し、dpkg-reconfigureロケールを実行して問題を解決しようとしました。出力は次のとおりです。

:~$ sudo dpkg-reconfigure locales
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_CTYPE = "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_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_CTYPE to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_ALL to default locale: No such file or directory
Generating locales (this might take a while)...
  en_US.UTF-8... done
Generation complete.
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_CTYPE = "UTF-8",
    LANG = "C"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_CTYPE = "UTF-8",
    LANG = "C"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

/ usr / bin / localeを探しましたが、システムに存在しません。作成する必要がありますか?そこに何を入れますか?

また、私は彼の問題の原因がsshd_configファイルにあるという関連の質問を見つけました。ファイルには次のエントリがありました。

AcceptEnv LANG LC_*

私は主に、それが私のVPSに問題を引き起こす可能性があることを懸念しています。私は何をすべきか?ありがとう!


この同じ問題(LC_CTYPE = UTF-8、間違っています)は、MacからLinuxボックスにsshでログインし、端末が環境変数を自動的に設定するときに発生する可能性があります。そのためのチェックボックスがあります。チェックを外すと、準備完了です。iTermでは、プロファイル-> [端末]タブにあります。
raarts

debianベースのディストリビューション(ubuntuを含む)にバグがあるようです。fr_FR.UTF-8を使用すると問題が発生していました(およびロケールが存在していました)。a locale-gen frを実行すると、すべてのfrロケール(fr_BE、fr_CHなど)がビルドされ、問題が解決します。おそらく試してくださいlocale-gen en
アントニーギブズ

回答:


10

最初:

sudo apt-get purge locales

その後:

sudo aptitude install locales

そして有名な:

sudo dpkg-reconfigure locales

これにより、システムからロケールが削除され、ロケールが再インストールされ、libc6が2.19から2.13にダウングレードされます。これが問題です。次に、ロケールを再度構成します。


私はまったく同じ問題を抱えています。したがって、この回答とjessieリポジトリを含めることで、localesダウングレードせずにインストールできましたlibc6
shgnInc

これは助けていない
aexl

8

これは、コンソールではなく、ボックスにSSHで接続するときに発生する場合は、sshクライアントを(ローカルマシンで)再構成してみてください。たとえば、Mac OS Xでは/ private / etc / ssh_configを編集してコメントアウトします

# SendEnv LANG LC_*

Rasberry Pi Bulletin Boardのブレッドマンの投稿に感謝します。


このファイルは現在:/ private / etc / ssh / ssh_config
b4d

7

私はこの問題を長い間抱えていましたが、dpkg-reconfigure locales、locale-genなどに関する通常のアドバイスは役に立たなかった。そのため、環境変数を少し試してみましたが、システムがLC_CTYPE環境変数に影響を与えていることがわかりました。UTF-8有効な値ではありません。en_US.UTF-8修正するように設定します。

変更を永続的にするために、私は走りました

update-locale LC_CTYPE=en_US.UTF-8

に書き込みます/etc/default/locale。そして、システムを再起動して、完全に有効にします。


残念ながら、この利回りperl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LC_CTYPE = "UTF-8", LANG = "en_US.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). *** update-locale: Error: invalid locale settings: LC_CTYPE=en_US.UTF-8
aexl

2

以前のDebianインストールでこれを見たことがありますが、迷惑をかけながら、問題を引き起こすことは一度もありません。

もし

  /usr/bin/locale 

欠落している場合、試してください(rootとして):

  apt-get install libc-bin

libc-binがインストールされ、/ usr / bin / localeが提供されます。

sshd_configのAcceptEnv行はかなり標準的なものであり、ここでの問題の原因ではないはずです。


libc-binはすでにインストールされているので、更新して、dpkg-reconfigure localesもう一度実行してみました。喜びはありません:
blogjunkie

/ usr / bin / localeは現在存在しますか?もしそうなら、の出力はlocale -a/etc/default/localeですか:そして何が入っていますか?
チャドフェラー

`/ etc / default / locale 'の内容:#update-localeによって生成されたファイルLANG = en_US.UTF-8
blogjunkie

locale -aロケール:LC_CTYPEをデフォルトのロケールに設定できません:そのようなファイルまたはディレクトリはありませんC en_US.utf8 POSIX
blogjunkie

aptはlibc-binがインストールされていると主張していましたが、少なくとも1つのファイル(/ usr / bin / locale)が欠落していたため、libc-binを再インストールすると修正されたようです。試してもらえますapt-get install --reinstall localesか?次に、適切な方法としてtryを実行しますlocale-gen。これにより、コメント化されていないロケールが再生成され/etc/locale.genます(のような行が必要ですen_US.UTF-8 UTF-8)。この後、locale -a動作するかどうかを確認します。
チャドフェラー

2

Manojとして以下を行いましたが、#〜/ .bashrcに追加しました:

export LC_ALL=en_US.utf8
export LANGUAGE=en_US.utf8

1

リモートシステムへのssh中にエラーが発生し、リモートシステムを変更したくない場合(たとえば、sshd_configを変更することにより)、ローカルシステムで以下を実行できます(bashを想定)

export LC_ALL=en_US
export LANGUAGE=en_US

その後 ssh user@remote


1

私の新しいDebianインストール(最小)ロケールでは完全に欠落していました。それをインストール(aptitude install locales)して実行すると、locale-genうまくいきました。だから、チャド・フェラーが言ったように、しかしlocales最初にパッケージがインストールされていることを確認してください。


0

/etc/ssh/sshd_configUsePAM no)でsshのPAM認証を無効にした場合、責任ある構成/etc/pam.d/loginは有効ではありません:

session required pam_env.so readenv=1 envfile=/etc/default/locale

結果:/etc/default/locale効果がないようです。

そのため、LANG変数を送信するようにクライアントを設定するか~/.profile~/bashrcなどのプロファイルスクリプトでenv変数をエクスポートする必要があります。

詳細:http : //wiki.debian.org/Locale#Standard


0

ドイツ語のVPSを使用していて、英語の言語パックがインストールされていないため、ロケールを変更できませんでした。

インストール後、最終的にロケールを変更できました

aptitude install language-pack-en

0

Debianシステムでは、これにより問題が解決します。

apt-get install locales-all

Ubuntuシステムでは、次のような特定の言語パックをインストールします。

apt-get install language-pack-en

locale-gen en_US.UTF-8


0

新しいDebian 10インストールに接続するMac。Stack Exchange全体でグーグルで答えられたものはありませんでした。これが何をしたかです(そして簡単で信頼性もありました):

sed -i "s/^AcceptEnv/#AcceptEnv/g" /etc/ssh/sshd_config

Debianボックスでこれを実行すると、接続しているMac端末がサーバーロケールを台無しにするのを停止します(詳細)。

おまけとして、それはサーバーのセキュリティ改善するかもしれません。

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