web-dev-qa-db-ja.com

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

私の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 localeshttp://www.wklej.org/id/1248442/
  3. dpkg-reconfigure locales +設定pl_PL.UTF-8pl_PL.ISO-8859-2またはen_USと同じ: http://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に興味深いものは見つかりませんでした。 repoを公式+パージおよび手動インストールロケールに変更しても、問題は解決しません。これは、Debian 7の新規インストールごとに明らかになります。

33
luke_g

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

はいの場合、行

pl_PL.UTF-8 UTF-8

/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にファイルがない場合は、これが原因であるか、システムが壊れています。

22
jofel

最初:

Sudo apt-get purge locales

次に:

Sudo aptitude install locales

そして有名な:

Sudo dpkg-reconfigure locales

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

13
tkjef

迅速かつ簡単な方法(ただし、他のディスクより多くのディスクを使用することになります):

apt install locales-all
7
Yajo

実行してみてください

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

1
Sérgio