Otrzymuję ten komunikat za każdym razem, gdy robię coś takiego, jak uruchomienie lub zatrzymanie usługi.
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
Jak naprawić ten błąd?
command-line
server
locale
HackToHell
źródło
źródło
Odpowiedzi:
Najpierw uruchom,
locale
aby wyświetlić listę ustawień regionalnych aktualnie zdefiniowanych dla bieżącego konta użytkownika:Następnie wygeneruj brakujące ustawienia narodowe i ponownie skonfiguruj ustawienia regionalne, aby zwrócić uwagę:
Teraz nie zobaczysz już żadnych błędów!
źródło
en_GB
domyślnie skonfigurowany , ale możesz go skonfigurowaćen_US
. Musisz ręcznie komentowaćen_GB
i odkomentowaćen_US
w/etc/locale.gen
. Zobacz moją odpowiedź askubuntu.com/a/790373/25388 w sprzęcie Raspberry Pi 3b i systemie Raspbian Jessie.Nic sugerowanego powyżej nie działało w moim przypadku (Ubuntu Server 12.04LTS). To, co w końcu pomogło, to wprowadzenie do pliku
/etc/environment
:Z jakiegoś powodu tego brakowało. Dane wyjściowe dla ustawień regionalnych i innych poleceń wyglądały tak, jakby zmienne zostały poprawnie zdefiniowane. Innymi słowy, nie bierz za pewnik, że wszystkie podstawowe rzeczy są deklarowane tam, gdzie powinny być zadeklarowane.
źródło
/etc/default/locale
./etc/default/locale
i więcej ostrzeżeń. Dziękisudo sh -c "echo 'LC_ALL=en_US.UTF-8\nLANG=en_US.UTF-8' >> /etc/environment"
echo
musi zostać uruchomione z włączoną interpretacją ucieczek odwrotnego ukośnika. Jest to to samo co twoje, ale z wyżej wymienionym ustalonym:sh -c "echo -e 'LANG=en_US.UTF-8\nLC_ALL=en_US.UTF-8' > /etc/default/locale"
Powinny zniknąć po wydaniu:
dpkg-reconfigure
rekonfiguruje pakiety po ich zainstalowaniu. Przekaż nazwy pakietów lub pakietów do rekonfiguracji. Zadaje pytania konfiguracyjne, podobnie jak w przypadku pierwszej instalacji pakietu.źródło
en
,en_AU
,en_CA
,en_GB
obecne są domyślnie ale nieen_US
?dpkg-reconfigure
.makemessage
potrzebuje tego. To działało idealnie! dzięki.LC_ALL
zostanie poprawnie ustawiony.Po prostu dodaj następujące elementy do swojego
.bashrc
pliku (zakładając, że używasz bash)źródło
LC_ALL
mogłem w końcu użyćsudo dpkg-reconfigure locales
.Jest to częsty problem, jeśli łączysz się zdalnie, więc rozwiązaniem jest nie przekazywanie ustawień regionalnych. Edytuj
/etc/ssh/ssh_config
i komentujSendEnv LANG LC_*
linię.źródło
/etc/ssh_config
sed -e '/SendEnv/ s/^#*/#/' -i /etc/ssh/ssh_config
(przydatne do udostępniania serwerów)Jest na to polecenie:
Aktualizuje
/etc/default/locale
się podanymi wartościami.źródło
locale
nadal nie pokazuje żadnych wartości utf.locale-gen
. Wcześniej trzeba to zrobićapt-get install locales
.To, co zadziałało dla mnie 12.10, to:
Po tym
dpkg-reconfigure locales
nie uzyskano żadnych wyników.źródło
chroot
pod Debianem. Dzięki :)Nie zapomnij wyjść z sesji SSH (lub X11), wychodząc i logując się ponownie. Wszystkie te sugestie nie działały dla mnie, chyba że zalogowałem się ponownie ....
źródło
W przypadku Ubuntu 12.10 żadne z powyższych nie działało, z wyjątkiem rozwiązania ratzs. Zalecam dodanie tego do pliku /etc/bash.bashrc:
źródło
Utknąłem w dziwnym stanie, w którym ustawiona jest moja lokalna maszyna,
es
więc maszyna zdalna (viavagrant
) została uruchomiona w stanie nieobsługiwanym. Dlatego musiałem korzystać z instrukcjiexport=
tylko po to, by ułatwić sobie sukcesdpkg-reconfigure
. System jest w porządku.źródło
dpkg-recofigure
wyświetlacze mojibake.Napisałem skrypt bash, aby rozwiązać powyższy problem. Powyższe odpowiedzi są przydatne, ale ustawienie zmiennych regionalnych przez proste wyeksportowanie wartości w zmiennej powłoki będzie działać tylko dla sesji. Rozwiązałem ten problem na stałe, eksportując zmienne regionalne w pliku .bash_profile. Możesz także użyć
/etc/profile
pliku zamiast.bash_profile
.Nie zapomnij i wykonaj skrypt w łatwej konfiguracji.
source
.bash_profile
źródło
Możesz spróbować:
gdzie
ru_RU
jest twój kod krajuźródło
Bieżąca zaakceptowana odpowiedź nie jest wystarczająca w strategii rozwiązywania problemów, ponieważ możesz popełnić błąd ludzki. Ty konfiguracji systemu do
en_US
ale maszen_GB
włączony/etc/locale.gen
jak miałem w wątku tutaj na Raspberry Pi 3b. Powinieneś mieć włączone wszystkie używane ustawienia narodowe w/etc/locale.gen
.Włączyłem
en_GB.UTF-8 UTF-8
tylko/etc/locale.gen
. Powinienem mieć tam włączone tylko zen_US.UTF-8 UTF-8
powodu uruchomienia innych poleceń. Skomentowałem więc GB i niekomentowane USA i wszystko działa terazTeraz nie dostaję tych błędów ustawień regionalnych przy żadnych poleceniach.
System: Raspbian Jessie
Sprzęt: Raspberry Pi 3b
źródło
Jak powiedziano tutaj na Wiki Debiana , możesz edytować
/etc/locale.gen
i dodawać wszystkie ustawienia narodowe (lub cofnąć komentarz, miałem listę wszystkich ustawień narodowych, ale wszystkie oprócz tego, którego użyłem jako komentarza), dla których chcesz mieć wsparcie w swoim systemie. Następnie wykonajzaktualizować ustawienia regionalne w systemie. Teraz wszystkie ustawienia regionalne, które dodałeś / odkomentowałeś,
/etc/locale.gen
są dostępne w twoim systemie bez ostrzeżeń.źródło
Jeśli korzystasz ze środowiska KDE, sprawdź
setlocale.sh
plik w~/.kde/env/
:źródło
Może być konieczne uruchomienie
sudo dpkg-reconfigure
aplikacji zainstalowanej, gdy ustawienia „regionalne” są nieprawidłowe / niezgodne.Podczas gdy ustawienia regionalne systemu były nieprawidłowo skonfigurowane, zainstalowałem
vim
. Później, gdy poprawiono ustawienia narodowe systemu, zobaczyłem sytuację, wvim
której znaki utf-8 były wyświetlane niepoprawnie jako dziwne symbolenano
iless
były wyświetlane poprawnie. Bieganiewydawało się, aby rozwiązać problem po naprawieniu ustawień systemu.
Zauważyłem również to samo, co już wspomniano: może być konieczne rozłączenie / ponowne połączenie SSH, aby zmiany były widoczne.
źródło
Dodanie następującego tekstu do
~/.profile
mnie działa:Używam 64-bitowego serwera Ubuntu 16.04 LTS na Linode.
źródło
To działało dla mnie, gdy miałem ten sam problem (w oparciu o rozwiązanie dostarczone przez dman ):
źródło
>
zamiast>>
) wydaje się odpowiedzią na komentarz dmana . Właściwie nie wiem, która droga jest właściwa, czy najlepsza, ale jeśli masz wgląd w to, możesz rozszerzyć tę odpowiedź o więcej informacji. (Nie musisz jednak.)