Seite 1 von 1

[gelöst] [howto] bash: warning: setlocale: LC_CTYPE: cannot change locale

Verfasst: 2. Jul 2019, 21:37
von Hengstenberg
Liebe Linux-Fans,

Problem nach rumprobieren gelöst ohne Fragen zu stellen. Folgende Ausgangssituation:
Nachdem ich mal auf der Konsole per YaST die Sprache geändert habe (nicht fragen warum ;) ), bekam ich dann folgende Meldung(en),
  • wenn Anmeldung als root:

    Code: Alles auswählen

    userA@linux-5h2s:~ > su -l root      
    Passwort: 
    -bash: warning: setlocale: LC_CTYPE: cannot change locale (de_DE.UTF-8,LANG=de_DE.UTF-8): No such file or directory
  • Etwas wilder, wenn Anmeldung als userB (immerhin auch auf deutsch obwohle locale durcheinander ;) ):

    Code: Alles auswählen

    userA@linux-5h2s:~ > su -l userB
    Passwort: 
    -bash: warning: setlocale: LC_CTYPE: cannot change locale (de_DE.UTF-8,LANG=de_DE.UTF-8): No such file or directory
    -bash: Warnung: setlocale: LC_CTYPE: Kann die Standorteinstellungen nicht ändern (de_DE.UTF-8,LANG=de_DE.UTF-8).
  • Irgendwann bekam ich per Systemmail von "(Cron Daemon)" dann auch (nachdem ich schon etwas rumgespielt habe) folgende Nachricht(en, alle Stunde eine :-/ ):

    Code: Alles auswählen

    perl: warning: Setting locale failed.
    perl: warning: Please check that your locale settings:
            LANGUAGE = (unset),
            LC_ALL = (unset),
            LC_CTYPE = "de_DE.UTF-8,LANG=de_DE.UTF-8",
            LANG = (unset)
        are supported and installed on your system.
    perl: warning: Falling back to the standard locale ("C").
  • Ausgabe von localectl status liefert folgendes zu Tage:

    Code: Alles auswählen

    linux-5h2s:~ # localectl status
       System Locale: LC_CTYPE=de_DE.UTF-8,LANG=de_DE.UTF-8
           VC Keymap: de-nodeadkeys
          X11 Layout: de
           X11 Model: microsoftpro
         X11 Variant: nodeadkeys
         X11 Options: terminate:ctrl_alt_bksp
Dem geneigten Leser wird hier schon direkt auffallen was schief gewickelt war.
Kurzfassung der Lösung:
  1. In /etc/locale.conf stand:

    Code: Alles auswählen

    LC_CTYPE=de_DE.UTF-8,LANG=de_DE.UTF-8
  2. und es soll nur stehen:

    Code: Alles auswählen

    LANG=de_DE.UTF-8
  3. Dann ein Neustart der Maschine und alles wieder gut! :thumbs:
Was mir neben diversen man-Seiten geholfen hat das Problem zu verstehen war die folgende Seite:
https://www.tecmint.com/set-system-locales-in-linux/

th.giese hatte mal ähnliches/gleiches Problem, wobei er dies anders gelöst hat, vielleicht hilft das dem einen oder anderen weiter (bei mir hat es so nicht geholfen, bei mir war diese Umgebungsvariable nämlich schon korrekt gesetzt):
https://linux-club.de/forum/viewtopic.php?f=89&t=122426

Grüße, Hengstenberg