FreeBSDでSSHを使えるようにする でSSHでログインまでできるようになりました。
さて、現状では、FreeBSDは、すべてが英語です。
すべて英語となると・・・・くじけそうです。
そこで、今回は、日本語の環境(UTF-8対応)をセッティングしてみます。
- 目次
- 履歴
2010年7月17日 初版
ユーザの言語設定を行う
基本的に以下の2点を設定すれば日本語化(UTF-8)できます。
・文字コードの設定
・言語の設定
この設定方法は、大きく2つのやり方があると思います。細かく言えば、さらにいっぱいありますが・・ここでは2つだけ簡単ながら解説します。
ログイン設定ファイルを編集するやり方
ログイン設定ファイルの設定は、大きく2つのやり方はあります。以下に、それぞれのやり方を解説します。
- 各ユーザ毎の .login_conf を編集するやり方
各ユーザ毎のホームディレクトリにある .login_conf を以下のように編集することで日本語化(UTF-8)の設定を行うことができます。
$ vi .login_conf ... me:\ :charset=UTF-8:\ :lang=ja_JP.UTF-8:
- ログイン設定ファイル/etc/login.conf を編集するやり方
ログイン設定ファイル/etc/login.conf を編集するやり方は、ログインクラスを編集するやり方です。
そのため、各ユーザの日本語化(UTF-8)を行うには、各ユーザのログインクラスを変更してあげる必要があります。- ログイン設定ファイル/etc/login.conf を編集し、ログインクラスを追加する。
$ vi /etc/login.conf ... japanese|Japanese Users Accounts:\ :charset=UTF-8:\ :lang=ja_JP.UTF-8:\ :tc=default
最終行に追記すればOKです。
- 日本語化(UTF-8)したいユーザのログインクラスを変更する。
$ chsh hoge #Changing user information for hoge. Login: hoge Password: ***************************** Uid [#]: 1002 Gid [# or name]: 1002 Change [month day year]: Expire [month day year]: Class: japanese Home directory: /home/hoge Shell: /bin/tcsh Full Name: hoge Office Location: Office Phone: Home Phone: Other information:
上記のように Class: の欄に 先に追加したログインクラス名であるjapaneseを設定して保存します。
※chshコマンドは、通常viエディタが起動します。
- ログイン設定ファイル/etc/login.conf を編集し、ログインクラスを追加する。
各シェルの設定ファイルを編集するやり方
各シェルによって設定の仕方が異なりますので、以下に、それぞれのシェルに関して解説します。
- csh ,tcsh を利用している場合
各ユーザ毎のホームディレクトリにある .cshrc ( 例: ~hoge/.cshrc )を以下のように編集することで設定することができます。
ここでは、... setenv LC_CTYPE ja_JP.UTF-8 setenv LANG ja_JP.UTF-8
最終行に追記すればOKです。
- bash を利用している場合
各ユーザ毎のホームディレクトリにある .bashrc ( 例: ~hoge/.bashrc ) を編集することで設定することができます。
... LC_CTYPE=ja_JP.UTF-8 LANG=ja_JP.UTF-8 esac export LC_CTYPE export LANG
最終行に追記すればOKです。
bash は、FreeBSDではデフォルトでインストールされません。そのため、.bashrc を読み込まないことも考えられます。
もし、読み込まない場合は、.profile ( 例: ~hoge/.profile ) に以下のように追記することで、読み込まれるようになります。... if [ -n "$BASH_VERSION" ]; then if [ -f "$HOME/.bashrc" ]; then . "$HOME/.bashrc" fi fi
- sh を利用している場合
各ユーザ毎のホームディレクトリにある .shrc ( 例: ~hoge/.shrc ) を編集することで設定することができます。
( 上記の.bashrcと全く同じです。 )
... LC_CTYPE=ja_JP.UTF-8 LANG=ja_JP.UTF-8 export LC_CTYPE export LANG
最終行に追記すればOKです。
FreeBSDでは、sh ( シェル ) という場合、/bin/sh を指し、Bourne Shell になります。
いわゆるBシェルのことで、bashは、このBourne Shellをさらに拡張したものです。
各方法の長所・短所を考えてみる
設定する内容が固定でOKの場合は、ログイン情報を編集する方が、手っ取り早いでしょうね。
ただ、FreeBSDは、コンソールでは日本語の出力ができない・・・ということがあります。
このような場合では、コンソールの判断を行って、
コンソールからのログインはデフォルトの言語(英語)で、
SSHなどのリモートからのログインでは日本語(UTF-8)
・・・と使いわけたいところです。
そのような判断を伴う場合は、各シェルの設定ファイルを利用する方が良いでしょう。
以下は、Cシェル、Bシェルでの設定例です。
Cシェル ( csh ,tcsh ) の設定例
|
Bシェル ( sh ,bash ) の設定例
|
とすれば、うまくいくと思います。
`tty` 以外でも$TERM (端末種別) などを用いて判断する場合もあります。
その場合は、SSHのクライアント側での端末種別の設定を正しく行っておく必要があるでしょう。
たとえば、Tera Term では、TERATERM.INI を編集することで kterm , xterm などのコンソールで用いる端末種別を設定しないように 対応できます。
|
|
各ユーザファイルのデフォルトファイルは以下のディレクトリにあります。
|
vimをインストールする
以下は、portsを使って vim をインストールしています。
ディスク容量が少ない方、GUIが必要ない方(基本的にCUI(シェル)しか使わない方)には、vim-lite がおすすめです。
個人的には、サーバーとして使うことしかないので、vim-lite をインストールしています。
|
vim-liteの場合
|
ハッシュテーブルを再構築すると、カレントディレクトリにかかわらず、vimが起動できるようになります。
DOS窓のpathを再設定してくれるようなものですね。
各ユーザ毎のホームディレクトリにある vimの環境設定ファイル ( 例: ~hoge/.vimrc ) を編集します。
( vim-lite でも、全く同じです。 )
|
管理者も変更したい場合は、~root/.vimrcを同じように編集します。
ただ、vim-liteをpkg_add でインストールしても日本語化できなかったです・・・。原因わからず、結局 ports でvim-liteをインストールしたら、何事もなく日本語表示されました。
なんだかんだで最後に頼りになるのは、今も昔もportsなんですね。
日本語マニュアルをインストールする
- 日本語マニュアルのインストールを行う
以下は ports を使って日本語マニュアルのインストールを行っています。
さすがにこれは、pkg_add でも良いのでは、思いますので、その方法も以降に記載しておきます。
- ports を使ってのインストール
$ cd /usr/ports/japanese/man $ make install clean ... $ cd /usr/ports/japanese/man-doc $ make install clean ...
- pkg_add を使ってのインストール
$ pkg_add -r ja-man-doc ...
pkg_add でインストールすると以下のようなメッセージが出力されることがあります。
これは、/var/tmp/instmp.k4lMoL/bin/jman というファイルが削除できなかったので、/var/tmp/instmp.k4lMoL というディレクトリが削除できないで残っている・・・というものです。rm: /var/tmp/instmp.k4lMoL/bin/jman: Operation not permitted rm: /var/tmp/instmp.k4lMoL/bin: Directory not empty rm: /var/tmp/instmp.k4lMoL: Directory not empty pkg_add: couldn't remove temporary dir '/var/tmp/instmp.k4lMoL'
この対処は、以下のようにやればOKです。
ちゃんと消せましたか?この詳しい解説は、FreeBSDでは、パーミッションで許可されていても消せないファイルがある を参照してください。$ chflags 0 /var/tmp/instmp.k4lMoL/bin/jman $ rm -fR /var/tmp/instmp.k4lMoL $ ls /var/tmp $
- ports を使ってのインストール
- 日本語マニュアルの動作確認を行う
日本語マニュアルのインストールで jman という日本語マニュアルを出力するためのツールも同時にインストールされています。
その jman が正しく動作するか確認しておきます。
$ jman man MAN(1) FreeBSD <B0><EC><C8>?<B3><A5>?<F3><A5>???奢<A5><EB> MAN(1) ?^H?<BE><CE>^H<BE><CE> ...
jmanの出力文字コードがEUCのため、上記のようにUTF-8での送受信の場合は、文字化けします。これが正しいです。
以下のようなエラーが出力されたら、manと名の付くディレクトリをmanpath.configに設定する必要があります。
上記の対処として基本的な設定例として以下のような設定を行えば、少なくとも基本的なコマンド系のマニュアルは、表示できるでしょう。$ jman jman jman: unable to find the file /etc/manpath.config
以下は、/etc/manpath.config の編集イメージです。
以下は、Xをインストールしていれば必要かもしれません。... MANPATH_MAP /bin /usr/share/man MANPATH_MAP /usr/bin /usr/share/man MANPATH_MAP /usr/bin /usr/share/openssl/man MANPATH_MAP /usr/local/bin /usr/local/man
MANPATH_MAP /usr/X11R6/bin /usr/X11R6/man
- PAGERを more から lv へ変更し、出力文字コードをUTF8へ変換する。
先にも記述したように jman の出力文字コードがEUCのため、UTF8への変換が必要です。
そのためには、manコマンドで出力制御を行うためのデフォルトのコマンド(PAGER) more の代わりに、lv コマンドを使うことで対応します。
- lv をインストールする
- ports を使ってのインストール
$ cd /usr/ports/misc/lv $ make install clean ...
- pkg_add を使ってのインストール
$ pkg_add -r lv ...
- ports を使ってのインストール
- シェルの環境を設定する
- Cシェルの場合
以下は、~hode/.cshrc を例として編集してみます。
... alias vi 'vim' alias view 'vim -R' alias man 'env LC_CTYPE=ja_JP.eucJP jman' setenv EDITOR 'vim' setenv PAGER 'lv' setenv LV '-Ou8'
- Bシェルの場合
以下は、~hode/.bashrc を例として編集してみます。
... alias vi='vim' alias view='vim -R' alias jman='env LC_CTYPE=ja_JP.eucJP jman' EDITOR='vim' PAGER='lv' LV='-Ou8' export EDITOR export PAGER export LV
sh の場合は、編集するファイルが.shrcとなります。
書き方(文法)が異なるだけで、設定していることは全く同じです。
Cシェルの場合の例を簡単に解説しておきます。
- alias vi vim
:vi入力時は、常にvim を起動します。
- alias view vim -R
:view入力時は、常にvim の読み込み専用で表示します。
- alias man ‘env LC_CTYPE=ja_JP.eucJP jman’
:man入力時は、一時的に使用する文字コードをEUC-JPとし、日本語マニュアルを jman で表示します。
- setenv EDITOR ‘vim’
:デフォルトのエディタ(EDITOR)をvim とします。
- setenv PAGER ‘lv’
:デフォルトの出力(PAGER)をlvとします。
- setenv LV ‘-Ou8’
:lvのデフォルトパラメータを’-Ou8’とします。つまり、UTF-8での出力を行うという意味です。
- Cシェルの場合
- 最後に動作確認する
最後に、ログインしなおすか、以下のコマンドで.cshrc ( あるいは、.bashrc , ,shrc )を再読み込みします。
$ source .cshrc
以下のように日本語表示できるはずです。これでOK!!
$ man man MAN(1) FreeBSD 一般コマンドマニュアル MAN(1) 名称 man - オンラインマニュアルのフォーマット、表示を行なう ...
- lv をインストールする
でも、好きな人は、やりだすとはまります。いろいろと躓くことも多いので知識が増えていくのも事実です。
学生さんには、間違いなくおすすめなOSの一つでしょう。ただ、ビジネスとして考えたとき、全く知識がない方は取り組むには、ちょっと手ごわいかも・・・。 初心者の方には、CentOSなどメジャーなLinuxOSをおすすめするでしょう。
それから、共有のレンタルサーバーには、このめんどくささはありません。当たり前ですけどね。
この労力の対価とすれば、共有のレンタルサーバーは、安いなぁと思いますよね。
まあ、でも、このやり遂げた感は、味わえませんけど。
さくらのVPSでは、FreeBSDをカスタムOSとして提供しています。(コントロールパネルからインストールして利用することができます)
さくらインターネットのVPS ( さくらのVPS )を試してみたい方は、http://vps.sakura.ad.jp/からどうぞ。無料お試し期間は14日です。
※お試し期間中は、OP25B設定、データ転送帯域に制約がありますから注意してください。
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない、検索ができないことがあります。
2012年8月7日, 9:04 AM
[…] […]
2012年10月30日, 6:48 AM
[…] 参考) FreeBSDで日本語環境(UTF-8対応)を整える カテゴリー: 未分類 パーマリンク ← [SQL]自己結合 […]
2013年3月28日, 10:57 PM
はじめまして。
FreeBSD9.1の日本語環境設定にこの記事が大変参考になりました。
良い記事を公開して頂きありがとうございます。
早速ですが、私の環境でエラーが出ましたので、念のためご報告させて頂きます。
———————————————-
1.ログイン設定ファイル/etc/login.conf を編集し、ログインクラスを追加する。
$ vi /etc/login.conf
…
japanese:Japanese Users Accounts:\
:charset=UTF-8:\
———————————————
上記にて、誤記があり、正しくは以下のようになると思います。
japanese|Japanese Users Accounts:\
:charset=UTF-8:\
お手数ですが、ご確認いただければと思います。
以上です。
2013年3月29日, 1:36 AM
t.m さん
コメントありがとうございます。管理人です。
ご指摘のとおり誤記です。
早速、修正させていただきました。
ありがとうございました。
また、何かあればご指摘くださいませ。