Das Gebietsschema en_US.UTF-8 kann nicht generiert werden


8

Ich habe versucht, mein Gebietsschema en_US.UTF-8ohne Erfolg festzulegen . Basierend auf anderen Antworten im Internet sollte ich zuerst das Gebietsschema mit generieren

sudo locale-gen en_US.UTF-8

Und dann mit anwenden

sudo dpkg-reconfigure locales

Laufen locale-genmacht jedoch etwas Seltsames:

user@Host /home/user $ sudo locale-gen en_US.UTF-8
Generating locales (this might take a while)...
  en_US.ISO-8859-1... done
Generation complete.

Wie Sie sehen, wird UTF-8 nie generiert, sondern es wird immer wieder auf ISO-8859-1 zurückgegriffen. Ich kann nie setzen verwalten LC_ALLzu en_US.UTF-8, wahrscheinlich , weil es nicht erzeugen kann.

Mache ich etwas falsch? Ich verwende Debian 8.1.

Antworten:


28

Sie haben versucht, unter Debian ein Rezept für Ubuntu anzuwenden. Das funktioniert normalerweise, aber in diesem speziellen Fall nicht.

Ubuntu ist von Debian abgeleitet und ändert sich außer dem Installationsprogramm und der GUI kaum. Der locale-genBefehl ist eines der wenigen anderen Dinge, die er ändert. Ich weiß nicht warum.

Unter Debian akzeptiert der locale-genBefehl keine Argumente und generiert die kompilierten Gebietsschemadefinitionen gemäß der konfigurierten Liste der Gebietsschemas neu. Bearbeiten Sie die Datei /etc/locale.genund führen Sie den locale-genBefehl aus, um die Auswahl der Gebietsschemas zu ändern, die Sie verwenden möchten . Alternativ können Sie dpkg-reconfigure localesals Root ausführen , die gewünschten zusätzlichen Gebietsschemas auswählen (und die nicht gewünschten auswählen) und OK drücken.

Wenn Sie unter Ubuntu den locale-genBefehl ohne Argumente ausführen , werden die kompilierten Gebietsschemadefinitionen gemäß der konfigurierten Liste der Gebietsschemas neu generiert. Wenn Sie jedoch einige Argumente übergeben, werden diese zur Liste hinzugefügt und sofort generiert. Die Liste der Gebietsschemas wird in gespeichert /var/lib/locales/supported.d/local. Durch Ausführen werden dpkg-reconfigure localesnur die kompilierten Gebietsschemas neu generiert, ohne dass Sie die Möglichkeit haben, die Auswahl zu ändern.

Zusammenfassend können Sie en_US.UTF-8der Liste der verwendbaren Gebietsschemas Folgendes hinzufügen :

  • Debian, interaktiv: dpkg-reconfigure locales
  • Debian, automatisiert: sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen && locale-gen
  • Ubuntu, automatisiert: locale-gen en_US.UTF-8

Wie würden Sie also Pakete hinzufügen dpkg-reconfigure? Ich habe die interaktive Oberfläche erhalten, aber bei der Auswahl eines Elements mit der Eingabetaste wurde es nicht installiert.
Erik S

@ErikDolor Ich verstehe deine Frage nicht. Sofern Sie die Debconf-Einstellungen nicht geändert haben, dpkg-reconfigure localeswird ein Dialogfeld für den Textmodus mit einem Kontrollkästchen für jedes Gebietsschema angezeigt, das generiert werden kann. Sie scrollen nach unten en_US.UTF-8, überprüfen es und drücken die OK-Taste.
Gilles 'SO - hör auf böse zu sein'

Ich habe versucht, es mit der Eingabetaste zu überprüfen, aber das funktionierte anscheinend als OK.
Erik S

2
@ErikDolor Oh. Drücken Sie die Leertaste, um ein Kontrollkästchen zu aktivieren.
Gilles 'SO - hör auf böse zu sein'

Funktioniert auch für Raspbian Jessie
Neo_Returns

5

Nachdem ich die Man-Datei für locale-gen gelesen hatte, anstatt blind dem Internet zu vertrauen, stellte ich fest, dass locale-gendie Locales tatsächlich zum Generieren benötigt werden /etc/locale.gen. Durch das Kommentieren en_US.UTF-8dort habe ich es geschafft, es zu generieren.


sed -i '/^#.* es_ES / s / ^ # //' /etc/locale.gen Wenn Sie Docker verwenden, könnte dies nützlich sein
Borjante

Die EINZIGE Antwort, die für mich funktioniert hat, nachdem ich tagelang im Internet gesucht habe !! Ich danke dir sehr!
I.Am.A.Guy
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.