Debian noroot 環境で日本語環境を導入する

  • 8
    いいね
  • 0
    コメント

はじめに

Debian noroot とは、 Android OS 上において root 権限を取ることなく Debian 環境を構築するためのアプリケーションです。
CPU の性能とメモリ容量が潤沢にある Android 端末であれば、 Debian noroot アプリの導入によって Android 端末上で非常に軽快な Debian 環境を実現することができます。

Debian noroot 環境は、 Debian noroot アプリをインストールした直後の初期状態において、 Debiann noroot アプリのインストール時における自動検出によって、Debian noroot 環境の locale 設定が Android OS の locale と同じ日本語に自動的に設定されますが、端末エミュレータのフォントが日本語に対応しておらず、また、日本語入力メソッドもインストールされていない状態であるため、初期状態のままでは日本語を取り扱うには不十分です。

このため、最初に Debian noroot 環境の起動初期に実行されるシェルスクリプトに日本語 locale 及び timezone に関連する環境変数の設定を行いました。次に、 Debian noroot 環境に日本語フォントと多言語対応の端末エミュレータ及び日本語入力メソッドの導入を行い、最後に簡易テキストエディタの日本語化を行うことにより、 Debian noroot 環境において、日本語環境の利用が可能になりました。

本稿では、当方の手元の端末にて動作する Debian noroot 環境で実際に行った日本語環境の構築について、環境構築の初期の段階において行う基本的な環境設定から日本語の表示及び入力が可能になるまでの一連のパッケージの導入及び設定手法について述べます。

本稿では最初に、 "初期段階で行う設定" の章において、日本語環境の構築の初期の段階で行う日本語 locale 等に関する環境変数の設定や timezone の設定等の基本的な設定について述べます。
次に、 "基本的な日本語化パッケージの導入" の章において、日本語の表示及び入力において必要となる日本語フォントや日本語入力メソッド等のパッケージの導入及び設定手法について述べます。
最後に、 "結論" の章において、本稿の結論について述べます。

初期段階で行う環境設定

本章では最初に、 "一時的な日本語 locale の無効化" の節において、各種コマンドライン上のエラーメッセージ等が正常に表示されない問題を回避するために一時的に日本語 locale を無効化する手法について述べます。
次に、 "LANG, LC_ALL, LANGUAGE の設定" の節において、日本語 locale 及びアプリケーションの地域言語化に関する環境変数の設定手法について述べます。
最後に、"timezone の設定" の節において、 Debian noroot 環境における timezone の設定手法について述べます。

一時的な日本語 locale の無効化

Debian noroot 環境においては、初期状態では Debian noroot アプリのインストール時に自動的に検出される locale 関連の設定が日本語のものとなっているにも関わらず、日本語フォントがインストールされていないために各種コマンドライン上のエラーメッセージ等が正常に表示されない問題が発生します。

この場合は、後述の日本語フォントの導入から多言語対応の端末エミュレータの導入を行うまでの間、 locale 関連の環境変数 LC_ALL 等を以下のように変更して shell を起動します。

これにより、各種メッセージの表示の日本語化を一時的に無効化し、エラーメッセージ等を英語で表示させることにより、問題を回避します。

 # env LC_ALL=C LANG=C LANGUAGE=en bash
 #

環境変数 LANG, LC_ALL, LANGUAGE の設定

次に、 Debian noroot 環境における日本語 locale の指定と、アプリケーションの地域言語化対応のライブラリである gettext で使用する言語の指定のために、環境変数 LANG, LC_ALL, LANGUAGE の設定を行います。

ここで、 Debian noroot 環境において起動直後に実行されるシェルスクリプトである /proot.sh に以下の行を追記します。

/proot.sh
...
# 環境変数 LANG, LC_ALL に "ja_JP.UTF-8" を、環境変数 LANGUAGE に "ja" をそれぞれ設定する。
export LANG="ja_JP.UTF-8"
export LC_ALL="ja_JP.UTF-8"
export LANGUAGE="ja"
...

timezone の設定

最後に、 Debian noroot 環境における timezone の設定を行います。

Debian noroot 環境における timezone の設定については、通常の Debian 系のディストリビューションの場合と異なり、 Debian noroot 環境の起動時に実行されるシェルスクリプトである /proot.sh において、環境変数 TZ の値を設定することにより行います。

ここで、デスクトップマネージャの時計表示等が実際の時刻と比べて正確な時刻を表示していない (例えば UTC に基づいた時刻が表示されている等) 問題が発生している場合は、シェルスクリプト /proot.sh において環境変数 TZ の値を設定している部分を以下のように修正することにより、問題を回避します。

/proot.sh
...
#export TZ="`getprop persist.sys.timezone`"
export TZ="Asia/Tokyo"  # 若しくは TZ="Japan"
...

基本的な日本語化パッケージの導入

