WebOS Goodies

WebOS の未来を模索する、ゲームプログラマあがりの Web 開発者のブログ。

WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。
Subscribe       

Gentoo Linux を UTF-8 ベースにする

前回の記事でパッケージのブロックを解消したのも束の間、今度は phpMyAdmin のアップデートで「PHPunicode USEフラグ付きでビルドされてないと駄目よ」みたいなエラーを吐かれてしまいました。やはり間を空けるといけませんね(^^ゞ。 PHP のみUSEフラグを変更する手もありますが、どうせなのでシステム全体のロケールを UTF-8 化してみることにしました。

ロケールを UTF-8 に変更する

GentooLinuxUTF-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-updatedispatch-conf で設定ファイルを更新してください。これでシステム全体で UNICODE 関連の機能が有効になったはずです。

本日は GentooLinux のシステムロケールを UTF-8 にする方法をご紹介しました。多くのコマンドが上記の手順で UTF-8 化されますが、なかには追加の設定が必要なものもあります。そのあたりはGentooでのUTF-8の使用方法に詳しく書かれているので、ご参照ください。早くすべて UTF-8 に統一されて、文字コードの違いなんて気にしなくてもいい日が来るといいですね。それでは、また。

関連記事

この記事にコメントする

Recommendations
Books
「Closure Library」の入門書です。
詳しくはこちらの記事をどうぞ!
Categories
Recent Articles