So ändern Sie die Systemsprache und das Gebietsschema unter Rocky Linux
Unter Rocky Linux verwenden Sie localectl, um die systemweite Sprache und das Gebietsschema zu überprüfen oder zu ändern. Wenn das koreanische Gebietsschema nicht verfügbar ist, installieren Sie glibc-langpack-ko, führen Sie localectl set-locale LANG=ko_KR.UTF-8 aus und melden Sie sich dann ab und starten eine neue Sitzung.
sudo dnf install glibc-langpack-ko
sudo localectl set-locale LANG=ko_KR.UTF-8
Ein Gebietsschema steuert mehr als nur übersetzte Nachrichten. Es kann auch Datums- und Zahlenformate, Sortierregeln und Zeichencodierungen beeinflussen. Wenn konsistente Protokolle und Automatisierungsausgaben wichtiger sind als lokalisierte Nachrichten, sollten Sie in Erwägung ziehen, C.UTF-8 oder en_US.UTF-8 beizubehalten, anstatt den Server auf Koreanisch umzustellen.
Überprüfen Sie die aktuelle Sprache und das Gebietsschema
localectl status
locale
localectl status zeigt die systemweite Gebietsschema- und Konsolentastaturbelegung an. Der Befehl locale zeigt die tatsächlich auf die aktuelle Shell-Sitzung angewendeten Werte an, einschließlich LANG, LC_TIME und LC_MESSAGES.
Eine bestehende Anmeldungssitzung kann ihre alten Umgebungsvariablen beibehalten, nachdem die Systemeinstellung geändert wurde. Prüfen Sie beide Befehle, um zu bestätigen, ob eine Änderung wirksam geworden ist.
Verfügbare Gebietsschemas finden
localectl list-locales
locale -a
Wenn die Liste nicht das Äquivalent von ko_KR.UTF-8 enthält, installieren Sie das Koreanische Sprachpaket.
sudo dnf install glibc-langpack-ko
Für englische Gebietsschemas installieren Sie bei Bedarf glibc-langpack-en. Die Verfügbarkeit von Paketen kann je nach Rocky Linux-Version und aktivierten Repositories variieren, prüfen Sie daher das Paket vor der Installation.
dnf info glibc-langpack-ko
dnf provides '*/ko_KR*'
Ändern Sie die systemweite Standardsprache
Legen Sie die System-Locale auf Koreanisch fest
sudo localectl set-locale LANG=ko_KR.UTF-8
localectl verwaltet die System-Locale und schreibt die Einstellung normalerweise in /etc/locale.conf. Die in dieser Datei unterstützten Variablen sind im systemd locale.conf Handbuch dokumentiert.
Legen Sie Englisch oder eine neutrale UTF-8-Locale fest
sudo localectl set-locale LANG=en_US.UTF-8
Eine englische Locale kann nützlich sein, wenn bei der Fehlersuche Dokumentationen und Protokolle auf englische Fehlermeldungen zurückgreifen. Wenn die installierte Umgebung dies unterstützt, ist die sprachneutrale C.UTF-8-Locale auch für Automatisierungsserver nützlich.
Überprüfen Sie, ob die Änderung aktiv ist
Melden Sie sich ab und wieder an oder öffnen Sie eine neue SSH-Sitzung, bevor Sie das Ergebnis überprüfen.
localectl status
locale
printf '%s\n' "$LANG"
Ein Neustart ist normalerweise nicht erforderlich. Ein laufender Dienst kann jedoch die Umgebung beibehalten, die er beim Start erhalten hat. Wenn die Gebietsschemaeinstellungen eines Dienstes wichtig sind, prüfen Sie seine systemd-Umgebungskonfiguration und starten Sie den Dienst bei Bedarf sicher neu.
Ändern Sie die Sprache nur für das aktuelle Terminal
Legen Sie eine Umgebungsvariable fest, um das Gebietsschema für die aktuelle Shell und deren untergeordnete Prozesse zu ändern, ohne das gesamte System zu ändern.
export LANG=ko_KR.UTF-8
Um ein Gebietsschema nur für einen Befehl anzuwenden, setzen Sie die Variablenzuweisung vor den Befehl.
LANG=C.UTF-8 dnf info bash
Diese Änderungen verschwinden, wenn die Shell beendet wird. Wenn ein Skript vorhersehbare Meldungen, Sortierungen oder Formatierungen erfordert, legen Sie die erforderliche Locale explizit im Skript fest.
Verstehen der LANG- und LC_* -Priorität
| Variable | Zweck | Wichtige Überlegung |
|---|---|---|
LANG |
Standard-Locale, wenn eine kategoriespezifische Variable nicht gesetzt ist | Dieser Wert ist für die meisten Änderungen der Systemsprache ausreichend. |
LC_MESSAGES |
Sprache, die für Programm-Meldungen verwendet wird | Sie kann Meldungen ändern und gleichzeitig andere Datums- und Zahlenformate beibehalten. |
LC_TIME |
Datums- und Zeitdarstellung | Skripte können fehlschlagen, wenn sie lokalisierten Datums-Output analysieren. |
LC_ALL |
Überschreibt alle anderen Gebietsschema-Variablen | Es ist nützlich für vorübergehende Diagnosen, sollte aber vorsichtig als dauerhafte Einstellung verwendet werden. |
Wenn LC_ALL gesetzt ist, kann das Ändern von LANG das Ergebnis möglicherweise nicht ändern.
env | grep -E '^(LANG|LC_)'
Fehlerbehebung bei zerstörten koreanischen Zeichen
- Bestätigen Sie, dass das erforderliche UTF-8-Gebietsschema in
locale -aerscheint. - Überprüfen Sie, dass der SSH-Client und der Terminalemulator UTF-8 verwenden.
- Stellen Sie sicher, dass die ausgewählte Schriftart koreanische Zeichen enthält.
- Überprüfen Sie, ob die Anwendung eigene Sprach- oder Kodierungseinstellungen hat.
- Vergewissern Sie sich, dass Skripte und Datendateien tatsächlich als UTF-8 gespeichert sind.
Die Unterstützung von Gebietsschema und Schriftart sind getrennte Dinge. Selbst bei einem koreanischen Systemgebietsschema kann koreanischer Text als leere Kästchen erscheinen, wenn die Terminalschriftart die notwendigen Zeichen nicht enthält.
Häufig gestellte Fragen
Warum hat sich die aktuelle Shell-Sprache nach dem Ausführen von localectl nicht geändert?
Eine bestehende Shell behält die Umgebungsvariablen, die sie beim Anmelden erhalten hat. Melden Sie sich ab und wieder an oder starten Sie eine neue SSH-Verbindung und überprüfen Sie dann das Ergebnis mit locale.
Sollte jeder Server ein koreanisches Systemgebietsschema verwenden?
Es hängt vom Betriebsteam und den Anforderungen an die Automatisierung ab. Ein englisches Gebietsschema oder C.UTF-8 kann bequemer sein, wenn Sie nach englischen Fehlermeldungen suchen oder vorhersehbare Skriptausgaben benötigen.
Kann ich nur einen Befehl auf Englisch ausführen?
Ja. Setzen Sie dem Befehl ein Gebietsschema-Assignment voran, zum Beispiel LANG=C.UTF-8 COMMAND. Verwenden Sie locale -a, um die genauen auf dem System installierten Gebietsschemas zu bestätigen.
Ändert das Gebietsschema auch das Tastaturlayout?
Nein. Das Sprachgebietsschema und die Konsolen-Tastaturbelegung sind separate Einstellungen. Überprüfen Sie beide in localectl status. Das Tastaturlayout in einem entfernten SSH-Terminal wird normalerweise vom Betriebssystem des Clients gesteuert.
Zusammenfassung
Installieren Sie das erforderliche Sprachpaket und führen Sie localectl set-locale LANG=ko_KR.UTF-8 aus, um die Standard-Locale von Rocky Linux auf Koreanisch zu ändern. Überprüfen Sie das Ergebnis in einer neuen Anmeldesitzung mit sowohl localectl status als auch locale.
Auf Produktionsservern sollten Sie eine Locale nur auswählen, nachdem Sie die Nachrichtensprache, Datums- und Zahlenformate, Sortierregeln und das Verhalten der Automatisierung berücksichtigt haben. Die Dokumentation zur System-Locale-Konfiguration von Red Hat bietet das zugrunde liegende Verfahren, das von Rocky Linux-kompatiblen Systemen verwendet wird.




