Heijastin

FreeBSD 10.0 に触れる

完全初心者の域を出るのは、まだまだ先。

かねてより関心を持っていた FreeBSD に思い切って触れてみた。僕の主環境である Gentoo に強い影響を与えた OS だ。USB Stick から実機2号に導入。Precompiled Kernel 利用ではあるが、まずは KDE 環境を整えることを目標に頑張ってみた。

FreeBSD について

凄まじく使いやすい。僕が Gentoo user であることも影響しているのかも知れないが、違和感をまるで感じない。簡潔なメンテナンス方法と丁寧な文書類。僕には System 評論が出来るような技術も経験もないが、それでも理解出来るのは FreeBSD が優れた Developers と Users に支えられているという事。僕は FreeBSD を Server 専用機だとは思わない。FreeBSD について学んでいけば、大きな夢が見えてきそうだ!

KDE 環境を整える

FreeBSD 10.0 amd64 + KDE 4.10.5参照:FreeBSD ハンドブック 第5章 X Window System

ハンドブックを参照しつつ作業を進行すれば KDE 環境は出来上がるが、日本語環境においてはハンドブック未掲載の要設定項目が幾つか残されている。ここはコツコツ情報収集するしかない。なお FreeBSD では現行より二版古い KDE 4.10 が現時点の最新となっている。

Desktop Environment 導入にあたって

初回は pkg で進行したのだが、一部の Packages に不具合があって行き詰ってしまった。結局 FreeBSD 自体の Reinstall を行い、二度目は ports を利用した。Compile に失敗する Packages もあったが、それらは Option に変更を加えたものだった。僕の経験則では「初期設定状態のまま Compile」が安定。とりわけ Mulitimedia 関連 Package の Option を変更すると Failed に遭遇した。

予め /etc/rc/conf を編集

僕は KDE 環境を想定しているので、以下のような項目を追加した。最重要は keymap 設定。これを真っ先にやっておかないと後々面倒だ。linux_enable は Flash plugin を利用する際に必要。

keymap="jp.106"
hald_enable="YES"
dbus_enable="YES"
moused_enable="YES"
kdm4_enable="YES"
linux_enable="YES"
参照:さくらの VPS の FreeBSD 設定 – make world

rc.conf を書き損じて起動不能に陥った場合

僕は、あろうことか rc.conf の行にて Double quotation mark をひとつ付け忘れる、という幼稚な失敗で起動不能に陥ったことがある。この場合は sh ダイアログ表示後に、以下の Command を打てばシステムを rw 状態で Mount 可能。FreeBSD の場合は、これだけ致命的な失敗でも Rescue mode などが必要ない。気楽に修復出来るのは大いに助かる!

# mount -a -t ufs
参照:rc.confのエラーで起動できない

Nvidia Driver

同時に x11/nvidia-xconfig を導入し nvidia-xconfig を実行すれば xorg.conf が生成される。/boot/loader.conf 作成の後、再起動すれば設定完了。

# echo 'nvidia_load="YES"' > /boot/loader.conf
参照:Setting up the FreeBSD nVidia driver

KDE 環境に必須となる追加 Package

ハンドブックに記載はないが japanese/qt4-codecs-jp の導入が必須。これがないと Shift-JIS, EUC-JP などが Decode されない。導入は KDE 環境完成後で問題ない。

# cd /usr/ports/japanese/qt4-codecs-jp && make install clean
参照:FreeBSD KDE4 のPIM(個人用情報管理ツール)kontact – FreeBSD 寝ても覚めても いつもデーモン君と一緒

僕は最初 qt4-codecs-jp の pkg 版を選んだのだが、これを導入しても Konqueror, Kmail にて日本語用の文字コードが追加されず UTF-8 の文書以外は不可読のままであった。試しに ports 版に差し替えてみると問題解消。この件で pkg 版に不安を抱いたので、結局 OS Reinstall を行い X, KDE すべて ports 版にした。時間は当然かかったが、おかげでばっちり安定した。

su 可能にする

自分を wheel に登録するのだが Command というか概念自体が Linux と異なっている。Adding an user という概念ではなく Modifying the group という概念になっている。

# pw group mod wheel -m kazuhiro

Chromium

