glibc の生成するロケールを限定する新しい方法
glibc の再構築時に生成するロケールを限定することで、 glibc の再構築にかかる時間やディスク消費を抑えることができます。その方法がGentoo Linux ローカライズガイドなどで解説されているのですが、どうやらこの情報はもう古いようです。現在は userlocales というUSEフラグも "/etc/locales.build" というファイルも使われておらず、 Debian などと同じ "/etc/locale.gen" で指定する方法に移行しています。
本日は、この "/etc/locale.gen" を使ったロケールの限定方法をご紹介しようと思います。
locale.gen の記述方法
まずは "/etc/local.gen" の書式から見ていきましょう。基本的には 1 行 1 ロケールで、各行は以下の書式で記述します。
<ロケール名> <文字コード名>
"/etc/locales.build" との違いは、ロケール名と文字コードの区切りが "/" から空白に変わっているだけです。したがって、 "ja_JP.UTF-8" を生成させるなら、以下のように記述します。
ja_JP.UTF-8 UTF-8
もとから "/etc/locale.gen" にサンプルが生成されていますので、それを編集して必要な行のコメントを外すだけで大抵は足りるはずです。私は以下の行をコメントアウトしました。
en_US ISO-8859-1 en_US.UTF-8 UTF-8 ja_JP.EUC-JP EUC-JP ja_JP.UTF-8 UTF-8 ja_JP EUC-JP
これで、日本語と英語のロケールのみに限定することができます。なお、詳細については man ページが用意されています。以下のコマンドで読めますので、目を通してみてください。
man locale.gen
glibc の再構築
生成するロケールの指定を行ったら、glibc を再構築します。
emerge sys-libs/glibc
けっこう時間がかかりますので、しばらく放っておきましょう。ビルドログの最後のほうで生成したロケールが表示されるので、きちんと指定したロケールのみになっているか確認しておくと完璧です。
古い locales.build を削除する
なお、従来の "/etc/locales.build" は不要です。残しておいても意味が無いので、削除してしまいましょう。
rm /etc/locales.build
こうしておけば、 glibc のビルドで "/etc/locale.gen" への移行を促すメッセージが出なくなります。
本日は "/etc/locale.gen" を使って生成されるロケールを限定する方法をご紹介しました。これで僅かながらディスク消費を減らすことができます。本来は GentooLinux のインストール時に設定してしまうのが一番良い方法なのですが。これからインストールするというときは、ぜひ最初から設定してみてください。
詳しくはこちらの記事をどうぞ!
この記事にコメントする