ロケールが見つかりません/ロケールの設定に失敗しました-どうすればよいですか?


32

VPS(OpenVZ)にDebian 7 i386をインストールしました。ロケールを除くすべてが正常に動作します-何でもインストールしようとすると表示されます:

[...]
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LANG = "pl_PL.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_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
[...]

私が試したこと:

  1. 自分でロケールを生成するupdate-locale LC_ALL="pl_PL.UTF-8"--ショー:http : //www.wklej.org/id/1248438/
  2. apt-get install --reinstall locales http://www.wklej.org/id/1248442/
  3. 同じdpkg-reconfigure locales+の設定pl_PL.UTF-8pl_PL.ISO-8859-2あるいはen_UShttp://www.wklej.org/id/1248446/
  4. export LC_ALL=pl_PL.UTF-8 (ルートでも):

    -bash: warning: setlocale: LC_ALL: cannot change locale (pl_PL.UTF-8)
    

ロケールを示すものは次のとおりです。

root:~# locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
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=pl_PL.UTF-8
LANGUAGE=
LC_CTYPE="pl_PL.UTF-8"
LC_NUMERIC="pl_PL.UTF-8"
LC_TIME="pl_PL.UTF-8"
LC_COLLATE="pl_PL.UTF-8"
LC_MONETARY="pl_PL.UTF-8"
LC_MESSAGES="pl_PL.UTF-8"
LC_PAPER="pl_PL.UTF-8"
LC_NAME="pl_PL.UTF-8"
LC_ADDRESS="pl_PL.UTF-8"
LC_TELEPHONE="pl_PL.UTF-8"
LC_MEASUREMENT="pl_PL.UTF-8"
LC_IDENTIFICATION="pl_PL.UTF-8"
LC_ALL=

/ var / logに興味深いものは見つかりませんでした。リポジトリを公式+パージおよび手動インストールロケールに変更しても、私の問題は解決しません。これは、Debian 7の新規インストールのたびに現れます。

回答:


22

ロケールは生成されていないようです。対応する行を押してpl_PL.UTF-8適切に選択しましdpkg-reconfigure localesspaceか?

はいの場合、行

pl_PL.UTF-8 UTF-8

in /etc/locale.genはコメントされていません(=で始まりません#)。これを修正する必要がある場合locale-genは、ロケールを生成するために実行する必要もあります。出力は次のようになります。

Generating locales (this might take a while)...
   pl_PL.UTF-8... done
Generation complete.

生成したいロケールが出力されない場合、システムに何か問題があるようです。1つの理由として、localepurgeインストールしたことが考えられます。ファイルが入っていない場合、/usr/share/locale/pl/LC_MESSAGESまたは/usr/share/locale/pl_PL/LC_MESSAGESこれに該当する場合、またはシステムが破損している場合。


1
できます!/etc/locale.genの選択された位置はまだコメントされていますが、理由はわかりません(はい、スペースバーについて覚えています)-CHMODに何か問題があるかもしれません。ありがとう!
luke_g 14年

1
-plowデフォルトでは、これを省略することができます。を呼び出すだけで、必要なdpkg-reconfigureエントリにチェックマークを付けた後にlocale-genが呼び出されます。
ステファンシャゼル

@StephaneChazelasありがとう、答えからそれを削除し、の使い方を明確にしましたlocale-gen
ジョフェル14年

別の可能性は、システムなどをen_US用に設定したが、/etc/locale.genコメントを外しただけの場合en_GBです。unix.stackexchange.com/q/287716/16920のこのスレッドでこの間違いに気づいたので、それもthroubleshoot戦略に追加してください。
レオレオポルトヘルツ준영

12

最初:

sudo apt-get purge locales

その後:

sudo aptitude install locales

そして有名な:

sudo dpkg-reconfigure locales

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


役立つようですが、次apt-get dist-upgradeは再びそれを破るでしょう。
14

なぜそれが壊れるのですか?その時点で、ロケールは使用されているlibc6と互換性があるべきではありませんか?私のlibc6は、他のプログラムを使用するように変更されました。システムが正常に動作するように、デフォルトのlibc6バージョンにダウングレードしました。その時点で、apt-get dist-upgradeと非常に互換性があるはずです
-tkjef

1
アンはapt-get install locales私のドッカーDebianのコンテナにロケールをインストールしました。
ステファン

7

すばやく簡単な方法(ただし、他のディスクよりも多くのディスクが使用されることを意味します):

apt install locales-all

1

走ってみて

locale -a

あなたが得た場合

locale: Cannot set LC_CTYPE to default locale: No such file or directory
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

この状況の解決策は、パッケージロケールを(glibcパッケージ[1]から)debianフレーバーまたはglibc-all-langpacks CentOS / Fedoraにインストールすることです

[1] https://tracker.debian.org/pkg/glibc


glibc-localeパッケージは、Debianには存在しません
Yajo

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