Problem von Gebietsschema kann nicht festgelegt werden; Stellen Sie sicher, dass $ LC_ * und $ LANG korrekt sind!

49

Wenn ich immer versuche, ein neues Paket zu installieren, erhalte ich folgende Meldung:

Can't set locale; make sure $LC_* and $LANG are correct!
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = "en_GB:en",
    LC_ALL = (unset),
    LC_CTYPE = "en_GB.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_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

Mein Betriebssystem ist Debian Jessie 8.3 (Mate) mit englischer und französischer Tastatur. Wenn ich locale eingebe, bekomme ich folgendes:

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=en_US.UTF-8
LANGUAGE=en_GB:en
LC_CTYPE=en_GB.UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
Ismail Sensei
quelle

Antworten:

62

Debian liefert Gebietsschemas in Quellform. Sie müssen explizit kompiliert werden. Der Grund dafür ist, dass kompilierte Gebietsschemas viel mehr Speicherplatz belegen, aber die meisten Leute nur einige von ihnen verwenden.

Führen Sie dpkg-reconfigure localesals root, wählen Sie die Ländereinstellungen in der Liste möchten (mit den Einstellungen, die Sie benötigen en_GBund en_US.UTF-8- Ich empfehle die Auswahl en_USund en_GB.UTF-8auch) dann drücken <OK>.

Alternativ können Sie /etc/locale.gendie Zeilen für die gewünschten Ländereinstellungen bearbeiten , auskommentieren und locale-genals root ausführen .

(Hinweis: Unter Ubuntu funktioniert dies anders: Führen Sie locale-gendie Ländereinstellungen aus, die Sie als Argumente generieren möchten, z sudo locale-gen en_GB en_US en_GB.UTF-8 en_US.UTF-8. B.. )

Alternativ hat Debian jetzt ein Paket, locales-alldas Sie anstelle von installieren können locales. Alle Ländereinstellungen wurden vorab generiert. Der Nachteil ist, dass sie mehr Speicherplatz verbrauchen (112 MB gegenüber 16 MB).

Gilles 'SO - hör auf böse zu sein'
quelle
1
Es hat funktioniert, aber erst nachdem ich mich abgemeldet und dann wieder angemeldet habe.
Forivin
Arbeitete auch für mich!
Jamie Ivanov
Die Bearbeitung /etc/locale.generledigte den Job nicht für mich (Logout / Login erledigt), sondern locale-genlöste mein tmux: need UTF-8 locale (LC_CTYPE)Problem amDebian 4.9.82
eapo
2
@eapo Wie ich in meiner Antwort feststelle, müssen Sie bearbeiten /etc/locale.gen und dann ausführen locale-gen.
Gilles 'SO - hör auf böse zu sein'
Ich habe das gewisse Etwas über die Aktivierung en_US.UTF-8und Ihr eigenes Gebietsschema verpasst . Ich fand den schwierigen Weg heraus und fuhr dann hierher zurück, um meine eigene Antwort zu geben, bevor mir klar wurde, dass es die ganze Zeit hier war.
Alastair McCormack
19

Die bestbewertete Lösung hat in meinem Fall nicht geholfen, also habe ich diese verwendet:

export LC_ALL="en_US.UTF-8"
sudo dpkg-reconfigure locales

Danach habe ich mich abgemeldet und angemeldet und es fehlte ein Fehler.

ssasa
quelle
2
Es wird dringend davon abgeraten, LC_ALL zu verwenden, da dadurch alles außer Kraft gesetzt wird. Bitte verwenden Sie es nur zum Testen und legen Sie es niemals in einer Startdatei fest. Stand: wiki.debian.org/Locale
Pitone Maledetto
6

Diese Befehle haben mir das Leben gerettet

# echo "LC_ALL=en_US.UTF-8" >> /etc/environment
# echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
# echo "LANG=en_US.UTF-8" > /etc/locale.conf
# locale-gen en_US.UTF-8
Taras Vaskiv
quelle
6

Wenn Sie dieses Problem bei einem Himbeer-Pi (oder einem anderen?) Haben und die Fehlermeldung "ssh to the pi" angezeigt wird, gibt es 2 andere Lösungen

Man editiert /etc/ssh/sshd_configdas pi und kommentiert die Zeile aus

AcceptEnv LANG LC_*

zum Beispiel sudo nano /etc/ssh/sshd_config

Danach sollten Sie den SSH-Server neu starten

sudo systemctl restart ssh

Die andere ist auf Ihrem Client-Rechner ( nicht der pi ) bearbeiten /etc/ssh/ssh_config(anderer Pfad als oben) und die Zeile auskommentieren

SendEnv LANG LC_*
gman
quelle
Beides ist für mich unkommentiert, aber es entsteht immer noch ein Problem. (RPi3, macOS10.14)
9.
Kommentiert out jetzt die Linie. Habe nicht wirklich die Möglichkeit zu testen, klingt aber logischer ... Danke.
Jorijnsmit
2

Sie müssen das Paket installieren locales(oder locales-alldas Gebietsschema en_GB, abhängig von Ihrer Debian-Version).

Problemumgehung, um solche Fehler zu vermeiden: Setzen Sie LANG=Cden Wert auf root, damit keine Gebietsschemas verwendet werden.

Giacomo Catenazzi
quelle