注意: この段階で ports をコンパイルするのではなく、 (コンパイルずみの) packages をインストールすることもできます。 その場合、stage_2.sh は 単に pkg_add コマンドを羅列するだけになるでしょう。 読者のみなさんにとって、そういうスクリプトを書くのは難しくないと思いますので、 ここではもっと柔軟で、ports を使った伝統的な方法について考えることにします。
次に紹介する stage_2.sh スクリプトは、 わたしが好みの ports
をインストールするために使ったものです。 これは何度でも実行でき、インストールずみの ports
があれば、 飛ばして処理されます。スクリプトは 実行せず、実行される内容だけ を表示する (dryrun) オプション
(-n
) があります。実行時には stage_1.sh と同様、
設定スクリプトを示すためのひとつの引数を指定します。
これは、ports のリストを stage_2.conf.default というファイルから読み込みます。
ports リストは、空白で区切られた 2 個以上のキーワードからなっています。 カテゴリ、port 名に始まり、オプションとして port をコンパイルしてインストールするためのコマンド (デフォルトは make install BATCH=yes < /dev/null) が続きます。 空白行と # から始まる行は無視されます。 おそらく多くの場合に考えなければならないのは、カテゴリ名と port 名だけでしょう。 ports によっては、たとえば次のように make 変数を使って微調整することができます。
www mozilla make WITHOUT_MAILNEWS=yes WITHOUT_CHATZILLA=yes install
実際には任意のシェルコマンドを指定できますので、 make を使う以外にも応用は可能です。
java linux-sun-jdk13 yes | make install news inn-stable CONFIGURE_ARGS="--enable-uucp-rnews --enable-setgid-inews" make install
news/inn-stable の行は、 CONFIGURE_ARGS という シェル変数を定義した例です。 この port の Makefile は、 この指定した値を変数の初期値として、その他の必須の引数と一緒に使います。 これと
news inn-stable make CONFIGURE_ARGS="--enable-uucp-rnews --enable-setgid-inews" install
のようにして make 変数をコマンドラインに設定した場合との違いは、 こちらの場合に変数そのものを完全に上書きしてしまうという点です。 どの方法を使えばいいのかについては、各 port によります。
インストールしたい ports が、 対話的インストールを使っていないことを確認してください。 ports は、あなたが標準入力に明示的に指定したもの以外、 標準入力を読み込む動作をしてはいけません。 もし ports がそのように作られていると、ports はヒアドキュメントにある ports リストの次の行を読み込んで混乱してしまいます。 stage_2.sh を実行した時、 ある port が飛ばされたり、動作が止まってしまうようなことがあれば、 おそらくこれが原因でしょう。
次に示すのは stage_2.conf.default です。 これは、インストールされる port それぞれに対して LOGDIR/category+port という名前のログファイルが作成されます。
# vim: syntax=sh # $Id: stage_2.conf.default,v 1.4 2008-12-03 21:59:51 schweikh Exp $ # $FreeBSD: head/en_US.ISO8859-1/articles/fbsd-from-scratch/stage_2.conf.default 38826 2012-05-17 19:12:14Z hrs $ ports-mgmt portaudit devel ccache shells zsh devel gettext archivers unzip archivers zip security sudo x11 xorg x11-servers xorg-server x11-fonts xorg-fonts-100dpi x11-fonts xorg-fonts-75dpi x11-fonts xorg-fonts-miscbitmaps x11-fonts xorg-fonts-truetype x11-fonts xorg-fonts-type1 x11-fonts gnu-unifont make install && mkfontdir /usr/local/lib/X11/fonts/local x11-fonts urwfonts x11-fonts webfonts x11-toolkits open-motif x11-wm ctwm x11 wdm security openssh-askpass astro xplanet astro xephem editors vim print ghostscript8 print psutils-a4 print a2ps-a4 print gv print transfig print teTeX print cups-base emulators linux_base-fc6 print acroread8 yes accept | make install PAGER=ls java jdk16 echo true > files/license.sh; make install BATCH=yes < /dev/null www apache22 www amaya www firefox3 www checkbot www p5-HTML-Parser www validator www mplayer-plugin math p5-Math-Combinatorics math p5-Bit-Vector graphics evince graphics xfig graphics xv graphics gphoto2 multimedia xawtv lang expect lang gawk lang python news tin net freebsd-uucp net cvsup-without-gui net rsync ftp wget textproc ispell german ispell-neu german ispell-alt textproc docproj sysutils samefile sysutils smartmontools sysutils pstree sysutils cdrtools sysutils dvd+rw-tools sysutils grub sysutils lsof devel subversion-freebsd devel bcc devel ddd devel gindent devel ctags devel ElectricFence devel strace devel perltidy mail procmail mail metamail mail mutt-devel ports-mgmt portupgrade news inn CONFIGURE_ARGS="--enable-uucp-rnews --enable-setgid-inews" make BATCH=yes install < /dev/null misc figlet-fonts security gpa mail spamoracle textproc rman multimedia mplayer multimedia mplayer-fonts multimedia acidrip multimedia ogle multimedia ogle-gui audio pacpl audio p5-CDDB_get audio cowbell shells bash editors openoffice.org-3-RC java eclipse java netbeans
ダウンロード: stage_2.conf.default.
本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、ドキュメント を読んだ上で <[email protected]> まで (英語で)
連絡してください。
本文書に関する質問については、<[email protected]> まで電子メールを (英語で)
送ってください。