Start   Impressum   Lizenz         online lesen   Download         Online-Shop   Jumping Blue Turtle

Debian für Unternehmer - Debian-Know-how

1170: Unicode abstellen

1. Globale Einstellungen

Wenn Sie neu in der Linux-Welt sind, dann sollten Sie in Sachen "Unicode" alles so lassen, wie es ist. Wenn Sie aber ein System haben, das Sie in die moderne Debian-Welt migrieren wollen, und Sie gerade erst (vor 10 Jahren) mühsam eine Zeichensatzumstellung absolviert haben, dann stehen Sie jetzt "schon wieder" vor dem Problem einer Zeichensatzumstellung.

Glücklicherweise können Sie selbst definieren, wann Sie Ihre Daten und Projekte auf Unicode bzw. UTF-8 umstellen.

Wenn Sie mit der Umstellung noch etwas warten wollen, weil Sie dazu im Moment keine Zeit haben, dann machen Sie Debian-Linux wie folgt mit der Vergangenheit kompatibel:

  1. Installieren Sie "locales":
    apt-get install locales
    

    Sie werden feststellen, dass sich diese Software bereits auf Ihrem Recher befindet. Was einmal in Debian installiert wurde, wird bei allen weiteren Installationsvorgängen nie wieder neu konfiguriert, denn das wurde ja schon während der ersten Installation erledigt.

  2. Konfigurieren Sie "locales". Nun, es gibt einen Trick, eine einmal installierte Software dennoch neu zu konfigurieren. Den wenden wir jetzt an:
    dpkg-reconfigure locales
    
  3. Kleiner Exkurs, der ist aber wichtig: An dieser Stelle müssen Sie alle Sprachumgebungen installieren, die Sie später einmal benötigen werden. Eine Sprachumgebung enthält Zeichensätze und andere sprach- und länderspezifische Informationen. Beispiel: Sie möchten später mal einem Programm sagen, es möge bitte die Zeit nach deutscher Norm anzeigen und nicht nach englischsprachiger (mit AM und PM). Um das zu erreichen, müssen Sie jetzt eine deutsche Sprachumgebung installieren, zum Beispiel eine "de_DE@euro". So weit der Exkurs.

    Selektieren Sie jetzt alle Sprachumgebungen, die Ihr System grundsätzlich unterstützen soll. Wenn Sie in Deutschland wohnen, und ein System haben möchten, das grundsätzlich mit den zwei Sprachen Englisch und Deutsch zurechtkommen soll, dann setzen Sie Sternchen bei "Locales to be generated" wie folgt:

    • de_DE ISO-8859-1 (alter Western-Zeichensatz / deutsche Normen)
    • de_DE.UTF-8 UTF-8 (Unicode-Zeichensatz / deutsche Normen)
    • de_DE@euro ISO-8859-15 (neuer Western-Zeichensatz / deutsche Normen)
    • en_US ISO-8859-1 (alter Western-Zeichensatz / US-amerikanische Normen)
    • en_US.ISO-8859-15 ISO-8859-15 (neuer Western-Zeichensatz / US-amerikanische Normen)
    • en_US.UTF-8 UTF-8 (Unicode-Zeichensatz / US-amerikanische Normen)

    Wählen Sie <OK>, wenn Sie fertig sind.
    Ihre Angaben werden in der Datei "/etc/locale.gen" gespeichert.

  4. Wählen Sie nun aus, welche Sprachumgebung (mit welchem Zeichensatz) systemweit Ihre Default-Sprachumgebung sein soll. Wählen Sie bei "Default locale for the system environment" aus der Liste eine geeignete Sprachumgebung mit Western-Zeichensatz aus. Zum Beispiel:
    • en_US.ISO-8859-15

    Wählen Sie <OK>, wenn Sie fertig sind.
    Ihre Angaben werden in der Datei "/etc/default/locale" gespeichert.

  5. Starten Sie den Rechner neu, damit die Einstellung wirksam wird.
  6. Mit dem "locale"-Befehl können Sie prüfen, welche Spracheinstellungen aktuell die Default-Einstellungen sind. Geben Sie dazu folgenden Befehl in die Shell ein:
    locale
    

    Mit den oben gemachten Einstellungen müsste folgendes Resultat erscheinen:

    LANG=en_US.ISO-8859-15
    LC_CTYPE="en_US.ISO-8859-15"
    LC_NUMERIC="en_US.ISO-8859-15"
    LC_TIME="en_US.ISO-8859-15"
    LC_COLLATE="en_US.ISO-8859-15"
    LC_MONETARY="en_US.ISO-8859-15"
    LC_MESSAGES="en_US.ISO-8859-15"
    LC_PAPER="en_US.ISO-8859-15"
    LC_NAME="en_US.ISO-8859-15"
    LC_ADDRESS="en_US.ISO-8859-15"
    LC_TELEPHONE="en_US.ISO-8859-15"
    LC_MEASUREMENT="en_US.ISO-8859-15"
    LC_IDENTIFICATION="en_US.ISO-8859-15"
    LC_ALL=
    

