Last Update: "2007/04/22 07:40:33 makoto"

meta-pkgって何 ?

meta-pkg とは、自分で「これとこれを集めてきて名前を付けてまとめておく」 っていうので、例えば iPod のプレイ・リストみたいなものですね。 pkgsrc 自体にも、そういうものはいくつもあります。 例えば print/ja-ptex がそうです。 それ自体では何も作らないけれど、いくつかまとめて入れてくれます。 この ja-ptex の場合は次の四つを入れてくれます。
  1. ja-ptex-bin
  2. ja-jsclasses
  3. ja-vfxdvik
  4. dvipdfmx
その meta-pkg の方法を使って自分用に必要なものをまとめておくと、 便利なことは、二つあります。
  1. こういう -current 生活をしていると、OS を入れるたび に pkgsrc を更新して作り直した方がいいが、その時に、 「作っておいてね」make package でまとめて全てを作ってくれる
  2. 同じような機械が複数ある時に、一度作ったものから、binary 形式で まとめて入れてくれるので時間がかからない ( pkg_add config-desktop など)

作るには

名前を決めること。Makefile を作ること。これだけです (ま Makefile の動作確認もする方がいいですが)。

お手本は

これはいくつもあります。上に挙げた print/ja-ptex が一番簡単で分りやすいでしょう。 僕が使っているものは: にある Makefile です。 これらは、隣りにある Makefile.common も呼出しています。 その他に殆んど中身のない DESCR と PLIST が必要です。

実際には

pkgsrc の meta-pkg の機能を使い、 自分用の package 一式を作ります。 まず、次の URL http://www.ki.nu/software/macppc2/bulk-build.html の中にある 1 ... 4, その他 1 .. 2 の 変更を先にしておきます。 また 2006/03 頃 に使っている /etc/mk.conf の設定は次の通りです。
ALLOW_VULNERABLE_PACKAGES=YES

ACCEPTABLE_LICENSES+=no-profit
ACCEPTABLE_LICENSES+=no-commercial-use

X11BASE=       /usr/X11
X11_TYPE=      native
ProjectRoot=   /usr/X11
X11ROOTDIR=    /usr/X11
X11PREFIX=     /usr/X11

W3M_USE_UNICODE= YES
PKG_OPTIONS.php4= mbstring
IS_BUILTIN.xpm= no
TEX_DEFAULT=teTeX2
これが完了した時の pkgsrc のディスクの使用量は次のように約 4.4 GB です。
ttyZ0:root@s900  0:49:03/060122(/export/pkgsrc)# du -sk .
4366197 .
実はこの例は
make package 
と入力しているため、作ったものが作業領域にそのまま 残ってしまいます。その代りに
sudo make package clean 
とやっておくと、作業が終った時に作業域の内容を消してくれる(??) ので、便利です。 disk も少なくて済むのと、後で pkgsrc を更新した時にそのまま作業を続けられます。