Linux イメージの日本語サポートを有効にする - Amazon AppStream 2.0

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Linux イメージの日本語サポートを有効にする

このチュートリアルでは、Linux イメージの日本語サポートを有効にする方法について説明します。これにより、イメージ上のアプリケーションは日本語の文字を表示でき、ストリーミングユーザーはイメージからのストリーミングセッションで日本語入力方法を使用できるようになります。

ステップ 1: 日本語フォントと入力方法をインストールする

このステップでは、Linux Image Builder に接続し、任意のフォントパッケージと入力方法パッケージをインストールします。

日本語フォントと入力方法をインストールするには
  1. 以下のいずれかを実行して、Image Builder に接続します。

  2. 必要なフォントと入力方法をインストールします。これを行うには、ターミナルアプリケーションを開き、次のコマンドを実行します。

    sudo yum install vlgothic-p-fonts.noarch

    sudo yum install ibus-kkc.x86_64

ステップ 2: システムタイムゾーンを設定する

システムタイムゾーンを設定するには、次のコマンドを実行します。

sudo timedatectl set-timezone "Asia/Tokyo"

ステップ 3: システムロケールと表示言語を設定する

システムロケールと表示言語を設定するには、次のコマンドを実行します。

システムロケールと表示言語を設定するには
  1. sudo vim /etc/cloud/cloud.cfg コマンドを実行して cloud-init config ファイルを更新し、[ロケール] を [locale: ja_jp.utf8] に変更し、ファイルを保存して閉じます。

  2. sudo localectl set-locale LANG=ja_JP.utf8 を実行してシステム設定を更新します。

  3. sudo gsettings set org.gnome.system.locale region "ja_JP.utf8" を実行して Gnome シェル設定を更新します。

ステップ 4: 入力方法を設定する

イメージに追加するアプリケーションの入力方法を設定します。アプリケーションのインストール方法、マニフェストファイルの生成方法、およびデフォルト設定の作成方法の詳細については、「チュートリアル: Linux ベースのカスタム AppStream 2.0 イメージを作成する」を参照してください。このステップでは、/usr/local/firefox/firefox にある Firefox アプリケーションが既にインストールされていることを前提としています。

入力方法を設定するには
  1. sudo vim /usr/local/bin/update-input-method.sh コマンドを実行してスクリプトを作成します。スクリプトに次のコンテンツを追加します。

    #!/bin/bash function start_process() { command=$1 process_name=$2 process_count=$(pgrep $process_name -c) echo "$(date) current $process_name count: $process_count" while [ $process_count -lt 1 ] do echo "$(date) starting $process_name" eval $command sleep 1 process_count=$(pgrep $process_name -c) done echo "$(date) $process_name started" } start_process "ibus-daemon --xim &" "ibus-daemon" start_process "/usr/libexec/ibus-engine-kkc --ibus &" "ibus-engine-kkc" gsettings set org.gnome.desktop.input-sources sources "[('ibus','kkc'), ('xkb', 'us')]" gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['<Control>space']" gsettings set org.gnome.desktop.wm.keybindings switch-input-source-backward "['<Shift><Control>space']" echo "$(date) updated input source and switch shortcut"

    上記のスクリプトでは、最初の入力ソース ('ibus', 'kkc') がデフォルトの入力方法です。デフォルトの入力方法を変更するには、入力ソースの順序を変更します。また、入力方法を切り替えるためのショートカットキーの組み合わせとして、Control + Space と Shift + Control + Space が指定されています。ユーザーがストリーミングセッション中に入力方法を切り替えるために使用できる、独自のキーの組み合わせを指定できます。

  2. イメージに追加するアプリケーション (Firefox) を起動するためのスクリプトを作成します。これを行うには、sudo vim /usr/local/bin/firefox-jp.sh コマンドを実行し、スクリプトに以下のコンテンツを追加します。

    #!/bin/bash /usr/local/bin/update-input-method.sh > /var/tmp/update-input-method.log 2>&1 & /usr/local/firefox/firefox &
  3. 次のコマンドを実行して、両方のスクリプトに実行許可を追加します。

    sudo chmod +x /usr/local/bin/update-input-method.sh

    sudo chmod +x /usr/local/bin/firefox-jp.sh

  4. アプリケーションの最適化マニフェストファイルを既に作成している場合は、次のコマンドを実行して、アプリケーション起動スクリプトをアプリケーションカタログに追加します。

    sudo AppStreamImageAssistant add-application \ --name firefox \ --absolute-app-path /usr/local/bin/firefox-jp.sh \ --display-name firefox \ --absolute-icon-path /usr/local/firefox/browser/chrome/icons/default/default128.png \ --absolute-manifest-path /tmp/firefox-manifest.txt

または、update-input-method.sh スクリプトをイメージのアプリケーションカタログに別のアプリケーションとして追加して、入力方法を設定することもできます。ストリーミングセッション中、ユーザーはこのアプリケーションを起動して日本語入力を有効にし、同じセッション内で指定したショートカットキーを使用して入力方法を切り替えることができます。

ステップ 5: キーボードレイアウトを設定する

ストリーミングセッション中にユーザーが使用するキーボードに合わせてキーボードレイアウトを設定します。localectl list-keymaps コマンドを使用して、使用可能なすべてのキーマップを一覧表示し、sudo localectl set-keymap jp106 コマンドを使用して、106 キーなどの日本語キーボードにキーマップを設定できます。

ステップ 6: Image Builder で検証を行う

Image Builder で検証を行うには、最初に sudo shutdown -r now コマンドを実行して Image Builder を再起動します。再起動後、Image Builder に再度接続し、タイムゾーン、ロケール、言語、入力方法などのすべてが想定どおりに機能することを確認します。

ステップ 7: イメージを作成する

Image Builder にイメージを作成します。詳細については、「チュートリアル: Linux ベースのカスタム AppStream 2.0 イメージを作成する」を参照してください。必ず、先ほど指定したリージョン設定を含む、デフォルトのアプリケーション設定を作成します。詳細については、Linux ベースのイメージを作成するの「ユーザー用のデフォルトアプリケーション設定の作成」を参照してください。

このイメージから作成されたすべての Linux フリートインスタンスは、イメージに対して設定したデフォルトのタイムゾーン、ロケール、言語、および入力方法の設定と同じになります。