it-swarm.com.de

Wie behebe ich mein Gebietsschema?

Ich erhalte diese Meldung jedes Mal, wenn ich einen Dienst starte oder stoppe.

Perl: warning: Setting locale failed.   
Perl: warning: Please check that your locale settings:   
        LANGUAGE = "en_US:en",   
        LC_ALL = (unset),   
        LC_MESSAGES = "en_US.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_MESSAGES to default locale: No such file or directory   
locale: Cannot set LC_ALL to default locale: No such file or directory   
(Reading database ... 21173 files and directories currently installed.)  
Removing bind9 ...  
 * Stopping domain name service... bind9                                        [ OK ]
Processing triggers for man-db ...   
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   

Wie behebe ich diesen Fehler?

505
HackToHell

Führen Sie zuerst locale aus, um die Gebietsschemas aufzulisten, die derzeit für das aktuelle Benutzerkonto definiert sind:

$ locale
LANG=C
LANGUAGE=
LC_CTYPE=fi_FI.UTF-8
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE=fi_FI.UTF-8
LC_MONETARY="C"
LC_MESSAGES=fi_FI.UTF-8
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=

Generieren Sie dann das fehlende Gebietsschema und konfigurieren Sie die Gebietsschemas neu, um dies zu beachten:

$ Sudo locale-gen "en_US.UTF-8"
Generating locales...
  en_US.UTF-8... done
Generation complete.

$ Sudo dpkg-reconfigure locales
Generating locales...
  en_US.UTF-8... up-to-date
Generation complete.

Jetzt sehen Sie keine Fehler mehr!

507

In meinem Fall hat nichts oben vorgeschlagenes funktioniert (Ubuntu Server 12.04LTS). Was schließlich geholfen hat, war das Ablegen der Datei /etc/environment:

LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8

Aus irgendeinem Grund fehlte es. Die Ausgaben für das Gebietsschema und andere Befehle schienen so zu sein, als wären die Variablen richtig definiert. Mit anderen Worten, es ist nicht selbstverständlich, dass alle grundlegenden Dinge dort deklariert werden, wo sie deklariert werden sollen.

365
Marcin

Sie sollten nach der Ausstellung verschwinden:

Sudo locale-gen en_US en_US.UTF-8
Sudo dpkg-reconfigure locales 

dpkg-reconfigure konfiguriert Pakete neu, nachdem sie bereits installiert wurden. Übergeben Sie ihm die Namen eines Pakets oder von Paketen, die neu konfiguriert werden sollen. Es werden Konfigurationsfragen gestellt, ähnlich wie bei der Erstinstallation des Pakets.

148
Rinzwind

Fügen Sie Ihrer .bashrc -Datei einfach Folgendes hinzu (vorausgesetzt, Sie verwenden bash)

export LC_ALL="en_US.UTF-8"
118
ratz

Dies ist ein häufiges Problem, wenn Sie eine Remoteverbindung herstellen. Daher besteht die Lösung darin, Ihr Gebietsschema nicht weiterzuleiten. Bearbeiten Sie /etc/ssh/ssh_config und kommentieren Sie SendEnv LANG LC_* aus.

94
user249697

Dafür gibt es einen Befehl:

Sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8

Es aktualisiert /etc/default/locale mit den angegebenen Werten.

72
sgtpep

Was für mich am 12.10 funktioniert hat war:

apt-get install language-pack-en-base  

Dies war, nachdem dpkg-reconfigure locales keine Ergebnisse hervorgebracht hatte.

32

Vergessen Sie nicht, Ihre SSH-Sitzung (oder Ihre X11-Sitzung) durch Beenden und erneutes Anmelden zu beenden. Alle diese Vorschläge haben bei mir nur funktioniert, wenn ich mich erneut angemeldet habe.

18

Ich befand mich in einem seltsamen Zustand, in dem mein lokaler Computer auf es eingestellt war, und daher wurde der Remote-Computer (über vagrant) in einem nicht bearbeiteten Zustand bereitgestellt. Daher musste ich das Handbuch export= nur verwenden, um einen erfolgreichen dpkg-reconfigure zu ermöglichen. Dann ist das System in Ordnung.

export LC_ALL="en_US.UTF-8"
Sudo dpkg-reconfigure locales
11
Charney Kaye

Für Ubuntu 12.10 funktionierte bis auf Ratzs 'Lösung nichts. Ich empfehle, dies zu Ihrer /etc/bash.bashrc-Datei hinzuzufügen:

export LC_ALL="en_ZA.UTF-8"
export LC_CTYPE="en_ZA.UTF-8"
11
Lovemore Nalube

Ich habe ein Bash-Skript geschrieben, um das obige Problem zu beheben. Die obigen Antworten sind nützlich, aber das Festlegen der Gebietsschemavariablen durch einfaches Exportieren der Werte in die Shell-Variable funktioniert nur für eine Sitzung. Ich habe dieses Problem dauerhaft gelöst, indem ich die Gebietsschemavariablen in die Datei .bash_profile exportiert habe. Sie können auch die Datei /etc/profile anstelle von .bash_profile verwenden.

