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=
Ismail Sensei
źródło

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).

Gilles „SO- przestań być zły”
źródło
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.

ssasa
źródł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
Taras Vaskiv
źródło
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_*
gman
źródło
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.

Giacomo Catenazzi
źródło