日本語環境
Debianのetchでの日本語環境設定について記します。皆さんの設定の参考にしてください。
細かいコマンド自体のの説明はここではしないので、manpageを参考にしてください。
geditはxim経由での日本語入力ができないバージョンがありました。その場合は右クリックして入力メソッドを「X 入力メソッド」から「SCIM input method」か「uim」にして使ってください。詳しくは [http://bugs.debian.org/374640] を参照ください。Sat, 25 Nov 2006に修正されたgedit 2.14.4-3がアップロードされたので2006年12月のetchのリリースには間に合うでしょう。
日本語環境に必要なパッケージ
以下に日本語環境整備に必要とされるパーケージをリストします。
- 日本語入力
- scim系を選んだ場合に導入するパッケージ(私はこれを使ってます)
- im-switch
- scimと自動的に導入される以下のパッケージ
- libscim8c2a他
- scim-anthyと自動的に導入される以下のパッケージ
- anthy
- libanthy0
- libscim8c2a他
- uim系を選んだ場合に導入するパッケージ
- im-switch
- uimと自動的に導入される以下のパッケージ
- uim-common
- uim-utils
- uim-gtk2.0
- uim-xim
- uim-fep(コンソールで使う際のみ必要)
- uim-anthyと自動的に導入される以下のパッケージ
- anthy
- libanthy0
- linuim3
- uim-common
- uim-utils
- scim系を選んだ場合に導入するパッケージ(私はこれを使ってます)
- 日本語フォント
- unifont
- ttf-kochi-gothic
- ttf-kochi-mincho
- ttf-vlgothic
- 日本語メッセージ
- manpages-ja
- manpages-ja-dev
- openoffice.org-help-ja
- openoffice.org-l10n-ja
- iceweasel-l10n-ja
- (firefox-locale-ja is old and should be removed)
- kde-i18n-ja (KDEを導入した際のみ必要)
- 日本語でのドキュメンテーション
- doc-linux-ja-text
- doc-linux-ja-html
- 日本語関連ツール
- lv
- nkf
- jfbterm
localeとは
LANG環境変数にあたえ言語環境を定義する、localeですがxx_YY.ZZZZと言う構造なっていて以下の意味があります。
xx
言語
yy
地域
zzzz
エンコーディング
日本の言語地域はja_JPで、これだけだとデフォールトの昔の ja_JP.eucJPの意味になります。 米国(ある意味で一番標準でサポートが良い)の言語地域はen_USで、これだけだとデフォールトの昔の en_US.ISO8859-1の意味になります。
ちなみに日本に御縁のあるエンコードシステムですが:
UTF-8
最近の主流、多国語対応
eucJP
昔のUNIXの標準、日本語のみ対応
Shift-JP
昔のMicrosoftの標準、日本語のみ対応
ISO-2022-JP
日本語e-mailの主流、7-bitコードのみ、日本語のみ対応
ISO-8859-1
昔の西欧の主流、Ascii+西欧の文字対応、8ビット
ASCII
米国の主流、7ビット
これらはうまく工夫されていて、ASCIIのコード範囲に収まる文字だったら上記どのエンコーディング体系でも同じです。
もしja_JP.UTF-8のlocaleをなんらかの理由でまだ作成設定してないなら
$ sudo dpkg-reconfigure locales
をして作成してください。これが無ければUTF-8の日本語環境は無理です。
言語関連の環境変数の設定
各種プログラムの挙動は言語関連の環境変数(LANGやLC_ALL等)への設定によって変わります。
ここで注意が必要なのは、一部のプログラムはPAM(Pluggable Authentication Modules)を使っているので、PAMでの環境変数設定が優先するということです。
etchの標準日本語インストール(2006年11月現在のRC1の前のバージョンの情報)では、日本語でのインストールを選ぶと/etc/environmentと/etc/defaults/localeというファイルともに
LANG="ja_JP.UTF-8"
という内容を定義していると思います。
通常X環境だと気にならないのですがクラシュしたりしてコンソールを使う際やsuを使うときにも日本語なので私は嫌いです。そういうときは文字化けのない一番確実な環境がいいので、私は日本語表示しない設定にコンソールではすべくこれらのファイルのLANG定義内容を:
LANG="en_US.UTF-8"
としています。(フレームバッファーコンソールやkon2をuim-fepやemacsとでUTF-8環境下でうまく動かす方はこれは必要ないだもしれません。基本的に私の趣味の問題です。こうしなくても日本語環境はできます。)
ただこのままだとディスプレーマネージャーのgdmが英語です。X自体はこれでもLanguageでJapaneseを選べばちゃんと日本語でのメニュー等の表示に対応できます。
でも折角ですから私はディスプレーマネージャーのgdmを日本語メニューで立ち上げています。これにはPAMを使って対応します。 まず、/etc/pam.d/gdmや/etc/pam.d/gdm-autologin(このファイルはお使いになっているディスプレーマネージャー次第ですが…)の中の
auth required pam_env.so read_env=1 envfile=/etc/default/locale
のlocale関連の環境変数を定義する行を
auth required pam_env.so read_env=1 envfile=/etc/default/locale-gdm
と直します。そして/etc/defaults/locale-gdmというファイルを作り、
LANG="ja_JP.UTF-8"
という内容にします。これでGDMは日本語になります。Xの中で使われる言語(LANGの値)はGDMのメニューから選べます。だからこうしておいてもXでは英語の環境も選べます。
Debianでの日本語入力設定
Debianでの日本語入力設定はim-switchを用いるのが簡単です。
そしてさらに複雑な各日本語入力ツールチェイン固有の設定は、各日本語入力ツールチェイン付随するGUIコンフィギュレーションツールを用いて設定していきましょう。このコンフィギュレーションツールは各日本語入力のツールバーの設定アイコンをたたくか、Gnomeのツールバーのメニューで「デスクトップ」->「設定」で表示されるメニューから該当する設定ツールアイコンをたたいて設定を行います。
まず、im-switchパッケージとuimかscimのどちらかの日本語入力ツールチェインパッケージをインストールします。
詳しい設定のことは、/usr/share/doc/im-switch/README.Debian.gzや/usr/share/doc/scim/README.Debian.gzや/usr/share/doc/uim/README.Debian.gzに英語で書いてあります。以下に要点だけを日本語にします。
im-switchコマンドは、コマンドがrootから実行されたかどうかで挙動が違います。
- SCIM系での設定を選んだ場合(私はこれを使ってます)
scim と名の付く役に立ちそうなパッケージをインストールする。("l"をaptitudeで使って見付ける) scim, scim-anthy (Japanese), ...等。
ユーザーとして"im-switch -c" を実行し"scim"を選ぶ。
- ユーザーアカウントにリログインしてXセションを更新する。
- 入力方法やモードはGUIのツールバーを叩いて設定する。(忙しすぎる変換ツール候補表示を減らすこともできます。)
- 起動はCTRL-SPACE
上記のSCIMは2重起動されないので、以下のUIMのようにセッションマネージャーは心配いりません。
- UIM系での設定を選んだ場合(gnome-sesseionを使うim-switchパッケージ中の説明)
uim と名の付く役に立ちそうなパッケージをインストールする。("l"をaptitudeで使って見付ける)uim, uim-anthy (Japanese), uim-gtk2.0, uim-xim, ...等。
ユーザーとして"im-switch -c" を実行し"uim"を選ぶ。
もし、ツールバーに状況表示したい際には、Desktop->Preferences->Session でセッションマネージャーに"}" を起動するように登録。
- もし、シストレイに状況表示したい際には、"uim-toolbar-gtk-systray"を代わりに選ぶ。
- もし、KDEが好きな際には、"uim-toolbar-qt"を代わりに選ぶ。
- ユーザーアカウントにリログインしてXセションを更新する。
- 入力方法やモードはGUIのツールバーを叩いて設定する。
- UIMの変換起動はCNTL-SPACE
- UIMでの変換モード切替えon/offはSHIFT-SPACE(通常は、直接入力のon/offになる)
上記のUIMの設定の変化形として、セッションマネージャーに起動を登録する代わりに、shellから"uim-toolbar-gtk >/dev/null 2>dev/null &"としてツールバーを起動し、シャットダウン時に自動登録され再起動時に立ち上がるのにたよるのも方法してあります。(uim-ximが安定してからの遅延起動がうまくいくかどうかはまだテストせず。)
- UIM系での設定を選んだ場合(セッションマネージャーを使わない環境。uimのパッケージ中にある説明と同じ。)
uim と名の付く役に立ちそうなパッケージをインストールする。("l"をaptitudeで使って見付ける)uim, uim-anthy (Japanese), uim-gtk2.0, uim-xim, ...等。
普通はユーザーとして"im-switch -c" を実行し"uim-toolbar"を選ぶ。
もし、シストレイに状況表示したい際には、ユーザーとして"im-switch -c" を実行し"uim-systray"を代わりに選ぶ。
もし、KDEが好きな際には、ユーザーとして"im-switch -c" を実行し"uim-toolbar-qt"を代わりに選ぶ。
もし、なにも状態表示が入らないという際には、ユーザーとして"im-switch -c" を実行し"uim"を代わりに選ぶ。
- ユーザーアカウントにリログインしてXセションを更新する。
- 入力方法やモードはGUIのツールバーを叩いて設定する。
- UIMの変換起動はCNTL-SPACE
- UIMでの変換モード切替えon/offはSHIFT-SPACE(通常は、直接入力のon/offになる)
上記ではセッションマネージャーに頼らずツールバーが起動されます。再ログインするときなどにセッションマネージャーにもよってツールバーが起動され複数起動になる場合などは、Desktop->Preferences->Session でセッションマネージャーが"}" を(再)起動しないように登録するとよいです。
uim-fepパッケージを用いるとコンソールでの日本語入力ができます。(日本語表示のためのjfbtermは私は良く分かりません)そういった意味でUIMは魅力があります。
MODIFIERSを設定せずen_US同様の挙動を得る。
"im-switch -c" を実行し"none"を選ぶ。
- ユーザーアカウントにリログインしてXセションを更新する。
- デフォルト挙動を回復する
"im-switch -a" を実行する。
- ユーザーアカウントにリログインしてXセションを更新する。
- 設定状況の確認方法
"im-switch -l" を実行する。
im-switchによってスタートされる入力方法はlocaleの値に依存することは注意してください。
英語環境下ででも、im-switchによって日本語等の入力できる環境をスタートできます。en_US.UTF-8環境で日本語での入力は意外と便利です。
SCIMがCJK以外のlocaleで起動するようにするには~/.scim/globalが/etc/scim/globalにあなたがSCIMを起動したいlocaleを
/SupportedUnicodeLocales = en_US.UTF-8,en_GB.UTF_8,fr_FR.UTF-8
等と列記します。
GTK_IM_MODULE変数に新規のimmodukleメカニズムを設定して使わないとと考えるかもしれませんが、現状はGTK_IM_MODULE変数にXIMに設定するのが最も安定するようです。詳しくは/usr/share/doc/scim/README.Debian.gzに英語で書いてあります
emacsの特殊な状況
- emacsは賢いのでいろんなエンコード体系に対応しています。それだけにその設定には気を付けてください。
- emacsはXやFEPなどの外部ソフトに頼らない独自の日本語入力インフラが色々あるようです。(eggなど。)
もしXIMを経由せずに日本語入力したい際には、emacsを立ち上げる際のMODIFIERSの値を"none"としてやればいいということです。シェルからだと:
$ MODIFIERS=none emacs
です。このようにDebianのmenuを触るのは、/usr/share/doc/menu/htmlの手順にしたがって/etc/menuにカスタマイズした定義を置いてください。
vimやviewで旧エンコーディングのファイルを扱う方法
一番簡単なのはm17n-envパッケージを導入し、各旧エンコーディング対応のターミナルソフトを立ち上げvimやviewを使うことでしょう。