Debian Paketmanagement - Spracheinstellung


© Mai 2021, Letzte Änd. 25.05.21

--- diese Seite ist noch unvollständig ---

Themen

Spracheinstellungen nicht richtig gesetzt

Bei der Installation von DEB 10 via Live-System und Zugriff via ssh,
habe ich zum ersten Male folgende Fehlermeldung.gesehen.
Details erhält man über   locale -a

apt-file list net-tools
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LANG = "en_GB.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
…

Den Unterschied kann man auch über locale aufzeigen.

locale -a                              auf dem DEB 10 Live
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_COLLATE to default locale: No such file or directory
…

locale -a                              wenn alles in Ordnung ist
C
C.UTF-8
en_GB.utf8
POSIX

Glücklicherweise lässt sich das schnell beheben. dachte ich zunächst.
Zumindest temporär verschwindet die Meldung,
wenn ich die Variablen händisch setze.

export LANGUAGE=de_DE.UTF-8
                                       löst das Problem temporär
export LC_ALL=de_DE.UTF-8

Leider ist die Meldung nach erneuten Einloggen wieder da.
Also habe ich gedacht die Variablen müssen woanders gesetzt werden.
Daher schrieb ich die Definition ans Ende von   ~/.bashrc.
Und als einen weiteren Versuch ans Ende von   /etc/bash.bashrc.

nano ~/.bashrc

sudo nano /etc/bash.bashrc
…
# wg. Fehlermeldung
LANGUAGE=de_DE.UTF-8
LC_ALL=de_DE.UTF-8

Leider haben beide Versuche nicht geholfen.
Daher habe ich noch etwas anderes versucht.

sudo dpkg-reconfigure locales               DEB 10 via Live-System (ar1)
Generating locales (this might take a while)...
  de_DE.UTF-8... done
  en_US.UTF-8... done
Generation complete.

su                                          DEB 10 Webserver (gj2)
sudo dpkg-reconfigure locales
bash: dpkg-reconfigure: command not found   scheint nicht immer zu gehen

Hier wird nun laut Beschreibung Sprache, Land, Zeichensatz, Sortierung, etc. eingestellt.
Wichtig ist mit TAB auf das OK zu gehen und dann mit RETURN bestätigen.

de_DE.UTF-8 UTF-8

Hier ist nocheinmal eine Bestätigung erforderlich.

locale

Die Datei   /etc/default/locale
auf dem DEB 10 Live System ist nun aktualisiert worden.

cat /etc/default/locale 
LANG=de_DE.UTF-8
LC_ADDRESS=de_DE.UTF-8
LC_IDENTIFICATION=de_DE.UTF-8
LC_MEASUREMENT=de_DE.UTF-8
LC_MONETARY=de_DE.UTF-8
LC_NAME=de_DE.UTF-8
LC_NUMERIC=de_DE.UTF-8
LC_PAPER=de_DE.UTF-8
LC_TELEPHONE=de_DE.UTF-8
LC_TIME=de_DE.UTF-8

Zum Vergleich: In der DEB 10 direkt Installation ist nur ein Zwei-Zeiler enthalten.
Wobei die Sprachdefinition und der Zeichensatz in Gänsefüssen ist.

#  File generated by update-locale
LANG="en_GB.UTF-8"
LANGUAGE="en_GB:en"

Was leider immer noch fehlt ist   LANGUAGE="de_DE:de".

sudo echo 'LANGUAGE="de_DE.UTF-8"' >> /etc/default/locale
-bash: /etc/default/locale: Keine Berechtigung

sudo nano /etc/default/locale
LANG=de_DE.UTF-8
LANGUAGE=de_DE.UTF-8
LC_ADDRESS=de_DE.UTF-8
…

Leider ist die Fehlermeldung nach dem Einloggen immer noch da.
Also ein weiterer Versuch.

Language not set - Lösung

Als Vorbereitung sollte hier alles auskommentiert sein, bis auf die gewünschte Sprache.
Bei einen Webserver ist das vorzugsweise Englisch (bekommt als erstes ein Update).

sudo nano /etc/locale.gen

…
# zu_ZA.UTF-8 UTF-8

# Locales enabled by Calamares         alles ist auskommentiert, bis auf folgendes
de_DE.UTF-8 UTF-8                      → Löschen!
en_US.UTF-8 UTF-8                      → Löschen!
en_GB.UTF-8 UTF-8                      Eintragen

Die Spracheinstellungen neu einlesen.

sudo locale-gen
Generating locales (this might take a while)...
  en_GB.UTF-8... done
Generation complete.

Sollte es beim Aktualisieren eine Fehlermeldung geben,
einfach  /etc/default/locale  löschen und erneut aktualisieren.

sudo update-locale LANG=en_GB.UTF-8
*** update-locale: Error: invalid locale settings:  
LC_ADDRESS=de_DE.UTF-8 LC_TELEPHONE=de_DE.UTF-8 LANGUAGE=de_DE.UTF-8 
LC_NUMERIC=de_DE.UTF-8 LC_ALL=de_DE.UTF-8 LC_NAME=de_DE.UTF-8 
LC_MEASUREMENT=de_DE.UTF-8 LC_PAPER=de_DE.UTF-8 LC_IDENTIFICATION=de_DE.UTF-8 
LANG=en_GB.UTF-8 LC_MONETARY=de_DE.UTF-8 LC_TIME=de_DE.UTF-8

sudo rm /etc/default/locale            wg. Fehlermeldung alles gelöscht

sudo update-locale LANG=en_GB.UTF-8

Nun kann noch ein fehlender Teil ergänzt werden.

sudo nano /etc/default/locale

#  File generated by update-locale
LANG="en_GB.UTF-8"                     " ergänzt
LANGUAGE="en_GB:en"                    noch händisch ergänzt

Nun sollte der Spuk vorbei sein.

Zum Anfang

Weiterführende Quellen

thomas-krenn.com   Perl warning Setting locale failed in Debian
digitalocean.com   Language Problem on Ubuntu 14.04 (2014)
livejournal.com   How to fix the LANGUAGE = (unset) perl errors on Debian (2011)
cyberciti.biz   Perl: warning: Setting locale failed in Debian and Ubuntu (2021)
linuxhandbook.com   Export Command in Linux Explained

Zum Anfang