FreeBSDのアプリケーションは、ports/packages というもので管理されている。
たとえば、apache をインストールしたいと思ったら、/usr/ports/www/apache22 というディレクトリをカレントディレクトリに変更して、make install コマンドを実行するだけでインストールできる(実際にはオプションを選択したりするが)。
↓ここでは動かさないが、メモとして残しておく。
%su Password: # cd /usr/ports/www/apache22 # make install
package は、あらかじめ port をコンパイルしてあるもので、pkg_add コマンドでインストールできる。インストール時間的には短縮できるが、アプリケーションによって packages が使えるかどうかの状態は異なるようで、基本的に本サイトでは ports からのインストールを行うようにする。
なお、最新の ports は古いリリースの FreeBSDには対応していない(うまくすれば動くかもしれない)ようだ。
/etc/portsnap.conf を確認し、ファイル末尾の次の部分のコメントを取る。ただし、Japanese は消す。
%su Password: # vi /etc/portsnap.conf
内容は次のとおり。
REFUSE arabic chinese french german hebrew hungarian REFUSE korean polish portuguese russian ukrainian vietnamese
現在インストールされているバージョンと 最新のports の違いが無いか、次のコマンドで確認できる。
# pkg_version -v | grep '<'
結果、なにも表示されない。
# portsnap fetch # portsnap extract
↓詳細
# portsnap fetch Looking up portsnap.FreeBSD.org mirrors... 3 mirrors found. Fetching public key from portsnap2.FreeBSD.org... done. Fetching snapshot tag from portsnap2.FreeBSD.org... done. Fetching snapshot metadata... done. Fetching snapshot generated at Sat Nov 1 09:29:39 JST 2008: 570eXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX of 54MB 418 kBps 00M00s Extracting snapshot... done. Verifying snapshot integrity... Fetching snapshot tag from portsnap2.FreeBSD.org... done. Fetching snapshot metadata... done. Updating from Sat Nov 1 09:29:39 JST 2008 to Sat Nov 1 17:50:37 JST 2008. Fetching 3 metadata patches.. done. Applying meradata patches... done. Fetching 0 metadata files ... done. Fetching 2 patches.. done. Applying patches... done. Fetching 0 new ports or files... done. (ここまで約10分) # portsnap extract ・ ・ ・ Building new INDEX files... done. (ここまで約15分)
# portsnap fetch # portsnap update
現在インストールされているバージョンと 最新のports の違いがないか、次のコマンドで確認してみる。
# pkg_version -v | grep '<' cdrtools-2.01_6 < needs updating ( port has 2.01_7) cvsup-16.1h_3 < needs updating ( port has 16.1h_4) ・ ・ ・
< needs updating ( port has XXX ) と表示される行には現在のものよりも新しいportがあるというだ。
# cd /usr/ports # find . -name cvsup -print /usr/ports/net/cvsup # cd /usr/ports/net/cvsup # make install
で、しかられた。
cvsup-16.1h_3 がインストールされてるから、make deinstall して、make reinstall しなさいと書かれている(っぽい)ので、やってみる。
# make deinstall ===> Deinstalling for net/cvsup ===> Deinstalling cvsup-16.1h_3 # make reinstall
インストールされたっぽい。
# rehash # cvsup -v
リビジョン番号までは見えないので、次のコマンドで確認してみる。
# pkg_version -v | grep '<' cdrtools-2.01_6 < needs updating ( port has 2.01_7) dbus-1.0.2_2 < needs updating ( port has 1.2.1) ・ ・ ・
ports INDEX の差異を確認するとcvsup-16.1h_4が消えているのでインストールされたと判断する。
portsnap --help を見ると、こんなのもある。0~3600秒の間でランダムにSleepして、fetchする(らしい)。
# portsnap cron
下記のコマンドを実行すると、取得しなおしができる。
# pkg_add -r cvsup-without-gui # rehash # cvsup -L 2 -h cvsup?.jp.FreeBSD.org /usr/share/examples/cvsup/ports-supfile
詳細は:http://www.freebsd.org/doc/ja/books/handbook/ports-using.html