Linuxサーバで日本語環境を使う(Debian/Ubuntu)


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を付けるだけでもよい。
その場合、ログイン時に管理者パスワードを要求され、エラー表示が出る。その他は上手く行く。





1 件のコメント:

  1. squeezeにも、fbtermはあったかと思うのですが、なぜにjfbtermだったのでしょうか。

    http://packages.debian.org/ja/squeeze/fbterm

    返信削除

Linuxコマンドライン上でSVGベクタ画像をJPG等へラスタライズ変換する

 Linuxコマンドライン上でSVGベクタ画像をJPG等へラスタライズ変換することができるが、上手く変換されない場合がある。   以前作った魔法陣イラスト素材をイラスト素材ストックサイトへ登録しようと思い立ち、改めて素材用にラスタライズ変換をかけようとした。   ラスタライズ変換...