bash warning setlocale... Jak okiełznać polskie znaki w Debianie?
debian locale lang pl_PL.UTF-8 setlocale error fix
bash: warning: setlocale... Jak okiełznać polskie znaki w Debianie? 🇵🇱
Wchodzisz do świeżo postawionego kontenera lub systemu Debian, gotów do działania, a wita Cię seria niezrozumiałych ostrzeżeń:
Co to u licha jest? Dlaczego system "nie może zmienić locale"? To częsty problem, który oznacza, że Twój system nie został nauczony, jak poprawnie obsługiwać i wyświetlać znaki specyficzne dla języka polskiego, mimo że zmienne środowiskowe (LANG) o to proszą.
Czym są te całe "locales"?
W skrócie, locales to zestaw reguł i definicji, które mówią systemowi, jak ma obsługiwać regionalne ustawienia. To nie tylko "polskie literki" (kodowanie znaków), ale też:
- Format daty i czasu (
LC_TIME) - Format liczb (np. przecinek czy kropka jako separator dziesiętny -
LC_NUMERIC) - Symbol waluty (
LC_MONETARY) - Zasady sortowania alfabetycznego (
LC_COLLATE)
Bez poprawnie skonfigurowanego polskiego locale, system działa w domyślnym, minimalistycznym trybie "C", co prowadzi do wspomnianych błędów i potencjalnych problemów z wyświetlaniem znaków.
Krok po kroku: Uczymy Debiana polskiego!
Na szczęście, rozwiązanie tego problemu jest proste i sprowadza się do kilku komend. Poniżej przeprowadzam Cię przez cały proces.
Krok 1: Aktualizacja listy pakietów
Zawsze dobra praktyka przed instalacją czegokolwiek.
Krok 2: Instalacja pakietu locales
To narzędzie jest niezbędne do zarządzania regionalizacją. W wielu minimalistycznych obrazach Debiana może go brakować, chociaż często jest już zainstalowany.
Krok 3: Włączenie polskiego locale
Musimy powiedzieć systemowi, że chcemy używać polskiego zestawu znaków. Robimy to, edytując plik /etc/locale.gen. Zamiast otwierać go ręcznie, użyjemy magicznej komendy sed, która odkomentuje za nas odpowiednią linię:
Krok 4: Generowanie plików locale
Teraz, gdy system wie, że interesuje nas pl_PL.UTF-8, musimy kazać mu wygenerować odpowiednie pliki definicji.
Zobaczysz w wyniku, że generowane są locale en_US.UTF-8 (domyślne) oraz nasze pl_PL.UTF-8.
Krok 5: Ustawienie domyślnego języka
Ostatni krok to poinformowanie całego systemu, że pl_PL.UTF-8 ma być od teraz domyślnym locale.
Weryfikacja
Aby sprawdzić, czy wszystko się udało, wystarczy ponownie wejść do kontenera/terminala i wpisać komendę locale. Wynik powinien wyglądać mniej więcej tak:
Błędy setlocale znikną, a Twój system Debian będzie w pełni gotowy na pracę z językiem polskim!