第2章 システムロケールおよびキーボード設定
システムロケール では、システムサービスおよびユーザーインターフェイスの言語設定を指定します。キーボードレイアウト の設定では、テキストコンソールおよびグラフィカルユーザーインターフェイスで使用するレイアウトを管理します。
これらの設定は、/etc/locale.conf
設定ファイルを修正するか localectl ユーティリティーを使用して行います。グラフィカルユーザーインターフェイスを使用して設定することもできます。詳細は Red Hat Enterprise Linux 7 インストールガイド を参照してください。
2.1. システムロケールの設定
システム全体にわたるロケール設定は /etc/locale.conf
ファイルに保存され、システム起動の初期段階で systemd
デーモンにより読み込まれます。/etc/locale.conf
に設定したロケール設定は、個別のプログラムやユーザーが上書きしない限り、すべてのサービスやユーザーに継承されます。
/etc/locale.conf
の基本的なファイル形式は、改行で区切られた変数割り当てのリストです。たとえば、ロケールがドイツ語でメッセージが英語の場合、/etc/locale.conf
は以下のようになります。
LANG=de_DE.UTF-8 LC_MESSAGES=C
ここでは LC_MESSAGES オプションを使用して、標準エラー出力に書き出される診断メッセージ用ロケールを決定します。/etc/locale.conf
でさらにロケール設定を指定するには、いくつかのオプションが使用でき、関連性の高いものが 表2.1「/etc/locale.conf で設定可能なオプション」 にまとめられています。これらのオプションの詳細は、man ページの locale(7)
を参照してください。/etc/locale.conf
には、すべてのオプションを可能にする LC_ALL オプションは設定しないように注意してください。
オプション | 詳細 |
---|---|
LANG | システムロケールのデフォルト値になります。 |
LC_COLLATE | ローカルのアルファベット文字列を比較する機能の動作を変更します。 |
LC_CTYPE | 文字処理、分類機能、マルチバイト文字機能の動作を変更します。 |
LC_NUMERIC | 数値が通常出力される方法を設定します (小数点を表すコンマなど)。 |
LC_TIME | 現在の時間表記を、24 時間表記または 12 時間表記に変更します。 |
LC_MESSAGES | 標準エラー出力に書き出される診断メッセージに使用されるロケールを決定します。 |
2.1.1. 現行ステータスの表示
localectl
コマンドを使用すると、システムロケールおよびキーボードレイアウト設定へのクエリーまたは変更が可能になります。現在の設定を表示するには、status
オプションを使用します。
localectl
status
例2.1 現行ステータスの表示
上記のコマンドを実行すると、ロケールの現行設定と、コンソールおよび X11 ウィンドウシステムに設定されているキーボードレイアウトが出力されます。
~]$ localectl status System Locale: LANG=en_US.UTF-8 VC Keymap: us X11 Layout: n/a
2.1.2. 利用可能なロケールのリスト表示
ご使用のシステムで利用可能なロケールをリスト表示するには、以下を入力します。
localectl
list-locales
例2.2 ロケールのリスト表示
特定の英語ロケールを選択するとき、そのロケールがシステムで利用可能であるかどうかわからないとします。以下のコマンドを使用すると、英語ロケールのリストを表示することで確認できます。
~]$ localectl list-locales | grep en_
en_AG
en_AG.utf8
en_AU
en_AU.iso88591
en_AU.utf8
en_BW
en_BW.iso88591
en_BW.utf8
output truncated
2.1.3. ロケールの設定
デフォルトのシステムロケールを設定するには、root
で以下のコマンドを使用します。
localectl
set-locale
LANG
=locale
locale を、localectl
list-locales
コマンドで見つかったロケール名に置き換えます。上記の構文は、表2.1「/etc/locale.conf で設定可能なオプション」 のパラメーター設定にも使用できます。
例2.3 デフォルトロケールの変更
たとえば、イギリス英語をデフォルトのロケールに設定する場合は、最初に list-locales
を使用して、このロケールの名前を見つけます。次に、root
で以下の形式のコマンドを入力します。
~]# localectl set-locale LANG=en_GB.utf8
2.1.4. キックスタートを使用したインストール時にシステムロケールの設定を永続化
Red Hat キックスタートインストールを使用して Red Hat Enterprise Linux をインストールすると、オペレーティングシステムをアップグレードした後にシステムロケールの設定が永続化されないことがあります。
キックスタートファイルの %packages
セクションに --instLang
オプションが含まれる場合は、_install_langs
RPM マクロはこのインストールの特定の値に設定され、インストールしたロケールのセットが調整されます。ただし、この設定は今回のインストールにのみ影響し、その後のアップグレードには影響しません。アップグレードの際に glibc パッケージを再インストールすると、インストール中にユーザーがリクエストしたロケールではなく、ロケール全体がアップグレードされます。
これを回避するには、永続化させるロケールを選択します。次のような方法があります。
- キックスタートインストールを開始する前であれば、キックスタートインストール中に RPM マクロの設定 の手順に従ってキックスタートファイルを修正し、RPM マクロをグローバルに設定する指示を追加します。
- システムをすでにインストールしている場合は、システム全体に RPM マクロの設定 の手順に従って、RPM マクロをシステム全体に設定します。
キックスタートインストール中に RPM マクロの設定
キックスタートファイルの
%post
セクションを変更します。LANG=en_US echo "%_install_langs $LANG" > /etc/rpm/macros.language-conf yum-config-manager --setopt=override_install_langs=$LANG --save
キックスタートファイルの
%packages
セクションを変更します。%packages yum-utils* %end
システム全体に RPM マクロの設定
以下の設定を追加した RPM 設定ファイルを
/etc/rpm/macros.language-conf
に作成します。%_install_langs LANG
LANG は、
instLang
オプションの値です。以下を使用して、
/etc/yum.conf
ファイルを更新します。override_install_langs=LANG