echo "export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8">>~/.bash_profile

Vergessen Sie nicht, source den .bash_profile und folgen Sie dem Skript in der einfachen Einrichtung.

9
Ajeet Khan

Du kannst es versuchen:

export LANGUAGE=ru_RU.UTF-8
export LC_CTYPE=ru_RU.UTF-8
export LC_NUMERIC=ru_RU.UTF-8
export LC_TIME=ru_RU.UTF-8
export LC_COLLATE=ru_RU.UTF-8
export LC_MONETARY=ru_RU.UTF-8
export LC_MESSAGES=ru_RU.UTF-8
export LC_PAPER=ru_RU.UTF-8
export LC_NAME=ru_RU.UTF-8
export LC_ADDRESS=ru_RU.UTF-8
export LC_TELEPHONE=ru_RU.UTF-8
export LC_MEASUREMENT=ru_RU.UTF-8
export LC_IDENTIFICATION=ru_RU.UTF-8
export LC_ALL=ru_RU.UTF-8

wobei ru_RU Ihre Landesvorwahl ist.

8
Koss

Die aktuell akzeptierte Antwort ist in der Problembehandlungsstrategie nicht ausreichend, da ein menschliches Versagen auftreten kann. Sie richten Ihr System auf en_US ein, aber Sie haben en_GB in/etc/locale.gen aktiviert, wie ich es im Thread hier für Raspberry Pi 3b getan habe. Sie sollten alle Ihre verwendeten Gebietsschemas in /etc/locale.gen aktiviert haben.

Ich hatte en_GB.UTF-8 UTF-8 nur in /etc/locale.gen aktiviert. Ich hätte dort nur en_US.UTF-8 UTF-8 aktivieren sollen, weil andere Befehle dafür laufen. Also habe ich GB kommentiert und US unkommentiert, und jetzt funktioniert alles

[email protected]:~ $ Sudo vim /etc/locale.gen

[email protected]:~ $ Sudo locale-gen 
Generating locales (this might take a while)...
  en_US.UTF-8... done
Generation complete.

[email protected]:~ $ Sudo a2enmod rewrite && a2enmod headers && a2enmod ssl
Module rewrite already enabled
Module headers already enabled
Considering dependency setenvif for ssl:
Module setenvif already enabled
Considering dependency mime for ssl:
Module mime already enabled
Considering dependency socache_shmcb for ssl:
Module socache_shmcb already enabled
Module ssl already enabled

Jetzt erhalte ich diese Gebietsschemafehler nicht mit irgendwelchen Befehlen.

System: Raspbian Jessie
Hardware: Raspberry Pi 3b

Wie gesagt hier im Debian-Wiki , können Sie /etc/locale.gen bearbeiten und alle Gebietsschemas hinzufügen (oder sie auskommentieren, ich hatte eine Liste aller Gebietsschemas, aber aller, die ich als Kommentare verwendet habe) möchten Support für Ihr System haben. Dann führen

Sudo dpkg-reconfigure locales

um die Ländereinstellungen auf Ihrem System zu aktualisieren. Jetzt sind alle in /etc/locale.gen hinzugefügten/nicht kommentierten Ländereinstellungen auf Ihrem System ohne Warnungen verfügbar.

6
msrd0

Wenn Sie eine KDE-Umgebung verwenden, überprüfen Sie die Datei setlocale.sh in ~/.kde/env/:

$ cat ~/.kde/env/setlocale.sh 
export LANG=en_US.UTF-8
export LANGUAGE=en_US:ru:en
3
MaximKostrikin
  1. Möglicherweise müssen Sie Sudo dpkg-reconfigure auch für die Anwendung ausführen, die Sie installiert haben, während die Einstellungen für "Gebietsschema" ungültig waren/nicht übereinstimmen.

    Während das Systemgebietsschema nicht korrekt eingerichtet wurde, habe ich vim installiert. Später, als das Gebietsschema des Systems behoben wurde, sah ich eine Situation, in der vim utf-8-Zeichen fälschlicherweise als seltsame Symbole anzeigte, während nano und less sie korrekt anzeigten. Laufen

    Sudo dpkg-reconfigure vim
    

    schien das Problem zu beheben, nachdem die Systemeinstellungen behoben wurden.

  2. Das Gleiche ist mir auch aufgefallen, wie bereits erwähnt: Möglicherweise müssen Sie SSH trennen/erneut verbinden, um die Änderungen sichtbar zu machen.

2
ajaaskel

Das Hinzufügen des folgenden Texts zu ~/.profile funktioniert für mich:

export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8

Ich benutze Ubuntu 16.04 LTS 64-Bit-Server unter Linode.

2
Jingguo Yao

Dies funktionierte für mich, als ich das gleiche Problem hatte (basierend auf der Lösung bereitgestellt von dman ):

Sudo sh -c "echo -e 'LC_ALL=en_US.UTF-8\nLANG=en_US.UTF-8' >> /etc/environment"
2
pythonhunter