本章では、最初に、 "日本語フォントを導入する" の節において、多言語対応の端末エミュレータ等において日本語の表示に必要な日本語フォントである VL ゴシックフォント及び梅フォントの導入手法について述べます。
次に、 "多言語対応の端末エミュレータを導入する" の節において、多言語に対応した端末エミュレータである MLTerm の導入及び設定手法について述べ、 "日本語入力メソッドを導入する" の節において、日本語の入力に必要な日本語入力メソッドである fcitx-mozc の導入及び設定手法について述べます。
最後に、 "簡易テキストエディタを日本語化する" の節において、 CUI 上で動作する簡易テキストエディタである nano のソースコードからのビルドに基づく日本語化の手法について述べます。

日本語フォントを導入する

まず最初に、日本語を表示するためのフォントを導入します。

本稿では、 Linux の各種ディストリビューションで標準的な日本語フォントである VL ゴシックフォント及び、文字の字間が MS ゴシック等を同一に設定されているために MS ゴシック等で構成されたテキストと親和性が高い梅フォント、 Umeplus を導入します。

以下のようにして、パッケージ fonts-vlgothic, fonts-horai-umefont, fonts-umeplus をインストールします。

 # apt-get install fonts-vlgothic
 # apt-get install fonts-horai-umefont
 # apt-get install fonts-umeplus

多言語対応の端末エミュレータを導入する

次に、多言語対応の端末エミュレータを導入します。

本稿では Debian noroot 環境において、疑似端末の問題を起こすことなく動作させる事が可能であることと、多くの種類の文字コードが使用可能である観点から、 MLTerm を導入する事を御勧めします。

まず、以下のようにしてパッケージ mlterm をインストールします。また、本稿では後述のように日本語入力メソッドとして fcitx-mozc の導入を行うため、 fcitx に対応するためのパッケージ mlterm-im-fcitx も同時にインストールします。

 # apt-get install mlterm
 # apt-get install mlterm-im-fcitx

そして、ファイル ~/Desktop/XTerm.desktop~/Desktop/MLTerm.desktop にコピーします。この時、 ~/Desktop/MLTerm.desktop にファイル所有者に対して実行権限をつけるのを忘れないようにします。

 # cp -p ~/Desktop/XTerm.desktop ~/Desktop/MLTerm.desktop
 # chmod u+x ~/Desktop/MLTerm.desktop

次に、先頭が Exec=... で始まる行を以下のように修正します。

本稿では、使用するフォントを VL ゴシックに、背景色を黒に、文字色を緑に、 Unicode における "EastAsianAmbiguous" character の文字幅を2桁に、それぞれ設定を行います。

~/Desktop/MLTerm.desktop
[Desktop Entry]
...
# Exec=... で始まる行を以下の通り修正する。
Exec=mlterm -w 20 --deffont="VL Gothic" --bg=black --fg=green --ac 2 -e /bin/bash -l
...
Name[en_US]=MLTerm
Name=MLTerm
...

~/Desktop/Root-XTerm.desktop も同様に ~/Desktop/Root-MLTerm.desktop にコピーして、ファイル所有者に実行権限を付与します。

 # cp -p ~/Desktop/Root-XTerm.desktop ~/Desktop/Root-MLTerm.desktop
 # chmod u+x ~/Desktop/Root-MLTerm.desktop

そして、 先頭が Exec=... で始まる行を次のように修正します。

~/Desktop/Root-MLTerm.desktop
...
# /usr/bin/mlterm 以下は ~/Desktop/MLTerm.desktop における修正と同様。
Exec=fakeroot-tcp /usr/bin/env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /usr/bin/mlterm -w 20 --deffont="VL Gothic" --bg=black --fg=green --ac 2 -e /bin/bash -l
...
Name[en_US]=Root MLTerm
Name=Root MLTerm
...

以上の設定により、デスクトップ上に MLTerm のアイコンが表示されるので、 MLTerm アイコンをクリックして MLTerm の正常な起動と MLTerm 上で正常な日本語の表示が行われていることを確認します。

MLTerm に壁紙を設定する

なお、上記の設定に加えて mlterm コマンドに --pic オプションをつけて起動させる様に設定を修正することにより、 MLTerm に壁紙を表示させる事が出来ます。

例えば /home/user/Picture/wallpaper.jpg に壁紙ファイルをおいて、 ~/Desktop/MLTerm.desktop を以下のように修正します。

~/desktop/MLTerm.desktop
[Desktop Entry]
...
# mlterm コマンドに --pic オプションを追記する。
Exec=mlterm -w 20 --deffont="VL Gothic" --pic=/home/user/Picture/wallpaper.jpg --bright=50 --bg=black --fg=green --ac 2 -e /bin/bash -l
...

以上の設定の修正後、 MLTerm のアイコンをクリックすると以下の画像のような MLTerm を起動させることが出来ます。

(MLTerm)

日本語入力メソッドを導入する

続いて、日本語入力メソッドを導入します。

本稿では、各種ディストリビューションにおいて標準的な日本語入力メソッドである fcitx-mozc を導入します。

まずは、以下のようにパッケージ fcitx-mozc をインストールします。また、 X Window System において日本語入力メソッドの設定を行うために、パッケージ im-config も同時にインストールします。

 # apt-get install fcitx-mozc
 # apt-get install im-comfig

