Debian 6.0.6 (squeeze) と Ubuntu 12.04.2 Server のサーバ環境で、ターミナルから日本語を使用するための設定です。
結論として、
・Debianではjfbterm、Ubuntuではfbtermを導入すると、日本語表示ができる。
・日本語入力がしたければuim-fepとuim-anthyが必要。
・そしてそれぞれ、設定を行う必要がある。
以下はその手順ということになります。
Web上に情報は多くあるのですが、バージョンの違いによるのか、書いてあるとおりに設定しても動かない場合が多く...。このページは2013年環境における、わたしなりのまとめとお考えください。
なお、最初にお断りしておきますが、サーバ環境というのは、無用の不具合を避けるためにできるだけアプリケーションの導入を避けるのが普通とされているようです。
私の場合、Windowsクライアントも利用するSAMBAサーバの管理をする必要もあったため、やむおえず(?)日本語環境を導入しましたが、そうでない場合は、英語環境のまま運用すべきかと思います。
英語のほうがエラーメッセージで検索しやすい場合もあるため、そもそもサーバに日本語環境は不要という見方もできます。
同じ理由から、ログイン時に日本語ターミナル環境を自動で起動する設定は、しないほうが無難と思われます。Debianでの設定方法は書いてありますが、わたしはできることを確認しただけで、使ってはいません。
手順に、フレームバッファを使用するグラフィック関連のモジュールの有効化が含まれているため、設定の実験環境を晒しておきます。
VirtualBox(4.2.8)にて、ゲストに設定を行いました。
OSは(ホスト含む)すべて64Bit。ゲストの3Dアクセラレーションを有効化。
GuestAdditionは追加導入せず、OSデフォルト搭載のままです。
ホストはGTX520ボードを搭載したUbuntu12.04.2デスクトップです。あくまで念の為。
##Debian 6.0.6 (squeeze) サーバにて、ターミナル環境での日本語環境を設定する
#導入
jfbtermの起動以外は、ほぼすべて管理者権限が必要な操作なので、rootになって作業する。
aptitude install jfbterm -y
手動で以下のコマンドを打つと、日本語表示可能なターミナル環境になる。
(modprobeは要管理者権限)
modprobe vga16fb
jfbterm -q
日本語ターミナル環境には kon2(UTF-8非対応との古い情報あり。実際kon2は試したら化けた。),bterm(CentOS向け?),mlterm という選択肢もあるらしい。
#日本語入力のために、uim-anthyをインストールしておく。
aptitude install uim-fep uim-anthy -y
umi-fepをデフォルト設定のまま起動すると、Spaceキーが入力切り替えに使用される。
(半角スペースが打てなくなることで、コマンド操作も難しい状態になる)
そこで、設定ファイル /usr/share/uim/generic-key-custom.scm の末尾にある2行を、
(define-key generic-on-key? '(" "))
(define-key generic-off-key? '(" "))
から、
(define-key generic-on-key? '("<Control> "))
(define-key generic-off-key? '("<Control> "))
に書き換える。
コマンド[uim-fep]を実行すると、uim-fepがコンソールに常駐するようになる。
これにより、半角/全角入力が、Ctrl+Spaceで切り替わるようになる。
uim-prime入れると予測変換されるようになるらしい。
#自動化
モジュールのロードは以下のコマンドで起動時に自動で行われるように設定できる。
echo vga16fb >> /etc/modules
jfbtermの起動は、.bashrcに記述するが、そのまま書いても上手く行かない。
ログイン時にjfbtermおよびuim-feqを自動で起動するには、.bashrcの末尾に、以下のように記述する。
case $TERM in
linux)
if [ -c /dev/fb0 ]; then
jfbterm -q -e uim-fep -u anthy
exit
fi
;;
esac
(ログインユーザの.bashrcに設定すること。ログイン後にsuでrootになっても、jfbtermと日本語表示は引き継がれる。)
#(蛇足)日本語以外の言語でインストールした場合
言語設定は環境変数となっており、これは
env | grep LANG
で確認できます。また、言語設定(環境変数)は以下の3つの方法で変更できます。
1. そのコマンドだけ変更(例えば、" ls -l " コマンド)
LANG=C ls -l
2. そのターミナルだけ変更(再起動などすると元に戻る)
export LANG=C
3. 永続的に言語設定を変更する
dpkg-reconfigure locales
コマンドにて、"ja_JP.UTF_8 UTF-8"に変更する。
キーボードの変更:
以下のコマンドでキーボード設定を変更できる。
dpkg-reconfigure keyboard-configuration
にて、"generic 105key (Intl) PC" "japan"を選択する。
(これで日本語106キーボードになる。)
## ubuntu(Ubuntu 12.04.2)サーバの日本語環境構築
#Debianとの違い
jfbtermはexitコマンドを使用した際に不具合が起こるという情報があり、fbtermを使用する。
(試したら実際に入力を受け付けない状態になった。)
設定について、vesafbやfbconを有効にする必要はなかった。
#fbterm uim-fep uim-anthy unifontを導入
このままではfbtermで日本語部分が空白になる(表示されない)ので、
.fbtermrcを以下のように書き換え
(編集するには、一度fbtermを起動する必要がある。起動前にはこのファイルが存在しない。)
(また、この設定ファイルは管理者権限がなければ編集できない。)
font-names=mono
font-size=12
を
font-names=mono,unifont
font-size=16
へ。
そのままではuim-fepによる日本語入力ができないので、
/usr/share/uim/generic-key-custom.scm ファイルの中を、以下のように変更
(define-costum 'generic-on-key '("zennkeku-hankaku" "<Shift> "))
(define-costum 'generic-off-key '("zennkeku-hankaku" "<Shift> "))
から
(define-costum 'generic-on-key '("<Control> " "zennkeku-hankaku" "<Shift> "))
(define-costum 'generic-off-key '("<Control> " "zennkeku-hankaku" "<Shift> "))
へ。
それぞれ起動する(fbtermの起動には管理者権限が必要)
sudo fbterm
uim-fep
#自動起動する場合(できなかった)
Ubuntuでfbtermをログイン時に自動起動する方法はわかりません。
たぶんオプションが違うのではないかと思うのですが、自分が使わないということもあり、自動起動の方法は、現在、探索中。
なので以下は、ダメだった試行の断片です。
fbtermに管理者が必要なのはfb0に権限が必要なのが理由なので、udevルールを書けばよい、とのこと。
vi /etc/udev/rules.d/10-local.rules に、
KERNEL=="fb0", OWNER="username", MODE="0640"
と書きこむ。
カーネルモジュールとか設定した環境では、この設定を追記したらディスプレイ描画がおかしくなったので、気を付けること。
.bashrcへ記述
case $TERM in
linux*)
fbterm uim-fep
;;
*)
;;
esac
fbterm起動時に、上にエラー表示が出るが、使用可能。
この設定はログインできなくなったからしない。
~/.profile
exec /usr/bin/fbterm /usr/bin/uim-fep
v86dインストール
/etc/modulesへ uvesafb・fbconの追記
などは効果がなかった。
単に.bashrcの記述にsudoを付けるだけでもよい。
その場合、ログイン時に管理者パスワードを要求され、エラー表示が出る。その他は上手く行く。