概要
対象は次のようなものです.
- PC-98 (とはいえ AT 互換機と共通の情報も多いです.)
- XFree86 の 4 系,X.Org の 6 系,7 系
- FreeBSD は 4 系までは FreeBSD(98),5 系以降は FreeBSD/pc98
概要
対象は次のようなものです.
目的は次のようなものです.
目次
導入に先立って行なうべきことは,どの X Window System を使うかの選択です. 判断基準として,以下のものが考えられます.
FreeBSD が採用している場合であっても,さらに次のような区別があります.
一方,FreeBSD が採用していない場合にも,次のような差異を把握しておく必要があります.
選択可能な X は FreeBSD の version により異なります. いくつか例を挙げれば,次表のような状況です.
採用状況 | FreeBSD 4.11 | FreeBSD 5.3 | FreeBSD 6.2 | FreeBSD 7.2 |
---|---|---|---|---|
標準 | XFree86 4.4.0 | X.Org 6.7.0 | X.Org 6.9.0 | X.Org 7.4.0 |
非標準 | X.Org 6.8.1 | XFree86 4.4.0 | XFree86 4.5.0 | なし |
採用されず | XFree86 3 | XFree86 3 | XFree86 3 | XFree86 3, 4, X.Org 6 |
私の見解は「格段の理由がない限り FreeBSD が標準としている方の X Window System を選択するべき」です.
以下は FreeBSD 7.2 + X.Org 7.4 における例ですが,ports でも packages でも核となるものがあって,それを導入すれば関連するすべての ports/packages を自動的に導入してくれます.
ports の場合には次のようにします.
# cd /usr/ports/x11/xorg
# make ← make config-recursive を利用すると便利です.
# make install
また,packages の場合には次のいずれかの方法で導入します.
(1) FreeBSD のインストーラーに X 導入のメニューがあるなら,それを活用することができる.
(2) pkg_add を用いる.
packages のファイルのあるディレクトリーにて,次のようにします.
# pkg_add xorg-7.4_1.tbz
ファイルを ftp server から取得する pkg_add -r も便利です. (2014.9.1 以後,この機能は使えなくなりました.)
(2') pkgng の場合,pkg add を用いる. packages のファイルのあるディレクトリーにて,次のようにします.
# pkg add xorg-7.4_1.tbz
ファイルを ftp server から取得する pkg install も便利です.
# pkg install xorg
ソース等の修正の必要性の有無にかかわらず,先ず ports/packages そのままの状態で install しておく方が合理的です.
注意しなければならないのは,X Window System が依存するものが意外と多いので,通信環境によってやり方を変えた方が良いということです.
通信環境が遅い場合 (ISDN 等),perl や X Window System の lib, font, manual などは CD-ROM, DVD-ROM に収録された packages から install しておくべきです.
この節では,ports にはあるが標準ではない X Window System の導入について述べます.
FreeBSD の ports/packages は,お互いの依存関係を厳しくチェックしています. 例えば FreeBSD 6.2 の標準は X.Org 6.9.0 であり,X Window System を使う ports/packages (例えば kterm) はこれと依存関係にあります. それらが XFree86 4.5.0 の ports からの導入によってどうなるのか,私は試したことがないので分かりません.
この点に関しては,次のような記述を見たことがあります. (すみません.出所の記録が残っておりません.)
(1) /etc/make.conf というファイルを新規作成し,その中に次のように書く. (既にそのファイルが存在すれば最後の行に追加.)
X_WINDOW_SYSTEM=xfree86-4
(2) XFree86 を ports/packages から install する.
(3) ports/sysutils/portupgrade のコマンドである pkgdb を用いて % pkgdb -F を実行し,pkg データベースを変更する.
X Window System を利用するものは packages を使ってはだめで,すべて各々の ports で make, make install するべしという意味に解釈していますが,実際にやってみないと何とも言えません.
少なくとも,すべての ports が標準でない X Window System との組合わせで無事に make でき,動作する保障はありません.
(補足 1) 当然ですが,X Window System を使う ports を利用しないならば,あるいはそれらも ports を利用せずに make するのであれば,上述の依存関係に悩む必要はありません.
(補足 2) FreeBSD 6.4, 7.2, 8.0 およびこれら以降においては X.Org 7 系が標準採用になり,同時に X.Org 6 系や XFree86 は ports からはずされています. 上記のように非標準の X に切り換える仕組みは提供されておりません.
この節では,ports にもない X Window System の導入について述べます.
この場合,次のような方法が考えられます.
どちらの方法に依る場合でも,X Window System を使うプログラムは ports も packages も利用できず,自前で make する必要があります. なぜなら,それらを導入すると依存関係から自動的に標準の X が導入されてしまい,自前で導入した X と汚なく混じり合ってしまうからです.[1][2] また,混じらないように工夫して導入したとしても動作する保証はありません. (動作する場合もあるでしょうが,それは幸運であると解釈する方が良いでしょう.)
[1] ソースから make する場合,X を /usr/X11R6/ 以外に導入したければ,host.def に例えば次のように設定します.
#define ProjectRoot /usr/X11R6.3
(この例では /usr/X11R6.3/ に導入されます.) 複数の X を導入する場合にはこれが不可欠です.
この ProjectRoot はファイルの置き場だけでなく,種々のプログラムの動作に影響があるので,
# mv /usr/X11R6 /usr/X11R6.3
このようなやり方で X の置き場を変えてはいけません.
[2] ports/packages を利用しないので,複数の X の混在が抑制されないのです.