Gentoo Linux を UTF-8 ベースにする
ロケールを UTF-8 に変更する
GentooLinux の UTF-8 化については、 GentooでのUTF-8の使用方法で詳しく解説されています。基本的には、そこに書いてある方法に従えば大丈夫です。ここでは、 "ja_JP.utf8" ロケールを使用することを前提にして、具体的な手順をご紹介します。
ja_JP.utf8 ロケールの作成
まずは、 "ja_JP.utf8"("ja_JP.UTF-8" かもしれません)ロケールが利用可能かどうかを確認しましょう。以下のコマンドを実行して "ja_JP.utf8"(もしくは "ja_JP.UTF-8") が表示されれば OK です。設定で明示的に抑制していない限りは大丈夫なはずですが・・・。
locale -a | grep 'ja_JP'
もし表示されなければ、以下のコマンドで作成できます。
localedef -i ja_JP -f UTF-8 ja_JP.utf8
なお、 GentooでのUTF-8の使用方法に出てくる "userlocales" USEフラグ や "/etc/locales.build" ファイルなどは obsolete な情報だと思います。 GentooLinux のロケール管理は Debian と同じ方式に移行したようです。このあたりは次回の記事でご紹介したいと思います。
システムロケールの設定
"ja_JP.utf8" ロケールが利用可能であれば、それをシステム全体のデフォルトとして設定しましょう。それには "/etc/env.d/02locale" で以下の環境変数を設定します。もしファイルがなければ作成してください。
echo 'LC_ALL="ja_JP.utf8"' > /etc/env.d/02locale
これでデフォルトのロケールが設定されました。それを現在の環境に反映させるため、以下のコマンドを実行します。
env-update
source /etc/profile
確認のため locale コマンドを実行し、以下のように表示されれば OK です。
LANG= LC_CTYPE="ja_JP.utf8" LC_NUMERIC="ja_JP.utf8" LC_TIME="ja_JP.utf8" LC_COLLATE="ja_JP.utf8" LC_MONETARY="ja_JP.utf8" LC_MESSAGES="ja_JP.utf8" LC_PAPER="ja_JP.utf8" LC_NAME="ja_JP.utf8" LC_ADDRESS="ja_JP.utf8" LC_TELEPHONE="ja_JP.utf8" LC_MEASUREMENT="ja_JP.utf8" LC_IDENTIFICATION="ja_JP.utf8" LC_ALL=ja_JP.utf8
これでロケールの移行作業は完了です。多くのコマンドが UTF-8 でメッセージを出力するようになっているはずです。ターミナルが UTF-8 に対応していないと文字化けするので注意してください。
unicode USEフラグを追加する
Portage の各種パッケージは、 UNICODE に対応するかどうかを選択するために unicode USEフラグを参照します。システムを UTF-8 ベースにしたなら、この USEフラグも有効にしておいたほうが良いでしょう。というか、今回の本来の目的はこっちでしたね(^^ゞ。
USEフラグを変更する際の詳細な手順はこちらの記事でご紹介しています。ここでは、 unicode フラグを付加することに絞って手順をご紹介します。まずは "/etc/make.conf" に unicode フラグを追加しましょう。以下のように、 USE 変数に追加すれば OK です。
USE="unicode ..."
そして、関連パッケージをリビルドしましょう。以下のコマンドでいけます。
emerge --update --deep --newuse world
ビルドが終わったら、通常通り etc-update か dispatch-conf で設定ファイルを更新してください。これでシステム全体で UNICODE 関連の機能が有効になったはずです。
本日は GentooLinux のシステムロケールを UTF-8 にする方法をご紹介しました。多くのコマンドが上記の手順で UTF-8 化されますが、なかには追加の設定が必要なものもあります。そのあたりはGentooでのUTF-8の使用方法に詳しく書かれているので、ご参照ください。早くすべて UTF-8 に統一されて、文字コードの違いなんて気にしなくてもいい日が来るといいですね。それでは、また。
詳しくはこちらの記事をどうぞ!
この記事にコメントする