Problem z ustawieniem ustawień narodowych; upewnij się, że $ LC_ * i $ LANG są poprawne!


49

Gdy zawsze próbuję zainstalować nowy pakiet, pojawia się następujący komunikat:

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

Mój system operacyjny to Debian Jessie 8.3 (Mate) przy użyciu języka angielskiego z francuską klawiaturą. Po wpisaniu ustawień regionalnych otrzymuję:

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=

Odpowiedzi:


62

Debian dostarcza ustawienia narodowe w formie źródłowej. Muszą być skompilowane jawnie. Powodem tego jest to, że skompilowane ustawienia narodowe zajmują dużo więcej miejsca na dysku, ale większość ludzi korzysta tylko z kilku z nich.

Uruchom dpkg-reconfigure localesjako root, wybierz z listy żądane ustawienia narodowe (ze swoimi ustawieniami potrzebujesz en_GBi en_US.UTF-8- Zalecam wybranie en_USi en_GB.UTF-8również), a następnie naciśnij <OK>.

Alternatywnie edytuj /etc/locale.gen, odkomentuj wiersze dla żądanych ustawień narodowych i uruchom locale-genjako root.

(Uwaga: w Ubuntu działa to inaczej: uruchom locale-genz ustawieniami narodowymi, które chcesz wygenerować jako argumenty, np sudo locale-gen en_GB en_US en_GB.UTF-8 en_US.UTF-8.)

Alternatywnie, Debian ma teraz pakiet, locales-allktóry możesz zainstalować zamiast locales. Ma wstępnie wygenerowane wszystkie ustawienia narodowe. Minusem jest to, że zajmują więcej miejsca na dysku (112 MB vs 16 MB).


1
Działało, ale dopiero po wylogowaniu i ponownym zalogowaniu.
— Forivin

Pracowałem też dla mnie!
— Jamie Ivanov

edycja /etc/locale.gennie locale-gentmux: need UTF-8 locale (LC_CTYPE)Debian 4.9.82
— spełniła

2
@eapo Jak stwierdzam w mojej odpowiedzi, musisz edytować, /etc/locale.gen a następnie uruchomić locale-gen.
— Gilles „SO- przestań być zły”

Tęskniłem trochę za włączeniem en_US.UTF-8i twoją lokalizacją. Dowiedziałem się na własnej skórze, po czym krążyłem z powrotem tutaj, aby udzielić mojej własnej odpowiedzi, zanim zdałem sobie sprawę, że już tu jest.
— Alastair McCormack

19

Najlepiej ocenione rozwiązanie nie pomogło w moim przypadku, więc skorzystałem z tego:

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

Następnie wylogowałem się i zalogowałem, a błędu nie było.


2
Używanie LC_ALL jest zdecydowanie odradzane, ponieważ zastępuje wszystko. Używaj go tylko podczas testowania i nigdy nie ustawiaj go w pliku startowym. zgodnie z: wiki.debian.org/Locale
— Pitone Maledetto

6

Te polecenia uratowały mi życie

# 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

5

Jeśli masz ten problem na Raspberry Pi (lub innym?) I pojawia się błąd, gdy ssh do pi są 2 inne rozwiązania

Jednym z nich jest edycja /etc/ssh/sshd_configpi i skomentowanie linii

AcceptEnv LANG LC_*

na przykład sudo nano /etc/ssh/sshd_config

Następnie powinieneś zrestartować serwer ssh

sudo systemctl restart ssh

Drugi znajduje się na komputerze klienta ( nie w wersji pi ) edytuj /etc/ssh/ssh_config(inna ścieżka od powyższej) i komentuj linię

SendEnv LANG LC_*

Oba są dla mnie niekomentowane, ale problem wciąż się pojawia. (RPi3, macOS10.14)
— jorijnsmit

Skomentowane na linię teraz. Naprawdę nie mam okazji do testowania, ale brzmi to bardziej logicznie ... Dzięki.
— jorijnsmit

2

Musisz zainstalować pakiet locales(lub locales-allustawienia narodowe en_GB, w zależności od posiadanej wersji Debiana).

Obejście problemu LANG=Cpolegającego na braku takich błędów: ustaw na root, aby nie używał ustawień narodowych.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.