主にサーバ用途で利用されることの多いFreeBSDですが、Windowsと比較して遜色ないデスクトップ環境を構築することも可能です。
但し、先に言及しておきますが、正直なところFreeBSDはLinuxに比べ、マルチメディア関係のアプリケーションの対応があまりよくありません。
これはひとえに、Flash PlayerやRealPlayer等のマルチメディア系のプレイヤが、Linuxには対応しているがFreeBSDには対応していないことに起因しています。
もちろん、FreeBSDでも、Linuxエミュレータを利用してこれらのソフトウェアを動作させることはできますが、特にOSにこだわりがないのであれば、UbuntuやFedoraあたりのLinuxをご利用になることをお勧めします。
それでも、という方のために、このページではX Window Systemである「X.org」と、軽量なデスクトップ環境である「xfce」を利用して、Windowsライクなデスクトップ環境のベースを構築する方法について説明します。
まず、デスクトップ環境を構築するために必要なソフトウェアのmakeおよびインストールを行います。
まず、デスクトップ環境の核となる「X.org」をインストールします。
以下の手順でX.orgをportsから導入してください。
portsの取得および展開方法については、「最新のportsを取得して展開する」を参照してください。
$ cd /usr/ports/x11/xorg $ make config-recursive $ make install clean
make時にも注意喚起されますが、xorgの構築にはHDDに2GB程度の空き容量が必要になります。
また、構築には膨大な時間が掛かりますので(手元のPentium III 866MHzのマシンで丸二日程度)、ロースペックなマシンでportsからコンパイルする場合には、暫くの間放置する勇気と、それを許す周りの環境が必要です。
次に、ログインマネージャをインストールします。
ログインマネージャとは、ログイン画面を表示し、入力されたユーザIDおよびパスワードに応じて対応するユーザのXのセッションを開始するためのプログラムです。
X.org 7.4からはX.orgの標準ディスプレイマネージャ「XDM」およびセッションマネージャ「XSM」がX.orgのportsに含まれなくなりました。
ログインマネージャには他にもGNOMEに付属する「GDM」や、KDEに付属する「KDM」等かなりの種類がありますし、「XDM」はログインマネージャとしてはUI的にかなり無骨な部類に入りますので、好みに応じて他のログインマネージャを選んでもいいと思います。
いろいろ試した中では、「SLiM」が、UIもそこそこで、且つ他のソフトウェアと依存関係が少なくていい感じでした。
xfce4のページにも、SLiMを薦める記述もありますので、「XDMがイマイチ」と感じる方は、こちらを試してみてください。
「SLiM」をportsから導入するには、以下のようにします。
$ cd /usr/ports/x11/slim/ $ make config-recursive $ make install clean
今までどおり、「XDM」をログインマネージャとして利用する場合には、以下のようにしてください。
(ログインマネージャとして「SLiM」を利用する場合には、以下の手順は不要です。)
$ cd /usr/ports/x11/xdm/ $ make config-recursive $ make install clean
$ cd /usr/ports/x11/xsm/ $ make config-recursive $ make install clean
X.orgのインストールが完了したら、次は日本語のフォントをインストールします。
デフォルトの状態でも日本語フォントはインストールされているのですが、等幅でビットマップなフォントで、お世辞にも綺麗といえない為、別途インストールしたほうがよいです。
以前は、フリーで綺麗なフォントというのはなかなかなかったのですが(「東風フォント」というのがあったのですが、ベースにしたフォントのライセンス問題で2003年10月に制作・配布終了となりました)、2004年 7月に情報処理推進機構(IPA)が「地理情報システム(GRASS)」の一部として、「IPAフォント」と呼ばれるライセンスの緩いフォントを公開したことにより、OSSではこのフォントが広く使われるようになりました。
今回構築する環境でも、このIPAフォントを導入することにします。
IPAフォントもportsからインストールします、以下の手順でインストールしてください。
$ cd /usr/ports/japanese/font-std $ make config-recursive $ make install clean $ cd /usr/ports/japanese/font-mplus-ipa $ make config-recursive $ make install clean
尚、日本語フォント関連のportsは、2009/06初旬に大規模な整理が行われ、portsの名称が大幅に整理されています。
詳しくは後藤大地さんのFreeBSD Daily Topicsの「FreeBSD Daily Topics:2009年6月1日 ≪注目≫日本語フォント関連一斉変更 - ipa-ttfontsからfont-stdへ (内容比較表あり)|gihyo.jp … 技術評論社」をご参照ください。
続いて、軽量なデスクトップ環境である「xfce」をインストールします。
やはりxfceもportsとして提供されていますので、以下の手順でportsからインストールしてください。
$ cd /usr/ports/x11-wm/xfce4 $ make config-recursive $ make install clean
「make config-recursive」を行うと、メニュー形式でいくつかの設定項目が表示されますが、「DBUS」および「FAM」(File Alternation Monitor)関連の項目については、必ず有効にするようにしてください。(ほとんどの場合、デフォルトでチェックが入っています)
前者はX.orgがデバイスを制御するのに必要な機能で、これを有効にしないと、xfce4自体が起動しません。
また、後者はファイルに対する変更(新規作成や削除を含む)をモニタする機能で、これを有効にしないと、ディスクトップに新規作成したファイルのアイコンが表示されなかったり、削除されたファイルのアイコンが表示されたままになったります。
尚、xfce4の構築もxorgの構築と同じぐらい時間が掛かりますので、ご注意ください。
必要なportsのインストールが完了したら、次にそれぞれのソフトウェアの設定を行います。
まずはじめに、X WINDOW SYSTEMが利用するデバイスの設定を行います。
下記のように入力して、X.orgの設定ファイルである「xorg.conf」を自動生成します。
$ Xorg -configure
上記のようにするとデバイスが自動検出され、その内容が「xorg.conf.new」として書き出されます。
生成された「xorg.conf.new」はユーザのホームディレクトリに保存されますので、これを「/etc/X11/xorg.conf」として保存してください。
X.org 7.4から、キーボードおよびマウスを含む殆どのデバイスがHAL経由で制御されるようになりました。
また、X.orgを正常に動作させるためには、dbusやPolicyKit等のdaemonも必要なので、システム起動時にこれらのdaemonが動作するよう、「/etc/rc.conf」に以下の記述を追加します。
dbus_enable="YES" hald_enable="YES"
設定完了後、システムを再起動することにより、これらのdaemonが動作するようになります。
システム再起動後、kernelを独自に構築している場合等に以下のメッセージが表示されることがあります。
xptioctl: pass driver is not in the kernel xptioctl: put "device pass" in your kernel config file
このままの状態ですと、HALが正常に動作しないため、メッセージの通りkernelコンフィグファイルに「device pass」の記述を追加し、kernelを再構築してください。
X WINDOW SYSTEMでのデフォルトのキーボード配列は英語になっているので、これをあらかじめ日本語に変更しておきます。
具体的には「/usr/local/etc/hal/fdi/policy/10-x11-kbd.fdi」というファイルを作成し、以下の内容を記述します。
<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.keyboard">
<match key="info.udi" string="/org/freedesktop/Hal/devices/atkbd_0">
<merge key="input.x11_options.XkbRules" type="string">xorg</merge>
<merge key="input.x11_options.XkbModel" type="string">jp106</merge>
<merge key="input.x11_options.XkbLayout" type="string">jp</merge>
<merge key="input.x11_options.XkbOptions" type="string">ctrl:nocaps</merge>
</match>
</match>
</device>
</deviceinfo>
上記の通り、X.org 7.4からはキーボードの制御もHAL経由となっているため、「/etc/X11/xorg.conf」を編集する従来の設定方法とは違う点に注意してください。
設定後、下記の通り入力することにより、xfce4を起動することが出来ます。
$ startxfce4
xfce4を起動させるのに、ログイン後「startxfce4」と入力するのは、あまりスマートではないため、FreeBSDの起動完了後に、GUIのログイン画面を出すように設定変更します。
ログインマネージャとして「SLiM」を導入した場合には、「SLiM」がシステム起動時に自動的に呼びされるよう、「/etc/rc.conf」に以下の記述を追記してください。
さい。
slim_enable="YES"
尚、SLiMを起動させる方法は、上記の「/etc/rc.conf」に追記を行う方法の他に、「/etc/ttys」の「ttyv8」を編集する方法があります。
詳しくは「SLiM - Simple Login Manager」のページを参照してください。
ログインマネージャとして「XDM」を導入した場合には、「XDM」がシステム起動時に自動的に呼び出されるよう、コンソール関係の設定ファイル「/etc/ttys」を下記の通り編集してください。
(ログインマネージャとして「SLiM」を利用する場合には、以下の手順は不要です。)
ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure
ttyv8 "/usr/local/bin/xdm -nodaemon" xterm on secure
編集後、システムを再起動させると、導入したほうののログイン画面が表示されるようになります。
ログインスクリプトの不備等で、コンソール画面での作業が必要な場合には、[Ctrl]+[Alt]+[F1]を同時に押してコンソール画面に切り替えてください。
次に、各ユーザがログインマネージャ経由でログインした際に、xfce4のウインドウマネージャが起動するように、各ユーザごとに「.xsession」または「.xinitrc」を以下のように作成します。
#!/bin/sh export LANG=ja_JP.eucJP sleep 3 exec startxfce4
「SLiM」は、デフォルトの設定ではXセッションの起動用に「.xinitrc」を、「XDM」は「.xsession」を利用するため、使うログインマネージャに応じて、作成したファイルに「.xinitrc」または「.xsession」の名前を付け、各ユーザのルートフォルダにおいてください。
続いて、各ユーザがxfce4の画面上からマシンをrebootまたはshutdownできるように、PolicyKitの設定を行います。
デフォルトの状態では、rootのみに全アクションが許可されていますので、特定のユーザに対して再起動/シャットダウンを許可する場合には、「/usr/local/etc/PolicyKit/PolicyKit.conf」の「<match user="root"></match>」の後に、下記の記述を追記してください。
<match user="アクションを許可するユーザ名"> <return result="yes"/> </match>
分かり辛いかもしれませんが、「/usr/local/etc/PolicyKit/PolicyKit.conf」はXMLで記述されています。
上記記述は、必ず「<match user="root"></match>」と同じ階層に記述するようにしてください。
X.orgについては、以下の設定を行うことにより、パフォーマンスを向上させることが出来ます。
「/etc/sysctl.conf」に以下の記述を追記してください。
kern.ipc.shmmax=67108864 kern.ipc.shmall=32768
X.orgおよびxfce4本体に関する設定は以上ですが、より良いデスクトップ環境を構築するには、日本語入力環境やブラウザ、メーラ、メディアプレイヤー等の整備が必要になります。
これらの設定方法についても説明していますので、以下の各ページをご参照ください。
・ 日本語入力環境を構築する(scim/anthy)
・メディアプレイヤー「VLC」の利用方法の説明ページへのリンクを追加。
・X.org 7.5にあわせて記述内容を調整。
・ログインマネージャとして「SLiM」を利用するための手順について追記。
・フォント全般のportsが変更されたため、それにあわせて構築するports名を修正。
・キーボードの設定で、編集対象をファイルが「/usr/local/etc/hal/fdi/policy/10-x11-kbd.fdi」なのに誤って「/etc/rc.conf」と記述していた誤記を修正。(ご指摘頂いた方、ありがとうございます!)
| まさにこれだ 36 (67%) |
参考になった 14 (26%) |
ちょっと違う 2 (4%) |
これじゃない 2 (4%) |
【まさにこれだ】 良い情報ありがとうございました。たいへんわかり易く書かれていると思います。これからもお願いいたします。 (2012/04/26 Thu 09:33:25)
【参考になった】 具体的内容の記述と、解説も踏み込んだものもあり勉強になった。要領よくまとまっていてわかりやすい。こういうものを提供してもらうのはとてもありがたい。 (2011/12/26 Mon 16:16:17)
【まさにこれだ】 非常によくまとまって分かりやすかったです。
halの設定はまとまった設定がまだ他になく頼りになりました。 (2011/05/04 Wed 20:24:06)
【まさにこれだ】 もう本当に助かりました。ありがとうございます!
freebsd5のときと違いすぎて悩んでいるところでした。
(2011/02/27 Sun 12:13:35)
【ちょっと違う】 はじめまして、WinXPS3(celeron560 2.3GHz RAM2.0GB:PC-Note)
でSunVirtualBox3.1.2仮想環境でFreeBSD5.4RをゲストOSとして動かしています。X WindowSystemをインストールしたいのですが、Portから持ってくるのかsysinstallでPackagesから持ってくるのかがわからりません。どうすればいいのかご教授ください。twmが動けばそれで満足です。お願いします。 (2011/01/16 Sun 18:54:46)
→ FreeBSD5.X系は既にサポートが終了しているので、portsからは構築できないと思います。
package経由が宜しいかと。
【まさにこれだ】 あれ?でもなんか完全にインストールできない。 (2010/10/13 Wed 05:43:50)
【まさにこれだ】 今、UNIX系のOSに興味がありいろいろ情報をあさっています。大変参考になりました。説明が丁寧で好感がもてました。期待してます。 (2009/11/03 Tue 12:22:58)
【まさにこれだ】 FreeBSDでXWindowが設定できず困っていました。
完璧に動かすことができました。ありがとうございます。 (2009/10/12 Mon 03:24:13)
【まさにこれだ】 詳しい解説ありがとうございました。参考になりました。一箇所誤植を見つけましたのでお知らせします。
「キーボード配列の設定」の「/etc/rc.conf」への追記 は、間違いのようです。よろしくお願いします。 (2009/09/23 Wed 10:29:48)
→ ご指摘ありがとうございます、本文を訂正いたしました。
【まさにこれだ】 "キーボード配列の設定"
がとても参考になりました。 (2009/07/15 Wed 15:53:20)
【まさにこれだ】 久方ぶりにFreeBSDいじりを再開しようとしています。
以前はFreeBSD4.xあたりで遊んでいましたが、浦島太郎状態(大げさ!)
頼りにしてます。 (2009/06/28 Sun 11:44:50)
【これじゃない】 1.新規にeucで環境構築を推奨するのはどうかと思います。ja_JP.UTF-8にしましょう
2.polkitd_enableはいりません。
3. X -configureの内容はけっして正しくありません。現状フォントパスとドライバブロックだけあればあとはいりません。
4.なぜportsからのビルドのみで書くのですか?
初心者向けのドキュメントということであれば
FreeBSD-7.2のパッケージを取り敢えず入れて
必要ならちょっとずつ再ビルドして入れ替えていく形でいいんじゃないでしょうかpkg_add -rで充分
ビルドする場合でもfetch先行で無駄なものを入れない場合Pentium3 600でも8h程度、順番に入れておけば
作業エリアは200Mbyte(xorg-serverとglくらい)もくわないと思います。
5.日本語フォントはportsから入れる必要はなくTTFやOTFに入れればそれだけで使えるようになります。
必要ならmkfontscaleとmkfontdirをフォントディレクトリーで実行すればいいです。
6.kern.ipc.shmall * 4096がkern.ipc.shmmaxでとpostgreSQLの解説ページで書いているのでは?
7 ctrl:nocapsは個人的趣味の問題では?
8 xfceの前にgtk関連ビルドした方が気が楽なんじゃ?あとこの辺もpackage推奨
9.LINUX互換薦めるならばLINUX薦めた方が良いです。
realplayerじゃなくてffmpegとかmplayerにしませんか?
Acrobat Readerじゃなくてepdfviewじゃだめですか?
xtermでのIME表示って最近の版で確認してます?
Flashならばwineのがいいんじゃないですか?
10.みためがちゃんとしているのに内容がぐだぐたで
誰をターゲットにしているのか分かりません。
(2009/06/12 Fri 13:11:38)
【参考になった】 現在所有しているFreeBSD用の参考書が古く、説明通り設定できず弱っておりました。懇切丁寧な説明の中に探していた設定法が見つかり、非常に助かりました。有難うございました。 (2009/04/30 Thu 08:42:08)
【参考になった】 一通り丸パクリさせていただきました
おかげさまで7〜8年ぶりの環境構築がスムーズにできました
ありがとうございます
xfce4の構築でstop errorが出てつまづきましたが
/usr/ports/devel/glib20
にて
make deinstall
make install
としてうまくいきました (2008/07/04 Fri 08:38:00)
【まさにこれだ】 詳しい情報を提供していただいてありがとうございます。 (2008/05/28 Wed 08:42:35)
【参考になった】 sudoersの記述では、NOPASSWD のうしろに : がないと認識されないと思います。 (2008/01/21 Mon 14:49:33)
→ ご指摘ありがとうございます、本文を修正しました。
【まさにこれだ】 X導入の参考にさせていただきます。 (2007/09/22 Sat 17:16:11)
