back

そしてCURRENTへ


CURRENTは開発バージョンですがLinuxの2.2と2.3、glibcの2.1.3と2.1.9xとの 差に比べるとそこまでの違いはないです。 そんなに頻繁に更新されるものでなく1月に1回くらい行うのがいいでしょう。 PORTSの方は結構頻繁に更新されるみたいです。
CURRENTにあげるにはSTABLEから上げるのが基本です。 RELEASEの場合は一度STABLEにしてからCURRENTへ上げます。

CVSup

cvsupでCURRENTのソースへアップデートします。 supfileに/usr/share/examples/cvsup/standard-supfileをつかえば CURRENTにできます。 このstandard-supfileをもとに portsもアップデートできるsupfileを作りました。
#!/usr/local/bin/cvsup -g -L 2

*default host=cvsup.jp.FreeBSD.org
*default base=/usr
*default prefix=/usr
*default release=cvs tag=.
*default delete use-rel-suffix
*default compress

src-all
ports-all
doc-all
注目点は「tag=.」です。カレントをchackoutするという意味です。 このスクリプトを実行すればCURRENTへアップデートされます。
このファイルで「src-all tag=RELENG_4」とするとSTABLEになります。

システムアップデート

変更履歴は/usr/src/UPDATINGに書かれています。 注意したいのは下の方の「COMMON ITEMS:」という部分です。 STABLEから上げる場合は必ずここに作り方のとおり にします。
つぎにコンパイルによって作られるファイルが入る/usr/obj/以下を削除します。 STABLEからあげるときはやった方がいいでしょう。 頻繁に更新する場合は残しておいた方がいいでしょう。
# cd /usr/obj/
# chflags -R noschg *
# rm -rf *
あとはUPDATINGに書いてあるようにやります。 CURRENTで必要なファイル/boot/device.hintsは isaデバイスの設定です。足りなければ自分で付け足します。 そのあと通常モードに移行し/stand/sysinstallをインストールします。
# cd /usr/src/
# make buildworld
# make buildkernel KERNEL=GENERIC
# cp src/sys/i386/conf/GENERIC.hints /boot/device.hints
# make installkernel KERNEL=GENERIC
# init 1
# cd /usr/src/
# make installworld
# mergemaster
# logout
# cd /usr/src/release/sysinstall/
# make all install
# fastboot 
うまく動けばこのカーネルを/kernel.GENERICにして オリジナルカーネルを作ります。
# cp /kernel /kernel.GENERIC
# cd /usr/src/sys/i386/conf/
# cp GENERIC ICHIYAMA
# vi ICHIYAMA # 「ident GENERIC」を「ident ICHIYAMA」に
# cd /usr/src/
# make buildkernel KERNEL=ICHIYAMA
# make installkernel KERNEL=ICHIYAMA
# fastboot
以前のバージョンでサウンドデバイスを作っていなければ再起動後
# cd /dev/
# ./MAKEDEV snd0
# ./MAKEDEV snd1

kernel moduleついて

UPDATINGにも書いてある通り、CURRENTではkernel moduleのパスが/modules/から /boot/kernel/に変わっています。しかし依然kernelは、/modules/があると そこを呼んでしまいます。そのため/modules/を消す必要があります。 /modules/を呼んでも大体は問題ないですが、linux関連を実行すると失敗します。
# rm -rf /modules/ /modules.old/
# fastboot

起動カーネルの選択

作成に失敗したときなどGENERICカーネルでブートしたい場合は、 ブートローダーで「Hit [Enter] to boot immediately ...」のときに Enter以外のキーを押すとプロンプトが出て来ます。 そこで次のように起動カーネル選択ができます。
ad0s3a:> unload
ad0s3a:> boot /kernel.GENERIC

PORTSアップデート

ここは先のPORTSアップデートの方法と同じです。
# pkg_version -c > ~/update_pkg
# sh ~/update_pkg
パッケージが消えたばあいは、update_pkgをみておなじものを 「make clean; make install」してください。
# cd /usr/ports/x11/gnome/
# make clean
# make install

追記11/20: /kernelの削除

最近のCURRENT では /kernelは使わず/boot/kernel/kernelで起動します。 そこで/kernelはいらないので消す必要があります。 しかし、/kernelはchflagsでガードされているのでrmでは消せません。 まずrmする前にchflagsでフラグを外す必要があります。
# chflags noschg /kernel
# rm /kernel
あと、最近のCURRENTはGENERICでpcmサウンドが有効になっているようです。 UATA66対応だし僕の場合あえてオリジナルのカーネル設定を作る必要が もうありません。

back
Copyright (c) 2000 ichiyama ryoichi, All Rights Reserved.