2. Einstellungen pro User

Es ist möglich, dass jeder User seinen eigenen Zeichensatz verwenden kann. Ein "sanfter" Umstieg auf Unicode ist daher machbar.

Beispiel: Sie möchten, dass künftig der User "user" mit einer Unicode-Umgebung ausgestattet wird, damit Sie schrittweise damit beginnen können, alte Projekte nach Unicode umzustellen. Um eine solche Unicode-Umgebung zu erreichen, tragen Sie folgende Zeile sowohl in die Datei "~/.bashrc" als auch in die Datei "~/.bash_profile" ein:

export LANG="en_US.UTF-8"

Seit Debian Lenny gibt es keine vorkonfigurierte Datei "~/.bash_profile" mehr. Das ändert aber nichts an der Tatsache, dass sie dennoch notwendig ist, denn ohne sie wird der Midnight-Commander völlig inakzeptabel aussehen. Legen Sie also diese Datei an. Als einzigen Eintrag tragen Sie hier die oben bereits gezeigte Zeile ein:

export LANG="en_US.UTF-8"

Beenden Sie für den User "user" die KDE-Sitzung, um sie erneut zu starten. Geben Sie dann folgenden Befehl in eine Shell ein, um das Resultat zu kontrollieren:

locale

Mit den oben gemachten Einstellungen müsste folgendes Resultat erscheinen:

LANG=en_US.UTF-8
LC_CTYPE="en_US.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=

3. Zeitformat

Spätestens dann, wenn Sie E-Mail benutzen, werden Sie merken, dass die Locales noch nicht ganz perfekt konfiguriert sind. Es geht um Folgendes:

Zu SuSE-Zeiten war es selbstverständlich, ein Thunderbird zu haben, in dem die Zeitangaben der E-Mail-Nachrichten im Format "24h" angezeigt wurden, obwohl alle Spracheinstellungen auf dem Rechner auf Englisch gesetzt waren. Offenbar wurde damals das Thema Zeit etwas lax gehandhabt. Jetzt ist das anders.

Seit mindestens Debian Etch ist das Zeitformat von Icedove jetzt standardmäßig auf "12h am/pm" gesetzt. Um es auf das Format "24h" zu bekommen, muss eine spezielle Spracheinstellung in der Linux-Konfiguration geändert werden.

Konkret geht es hier um die Umgebungsvariable "$LC_TIME". Mit dem Befehl

locale

können Sie die aktuellen Belegungen der Loalisierungs-Umgebungsvariablen einsehen. Der Default-Wert von "$LC_TIME" ist "en_US.ISO-8859-15". Um Icedove zur Verwendung eines "24h"-Zeitformats zu überreden, öffnen Sie die Datei "/etc/environment" mit Hilfe eines Editors:

mcedit /etc/environment

Hängen Sie nun an das Ende der Datei nachfolgend dargestellte Zeichenkette an:

LC_TIME="de_DE@euro"

Starten Sie anschließend den Rechner neu. Sofern Sie die Sprachumgebung "de_DE@euro", wie oben gezeigt, ordentlich installiert haben, sollte Icedove, wenn Sie es in Betrieb nehmen, nicht nur die Zeit im 24-Stunden-Format anzeigen, sondern auch das Datum im Format "TT.MM.JJJJ".

Nach dem Neustart des Rechners sollte der Befehl

locale

folgendes Resultat liefern:

LANG=en_US.ISO-8859-15
LC_CTYPE="en_US.ISO-8859-15"
LC_NUMERIC="en_US.ISO-8859-15"
LC_TIME=de_DE@euro
LC_COLLATE="en_US.ISO-8859-15"
LC_MONETARY="en_US.ISO-8859-15"
LC_MESSAGES="en_US.ISO-8859-15"
LC_PAPER="en_US.ISO-8859-15"
LC_NAME="en_US.ISO-8859-15"
LC_ADDRESS="en_US.ISO-8859-15"
LC_TELEPHONE="en_US.ISO-8859-15"
LC_MEASUREMENT="en_US.ISO-8859-15"
LC_IDENTIFICATION="en_US.ISO-8859-15"
LC_ALL=

Wenn Sie wie oben gezeigt den User "user" mit einer Unicode-Umgebung ausgestattet haben, dann müssten Sie als User "user" mit

locale

folgendes Resultat bekommen:

LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME=de_DE@euro
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=