FreeBSD 日本語表示に対応させる設定手順。必読です!

FreeBSDって初心者でインストールして設定するのってすんごくめんどくさいです。
日本語表示させることだけでもヒーヒーいいながらやってた記憶があります。

今まで、ネットワークというか土管屋をやっていたので、流石にいきなりこのOSは強敵です。

そんな感じで、今ではFreeBSDを使っていないのですが、日本語表示に対応させる設定手順をメモしておきます。

日本語対応にさせる為、エディタのインストールを実施

FreeBSD標準のviは、漢字変換機能を持たない為、EUCでの読み書きのみ可能。
しかし、他のエンコードで書かれたファイルを読み書きするには、vi互換のvimをインストールする。

他にも日本語対応のlessであるja-less+iso,lvやja-manをインストールする。
また、日本語マニュアルドキュメントのja-man-docも同時にインストールする。

$
$ pkg_add -r vim ja-less+iso lv ja-man ja-man-doc
$

バグ情報

ja-manをインストールすると次の様なメッセージが出力される事がある。

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'

これは、/var/tmp/instmp.k4lMoL/bin/jman というファイルが削除できなかったので、/var/tmp/instmp.k4lMoL というディレクトリが削除できないで残っている。

という意味。この対処は、次の様に行なう。

$
$ chflags -R 0 /var/tmp/instmp.*
$ rm -rf /var/tmp/instmp.*
$

pkg_addで残ってしまったファイルを一括で削除できる。

日本語が使用できるようにする

/etc/inputrc を作成する。

$
$ touch /etc/inputrc /etc/inputrc.original
$ echo "set convert-meta off" >> /etc/inputrc
$ echo "set meta-flag on"     >> /etc/inputrc
$ echo "set output-meta on"   >> /etc/inputrc
$

/etc/login.conf を修正する。
事前にコピー

$
$ cp -p /etc/login.conf /etc/login.conf.original
$

defaultの最後にharsetlangを追加する。

$
$ vi /etc/login.conf
====================
default:\
...
:charset=UTF-8:\
:lang=en_US.UTF-8:
====================
$
$
$ cap_mkdb /etc/login.conf
$

再度ログインする事により、英語環境でUTF-8が使用できる為、8bitスルーとなり、viやvimでの日本語編集も問題ない

vimの設定

vimの設定は、ユーザ単位でも~/.vimrcを作成する事で可能であるが、システム全体で共通の設定を行なう場合は、/usr/local/share/vim/vimrcを作成し設定する。

$
$ touch /usr/local/share/vim/vimrc /usr/local/share/vim/vimrc.original
$
$
$ echo "set fileencodings=iso-2022-jp,euc-jp,cp932,utf-8,ucs-bom" \ >> /usr/local/share/vim/vimrc
$

この設定により、漢字コードがJISでもMS-KanjiでもEUCでもUTF-8でも編集が可能となる

日本語環境を整える

medium_4344499037
photo credit: rikulu via photopin cc

FreeBSDは、日本語マニュアルがEUCで記載されている為、通常はEUCで設定する場合が多いが、Linux他のシステムにLinuxがあると漢字コードが異なり不便になる。
その為、最近では、FreeBSDでもUTF-8を使うように設定する場合がある。

エラーメッセージを含め、日本語化するには、ロケール指定を日本語にする
設定可能なロケールは次のコマンドで確認できる。

$
$ locale -a
$

この中で、日本語環境を表すものは次の3つ。

ja_JP.SJIS
ja_JP.UTF-8
ja_JP.eucJP

この内、UTF-8での設定を行なうので、ロケールには、ja_JP.UTF-8を指定する。
また、日本語表示だけではなく、各漢字コードでの編集を行なう為、vimを使用。ページャーとしてmoreの代わりにlvを使うようにする。
しかし、vimを起動する際に、viを起動してしまう事が多い。

そして、他のコマンドからもviが呼び出される。その為、viを起動するとvimが起動されるように設定する。
また、PAGERもmoreからlvに変更する。(EUC環境ではjlessでも可)特にUTF-8環境下で、日本語マニュアルを見る場合は、lvが必須となる

設定内容は、次の3点

  • ロケールを指定する。
  • コマンドのaliasを定義する。
  • 環境変数の定義を行なう。

日本語入力ができない場合

他のマシンからtelnetで接続している場合によく発生する。
これは、telnetコマンドの規定値として、7bit文字列の通信しかできない事による

telnetの引数として -8 を使う事で、8bit文字列での通信が可能となる。

日本語をUTF-8で使用できるようにする

FreeBSDは、日本語マニュアルがEUCで記載されている為、通常はEUCで設定する場合が多いが、Linux他のシステムにLinuxがあると漢字コードが異なり不便になる。
その為、最近では、FreeBSDでもUTF-8を使うように設定する場合がある。

UTF-8に変更する場合は、次の手順で行なう。

  1. 使用する言語の変更
  2. PAGERを変更
  3. 日本語マニュアルを見る為の工夫(EUCをUTF-8に変換)

profileやcsh.cshrcに記載した環境変数やエイリアスの変更を行ないます。
/etc/profileおよび~/.profileの追加部分

alias vi='vim'
alias less='lv'
alias man='env LANG=ja_JP.eucJP jman'
alias jman='env LANG=ja_JP.eucJP jman'
LANG=ja_JP.UTF-8;     export LANG
EDITOR=vim;           export EDITOR
PAGER=lv;             export PAGER
LV='-Ou8'             export LV

/etc/csh.cshrcおよび~/.cshrcの追加部分

alias  vi       'vim'
alias  less     'lv'
alias  man      'env LANG=ja_JP.eucJP jman'
alias  jman     'env LANG=ja_JP.eucJP jman'
setenv LANG     'ja_JP.UTF-8'
setenv EDITOR   'vim'
setenv PAGER    'lv'
setenv LV       '-Ou8' 

確認するには、一度ログアウトしてログインする必要がある。
また、その際に、TeraTermの漢字コードをUTF-8に変更する必要がある。

まとめ

FreeBSDでの日本語対応させるだけでも、本当に大変でした。
これが、なかなかうまく設定できなくて。。。

とまぁ、すぐに忘れてしまうので、メモっておきます。

以上です。




エンジニアのオンライン学習

ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!