この段階で ports をコンパイルするのではなく、
(コンパイルずみの) packages をインストールすることもできます。
その場合、stage_2.sh
は
単に pkg_add
コマンドを羅列するだけになるでしょう。
読者のみなさんにとって、そういうスクリプトを書くのは難しくないと思いますので、
ここではもっと柔軟で、ports
を使った伝統的な方法について考えることにします。
次に紹介する stage_2.sh
スクリプトは、
わたしが好みの ports をインストールするために使ったものです。
これは何度でも実行でき、インストールずみの ports があれば、
飛ばして処理されます。スクリプトは 実行せず、実行される内容だけ
を表示する (dryrun) オプション (-n
)
があります。実行時には stage_1.sh
と同様、
設定スクリプトを示すためのひとつの引数を指定します。
#
./stage_2.sh default
これは、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 # # $FreeBSD: head/ja_JP.eucJP/articles/fbsd-from-scratch/stage_2.conf.default 38826 2012-05-17 19:12:14Z hrs $ # # Original Revision: 1.3 # shells zsh devel gettext make BATCH=yes install lang perl5.8 make install; use.perl port archivers unzip archivers zip security sudo x11-servers XFree86-4-Server x11 wrapper x11 XFree86-4-clients x11 XFree86-4-documents x11-fonts XFree86-4-font75dpi x11-fonts XFree86-4-font100dpi x11-fonts XFree86-4-fontScalable x11-fonts urwfonts x11-fonts webfonts make WITH_NETSCAPE_ALIASES=yes install x11-toolkits open-motif x11-wm ctwm security openssh-askpass astro xplanet astro xephem editors vim print ghostscript-gnu make A4=yes BATCH=yes install print psutils-a4 print a2ps-a4 print gv print acroread5 print transfig print teTeX # 注: jdk14 は linprocfs(5) がマウントされていないと、ハングアップした # ままになります。 java linux-sun-jdk14 mount -a linproc; yes | make install java jdk14 mount -a linproc; make -DNODEBUG install www apache2 www weblint www amaya www firefox make BATCH=yes install www mozilla make WITHOUT_MAILNEWS=yes WITHOUT_COMPOSER=yes WITHOUT_LDAP=yes WITHOUT_CHATZILLA=yes WITHOUT_XMLTERM=yes install www checkbot www privoxy graphics xfig graphics xv multimedia xawtv graphics graphviz lang expect lang gawk lang TenDRA unset MAKEOBJDIRPREFIX; make install news tin net freebsd-uucp net cvsup-without-gui net pathchar make NO_CHECKSUM=yes install ftp wget textproc ispell german ispell-neu german ispell-alt textproc docproj make JADETEX=no HAVE_MOTIF=yes BATCH=yes install < /dev/null sysutils samefile sysutils lsof sysutils pstree sysutils cdrtools sysutils grub sysutils smartmontools sysutils vobcopy devel ddd devel gindent devel ctags devel ElectricFence devel strace devel perltidy mail procmail make BATCH=yes install mail metamail mail mutt-devel emulators mtools sysutils portupgrade news inn-stable CONFIGURE_ARGS="--enable-uucp-rnews --enable-setgid-inews" make install misc figlet-fonts security gpa mail spamoracle multimedia mplayer make WITHOUT_RUNTIME_CPUDETECTION=yes WITH_GUI=yes BATCH=yes install multimedia mplayer-fonts audio wavplay games xmahjongg games xdemineur editors openoffice-1.1
ダウンロード: stage_2.conf.default
.
本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、
ドキュメント を読んだ上で
<questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、
<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。