Gebietsschema nicht gefunden / Einstellen des Gebietsschemas fehlgeschlagen - was soll ich tun?

32

Ich habe Debian 7 i386 auf meinem VPS (OpenVZ) installiert. Alles funktioniert einwandfrei, mit Ausnahme der Ländereinstellungen. Jeder Versuch, etwas zu installieren, zeigt Folgendes:

[...]
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
[...]

Was ich versucht habe:

  1. Ländereinstellungen selbst generieren - update-locale LC_ALL="pl_PL.UTF-8"- Shows: http://www.wklej.org/id/1248438/
  2. apt-get install --reinstall locales http://www.wklej.org/id/1248442/
  3. Das gleiche mit dpkg-reconfigure locales+ Einstellung pl_PL.UTF-8, pl_PL.ISO-8859-2oder auch en_US: http://www.wklej.org/id/1248446/
  4. export LC_ALL=pl_PL.UTF-8 (auch auf root):

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

Folgendes zeigt das Gebietsschema:

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=

Nichts interessantes in / var / log gefunden. Sogar ein Wechsel von repo zu official + purge und manueller Installation löst mein Problem nicht, was sich bei jeder Neuinstallation von Debian 7 bemerkbar macht.

luke_g
quelle

Antworten:

22

Es scheint, dass kein Gebietsschema generiert wird. Haben Sie pl_PL.UTF-8richtig gewählt, dpkg-reconfigure localesindem Sie spaceauf die entsprechende Zeile drücken ?

Wenn ja, die Leitung

pl_PL.UTF-8 UTF-8

in /etc/locale.genwird nicht kommentiert (= beginnt nicht mit #). Wenn Sie dies beheben müssen, müssen Sie auch ausführen locale-gen, um die Gebietsschemas zu generieren. Seine Ausgabe sollte sein:

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

Wenn die zu generierenden Gebietsschemas nicht ausgegeben werden, liegt anscheinend ein Problem mit Ihrem System vor. Ein Grund könnte sein, dass Sie localepurgeinstalliert haben. Wenn keine Dateien vorhanden sind /usr/share/locale/pl/LC_MESSAGESoder /usr/share/locale/pl_PL/LC_MESSAGESdies der Fall ist oder Ihr System defekt ist.

Jofel
quelle
1
Es klappt! Die ausgewählte Position in /etc/locale.gen wurde noch kommentiert, weiß nicht warum (ja, ich erinnere mich an die Leertaste) - vielleicht stimmt etwas nicht mit CHMOD. Vielen Dank!
luke_g
1
Beachten Sie, dass dies -plowdie Standardeinstellung ist und daher weggelassen werden kann. Sie müssen nur anrufen dpkg-reconfigure, der locale-gen aufruft, nachdem Sie den gewünschten Eintrag angekreuzt haben.
Stéphane Chazelas
@StephaneChazelas danke, ich habe es aus der Antwort entfernt und die Verwendung von geklärt locale-gen.
Jofel
Eine andere Möglichkeit ist, wenn Sie Ihr System usw. für en_US konfiguriert haben, dies jedoch /etc/locale.gennur unkommentiert ist en_GB. Ich habe diesen Fehler in diesem Thread hier bemerkt. Unix.stackexchange.com/q/287716/16920 Bitte füge ihn auch der Strategie zur Fehlerbehebung hinzu.
Léo Léopold Hertz 준영
12

zuerst:

sudo apt-get purge locales

dann:

sudo aptitude install locales

und der berühmte:

sudo dpkg-reconfigure locales

Dadurch wird das System von Gebietsschemas befreit, dann werden die Gebietsschemas erneut installiert und libc6 von 2.19 auf 2.13 heruntergestuft, was das Problem ist. Anschließend werden die Gebietsschemas erneut konfiguriert.

tkjef
quelle
Scheint zu helfen, aber der nächste apt-get dist-upgradewird es wieder brechen.
28.
Warum sollte es es brechen? Sollte das Gebietsschema zu diesem Zeitpunkt nicht mit der verwendeten libc6 kompatibel sein? Meine libc6 wurde geändert, um ein anderes Programm zu verwenden. Ich habe es wieder auf die Standardversion von libc6 heruntergestuft, damit mein System ordnungsgemäß funktioniert. An diesem Punkt sollte es sehr gut mit einem apt-get dist-upgrade kompatibel sein
tkjef
1
Und apt-get install localesinstalliert die Locales auf meinem Docker Debian Container.
Stephane
7

Der schnelle und einfache Weg (obwohl dies bedeutet, dass mehr Festplatten als andere verwendet werden):

apt install locales-all
Yajo
quelle
1

versuche zu rennen

locale -a

wenn du hast

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

Die Lösung für diese Situation besteht darin, die Paket-Locales (aus dem glibc-Paket [1]) in der Debian-Version oder in den glibc-all-langpacks CentOS / Fedora zu installieren

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

Sérgio
quelle
glibc-localePaket existiert nicht in Debian
Yajo
sollte das Gebietsschema des Pakets sein ... behoben
Sérgio