Rocky Linux / 言語を変更する方法

Rocky Linuxのシステムの基本言語はlocalectlで確認および変更できます。韓国語ロケールがない場合は、まずglibc-langpack-koをインストールし、localectl set-locale LANG=ko_KR.UTF-8を実行した後、ログアウトして再度ログインしてください。

sudo dnf install glibc-langpack-ko &&
sudo localectl set-locale LANG=ko_KR.UTF-8

ロケール(locale)は、メッセージ言語・日付・数字・ソート順・文字エンコーディングなどの規則です。以下はsystemdで動作する通常のRocky Linux環境を想定します。システム全体の変更前にlocalectl statusとlocaleの値を記録し、必要な範囲だけ変更します。サーバーの自動化では、既定の英語やC.UTF-8を維持する選択もあります。

現在の言語とロケールを確認する

localectl status
locale

localectl statusはシステム基本ロケールとコンソールキー配列を表示します。localeは現在のシェルセッションに実際に適用されているLANG、LC_TIME、LC_MESSAGESなどの値を表示します。

システム設定を変更しても、既存のログインセッションには以前の環境変数が残っている場合があります。変更前後を判断するときは、両方のコマンドの結果を一緒に確認してください。

使用可能なロケールを探す

localectl list-locales
locale -a

リストにko_KR.UTF-8に該当するロケールがない場合は、韓国語言語パックをインストールしてください。

sudo dnf install glibc-langpack-ko

英語ロケールにはglibc-langpack-enを使える環境があります。提供状況はRocky Linuxのバージョンとリポジトリで異なるため、dnfでパッケージの情報と配布元を確認してください。

dnf info glibc-langpack-ko
dnf provides '*/ko_KR*'

システムの基本言語を変更する

韓国語に変更する

sudo localectl set-locale LANG=ko_KR.UTF-8

localectlはシステムの既定値を管理し、通常/etc/locale.confへ反映します。利用できる変数はlocale.confの仕様を確認します。元に戻す場合は記録した値をlocalectl set-localeで再指定し、新しいログインで確認してください。

英語または中立的なUTF-8環境に変更する

sudo localectl set-locale LANG=en_US.UTF-8

問題解決のドキュメントやログ検索を英語メッセージ基準で行う場合、英語ロケールが便利です。インストールされた環境でサポートされていれば、言語依存性の少ないC.UTF-8も自動化サーバーの選択肢となります。

変更内容の適用を確認する

ログアウト・再ログイン、または新しいSSH接続で確認します。SSH経由では、クライアントが送信しサーバーが受け入れるロケール変数が、システムの既定値に優先する場合もあります。

localectl status
locale
printf '%s\n' "$LANG"

再起動は通常必要ありませんが、すでに実行中のサービスは起動時の環境を引き続き使用することがあります。サービスの言語が重要な場合は、該当サービスのsystemd環境設定を別途確認したうえで安全に再起動してください。

現在のターミナルでのみ言語を変更する

システム全体の設定を変更せず、現在のシェルとその子プロセスにのみ適用するには環境変数を設定します。

export LANG=ko_KR.UTF-8

変数をコマンドの前へ付けると、そのコマンドにだけ渡せます。次はLC_ALLや個別のLC_*など、LANGに優先する指定がない場合の例です。

LANG=C.UTF-8 dnf info bash

exportは現在のシェルと、以後そこから起動する子プロセスへ適用し、通常はシェルの終了で消えます。コマンドの前だけの代入はそのコマンドに限定され、親シェルの値を変更しません。環境変数の調査はenvコマンドも参照してください。

LANGとLC_*の優先順位

変数 役割 注意点
LANG 個別項目が指定されていないときに使用するデフォルトのロケール LC_ALLや個別のLC_*が優先されていないか確認します。
LC_MESSAGES プログラムメッセージ言語 他の日付・数字形式は維持しながらメッセージだけを変更できます。
LC_TIME 日付と時間の表現 ログやスクリプトがローカライズされた日付を解析するとエラーが発生することがあります。
LC_ALL LANGと個別のLC_*より優先 一時的な診断には有用ですが、恒久的な設定には慎重であるべきです。

基本の優先順位は、空でないLC_ALL、対象の個別LC_*、LANGの順です。GNUプログラムの翻訳にはLANGUAGEによる言語選択も優先して影響します。ただし、ロケールがCならこの翻訳指定は無視されます。LC_ALLは/etc/locale.confには設定しません。

env | grep -E '^(LANG|LC_)'

ハングルが文字化けするときに確認する項目

  • locale -aに対象のUTF-8ロケールがあるか確認します。
  • SSHクライアントとターミナルプログラムの文字エンコーディングがUTF-8か確認します。
  • 使用しているフォントにハングルのグリフが含まれているか確認します。
  • アプリケーションが独自の言語・エンコーディング設定を使用しているか確認します。
  • スクリプトファイルとデータファイルが実際にUTF-8で保存されているか確認します。

ロケールとフォントは異なる問題です。システム言語が韓国語でも、ターミナルフォントにハングルがなければ四角いブロックで表示されることがあります。

よくある質問

localectlを実行しましたが、現在のシェル言語は変わりません

既存のシェルはログイン時に受け取った環境変数を保持します。ログアウト後に再度ログインするか、新しいSSH接続を開いてlocaleで確認してください。

サーバー全体を韓国語に変更するのは良いですか?

運用チームと自動化基準によります。エラーメッセージを英語で検索し、スクリプト出力を一定に保つ必要がある場合は、英語またはC.UTF-8の方が便利かもしれません。

現在、コマンド1つだけを英語で実行できますか?

既存の指定がなければLANG=C.UTF-8 コマンドで一時的に変更できます。上位のロケール変数や翻訳指定も含めて英語の診断出力へ固定する例はLC_ALL=C LANGUAGE=C コマンドです。CはUTF-8処理を保証する設定ではないため、日本語などのデータ処理では使用可能なUTF-8ロケールとアプリケーションの動作を確認します。

キーボード配列も一緒に変わりますか?

言語ロケールとコンソールキーマップは別の設定です。localectl statusでそれぞれ確認し、リモートSSHターミナルのキーボード配列は通常クライアントOSの設定の影響を受けます。

まとめ

韓国語ロケールパックをインストールしてlocalectl set-locale LANG=ko_KR.UTF-8を実行すれば、Rocky Linuxの基本言語を変更できます。適用の有無は新しいログインセッションでlocalectl statusとlocaleで確認してください。

運用サーバーでは、メッセージ言語だけでなく、日付・数字・ソート規則や自動化への影響も合わせて確認した上でロケールを選ぶことが安全です。