Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第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 オプションは設定しないように注意してください。

表2.1 /etc/locale.conf で設定可能なオプション

オプション詳細

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 マクロの設定

  1. キックスタートファイルの %post セクションを変更します。

    LANG=en_US
    echo "%_install_langs $LANG" > /etc/rpm/macros.language-conf
    
    yum-config-manager --setopt=override_install_langs=$LANG --save
  2. キックスタートファイルの %packages セクションを変更します。

    %packages
    yum-utils*
    %end

システム全体に RPM マクロの設定

  1. 以下の設定を追加した RPM 設定ファイルを /etc/rpm/macros.language-conf に作成します。

    %_install_langs LANG

    LANG は、instLang オプションの値です。

  2. 以下を使用して、/etc/yum.conf ファイルを更新します。

    override_install_langs=LANG