そのままでは起動しないので、以下の設定を施す必要がある。例えば Terminal から /usr/local/bin/chrome で直接起動すると、この説明が読める。また Taskbar や Icon Tasks に登録する場合にも、そのままでは Launcher 登録が出来ないので、ダイアログが表示されたら /usr/local/bin/chrome と指定する必要がある。

echo 'kern.ipc.shm_allow_removed=1' >> /etc/sysctl.conf

外観の Oxgen 化については x11-themes/gtk-oxygen-engine 及び x11-themes/kde-gtk-config が必要。

# cd /usr/ports/x11-themes/gtk-oxygen-engine && make install clean
# cd /usr/ports/x11-themes/kde-gtk-config && make install clean
参照:FreeBSD ハンドブック 第6章 デスクトップアプリケーション 6.2. ブラウザ

Flash plugin

Chromium と Konqueror で Flash plugin を利用する場合、空の .mozilla を作成し、その配下 plugins 内に Symbolic link を置けば良かった。これはハンドブックにも記載がなく、情報も見つからなかったので経験則からの推察。とは言え Linux users には自明だろう。

$ mkdir -p .mozilla/plugins
$ cd .mozilla/plugins/
$ ln -s /usr/local/lib/browser_plugins/npwrapper.libflashplayer.so

npwrapper.libflashplayer.so への Link であることが要点。最初は Linux の習慣のまま、直接 libflashplayer.so に Link するという間違いをしていた。FreeBSD では、あくまで Wrapper を介する必要があるのだ。安定性は Chromium において完璧。反面 Konqueror は Flash plugin を読み込むと Crash 率が極度に上昇してしまい、実用が厳しくなるので要注意。

日本語入力の設定:ibus-mozc

iBus の設定は pkg 版では Install 完了後に表示される Message 内にすべて記載されている。ports 版では以下のようにして Message を読むことが出来る。また ports 版では export QT_IM_MODULE=ibus と修正する必要があった。なお fcitx-mozc は Mozc との Version 不整合とのことで導入不能。Kimpanel も Module が存在していないようだ。

pkg info -D ja-ibus-mozc

Packages の管理・更新

Konsole on FreeBSD 10.0参照:FreeBSD ハンドブック 第17章 FreeBSD のアップデートとアップグレード

FreeBSD 10.0 で使用する Package managers は ports と pkgng の2種類。これに加え、管理には portmaster 及び portupgrade の導入がほぼ必須。FreeBSD の歴史は長いため、有用な管理方法を「上積み」していった結果、現状のように複数のツールを使い分ける必要が生じたのではないか。ゆくゆくは pkgng に各機能が統合されていくのだろう。

ports を利用して行う作業

Option 設定が可能なため pkg より柔軟。Gentoo で例えると USE の On/OFF が出来るので、基本的には ports から各種ソフトウェアを導入する。

make install clean
3段階の作業を一括で行う。
make config-recursive
複数 Packages の Config を一挙に行い、各ダイアログで停止させない。
make showconfig
Package に設定されている Option の状態を確認する。
make rmconfig
設定されている Option を初期化する。
make deinstall
Package の削除。

Portsnap を利用して行う作業

portsnap fetch update
Ports Collection を最新の状態にする。その後 portmaster -a で、各 Packages の更新作業に入る。

portmaster を利用して行う作業

これは各 Packages を最新の状態に更新するのに使う。非常に重要なツール。

portmaster -a
すべての Packages を最新の状態に更新。
portmaster パッケージ名
ports の該当 Diretory まで行かず make install 出来る。
portmaster -l
Install されている全ての Packages を一覧表示する。pkg info -a と同様。
portmaster -e パッケージ名
Install されている Package の削除。pkg remove と同様。

pkgng を利用して行う作業

バイナリ配布版なので LibreOffice など Compile に凄まじく時間のかかる Package 導入に向く。pkg info -D が重要。

pkg info -D パッケージ名
設定方法など重要項目が記載された pkg-message の表示。
pkg info -a
Install されている全ての Packages を一覧表示する。portmaster -l と同様。
pkg remove パッケージ名
Install されている Package の削除。portmaster -e と同様。

portupgrade を利用して行う作業

portsclean -C
不要な port 情報の削除。
portsclean -DD
不要な distfiles の削除。
Tags