次に、シェルスクリプト /proot.sh に以下の行を追記します。

/proot.sh
...
export XMODIFIERS="@im=fcitx"
export QT_IM_MODULE=fcitx
export QT4_IM_MODULE=fcitx
export GTK_IM_MODULE=fcitx
export CLUTTER_IM_MODULE=fcitx
...

そして、 X Windows system での日本語入力メソッドを fcitx に設定するために im-config コマンドを以下のように起動します。

 # im-comfig -n fcitx

以上の設定の後、 Debian noroot 環境を再起動させると、 fcitx が使用できるようになります。

なお、 fcitx の設定は設定メニューから "fcitx の設定" を選択して行いますが、漢字変換に関する keybind の設定は Android OS 上で使用している IME の keybind (例えば Ctrl+Space 及び Shift+Space 等) と衝突しないような keybind (例えば Zenkakuhankaku 若しくは Super+Space 等) を使用する必要があります

簡易テキストエディタを日本語化する

Debian noroot 環境上で標準でインストールされている簡易テキストエディタである nano は、デフォルトでの状態では、画面表示のメッセージ等が日本語化されていない為に若干不便です。

そこで本稿では、地域言語化に対応した nano をディレクトリ /usr/local 以下に手動でソースコードからビルドすることにより、 nano の画面表示のメッセージを日本語化します。

まずは以下のように nano をビルドするために必要なパッケージである build-essential, libncursesw5-dev, gettext, pkg-config をインストールします。

また、 nano のソースコードを取得するために、パッケージ wget 及び、ソースコードからビルドされた nano をパッケージとして管理するために、 xstow も同時にインストールします。

 # apt-get install build-essential libncursesw5-dev gettext pkg-config
 # apt-get install wget xstow

次に、以下の通りに nano のソースコードを取得し、適当なディレクトリに展開します。

 # wget http://www.nano-editor.org/dist/v2.5/nano-2.5.3.tar.gz
 # tar -zxvf nano-2.5.3.tar.gz
 # cd nano-2.5.3

そして、以下の通りに ./configure, make, make install の手順に基づいて、ソースコードから地域言語化した nano のビルドを行います。

ここで、後で手動でビルドした nano をパッケージ管理アプリケーションである xstow を用いて管理する為に、 ./configure スクリプトにおけるオプション --prefix で指定するディレクトリは、 /usr/local/opt/nano-2.5.3 等にしておき、 nano の実体のインストール先を一箇所のディレクトリに纏めておくようにします。

また、オプション --sysconfdir 及び --localedir において nano の設定ファイル群及びメッセージカタログファイル群のインストール先を明示し、オプション --enable-nls で nano の地域言語化を有効にします。

 # ./configure --disable-debug --disable-dependency-tracking --prefix=/usr/local/opt/nano-2.5.3 --sysconfdir=/usr/local/opt/nano-2.5.3/etc --localedir=/usr/local/opt/nano-2.5.3/share/locale --enable-color --enable-extra --enable-multibuffer --enable-nanorc --enable-nls --enable-utf8
 # make
 # make install

そして、以下の通りに xstow コマンドを起動して、ディレクトリ /usr/local/opt/nano-2.5.3 にインストールされた nano の実体をディレクトリ /usr/local 以下にリンクします。

 # cd /usr/local/opt
 # xstow -v -f ./nano-2.5.3

ここで、コマンドラインから which nano と入力して正常に地域言語化に対応した nano がインストールされていることを確認します。

 # which nano
 /usr/local/bin/nano

最後に、 nano の設定ファイルである /etc/nanorc をホームディレクトリの直下にコピーします。

 $ cp -p /etc/nanorc $HOME/.nanorc

上記の手法により、以下の画像のように nano の表示画面のメッセージが日本語化されました。

(nano)

結論

前々章で述べた初期の段階での基本的な設定により、 Debian noroot 環境上での適切な locale 設定と gettext ライブラリでの言語設定及び、適切な timezone の設定を行いました。

また、前章で述べた基本的な日本語化パッケージの導入及び設定により Debian noroot 環境において多言語対応の端末エミュレータである MLTerm から日本語の表示を行うことが可能になり、日本語入力メソッドである fcitx-mozc を介して日本語を入力を行うことが可能になりました。
そして、ディレクトリ /usr/local 以下にソースコードから地域言語化された nano を手動でビルドすることにより、簡易テキストエディタである nano の日本語化が可能になりました。

以上の Debian noroot 環境の日本語環境の導入に関する設定により、 Debian noroot 環境において、日本語環境の利用が可能になりました。

謝辞

なお、Debian noroot 環境の日本語環境構築等、各種環境設定に当たっては、以下の Web page の内容を参考にしました。 以下の Web page の作者である msmrrenda 氏と AbyssLuke 氏に心より感謝致します。

また、本稿の記述に当たって、 Android OS 端末上で非常に軽快な Debian 環境を実現することを可能にした Debian noroot 環境の開発者である pelya 氏に心より感謝致します。
そして最後に、 Debian noroot 環境と Android OS 及び Debian 環境の全ての事に関わる全ての皆様に心より感謝致します。