Last Update: "2007/08/07 07:14:55 makoto"
chroot
bulk-build
をすると、BULK_PREREQ に指定のない限り、pkg は全て消して
しまいます。
sudo も tcsh も消されてしまいます。その機械は bulk build の実行中
は、pkg で入れたものを使うような他の用途には使えません。
しかしここに書いた chroot を使えば、その心配はなくなります。
準備
例えば /export/chroot の下に環境を作るとします。
- ☆ binary/sets を開けます
- ★ X11R6.6+XF86 を開けます
- ★ missing/libgcc_s_pic.a を /usr/lib に写しておきます
- usr/pkgsrc を cvs co します
- ★
前頁
の patch を当てます
- ☆ /dev で ./MAKEDEV all
- ☆ /etc/mk.conf と /usr/pkgsrc/mk/bulk/build.conf を調整
- ★ (必要なら shell として) /bin/tcsh (など)を用意 ( /etc/shells も要調整 ?)
- ☆ /etc/resolv.conf を用意 (ftp するのに必要)
- ☆ ln -s usr/share/zoneinfo/Japan etc/localtime
上記の☆や★の印の意味は次の通りです。
★ TsubaiBSD あるいは自分の環境等に特有なこと
☆ NetBSD 一般に必要なこと
今回は 22 GBytes くらい空けて実行して見ます。
- distfiles を NFS から利用したいような場合には mount_null を使うと良いです。例えば
次のような構文です (これは chroot する前に操作します)
sudo mount_null /amd/host/distfiles /export/chroot/usr/pkgsrc/distfiles
これでもし distfile に何か入っていると、それは下にかくれて見えなくなります。
- 良く分らないが chroot の場合に、
ALLOW_VULNERABLE_PACKAGES=YES
が必要となる場合があるような気がします。
- 上の方法では binary/sets を tar zxpf で開けることを想定していますが、
例えば、
/var/spool/clientmqueue/
の所有者を
drwxrwx--- 2 smmsp smmsp 2048 May 14 22:41 /var/spool/clientmqueue/
にしておく必要があります。これは最後に報告のメールを出すのに必要です。
(もしこれで失敗した時には sh bulk/build -r すれば、やり直してすぐにメールが
送られます)。
- 自分の id を vipw で作成し、しかし root の passwd を空にしておくと
su の時に何も聞いて来ないので便利な気がします。/etc/group の一行目には ,login_name を書いておきます。
実行
ttyp0:makoto@st4200 DING!/050505(/export/chroot)> sudo chroot .
Password:
# tcsh
# source /root/.tcshrc
/home/makoto/.cshrc: No such file or directory.
ttyp0:root@st4200 17:02:15/050505(/)# cd /usr/pkgsrc/mk
ttyp0:root@st4200 17:02:24/050505(...pkgsrc/mk)# sh bulk/build
Bulk build started: Thu May 5 17:02:32 JST 2005
Making sure vulnerability-list is upto date:
BULK> /usr/pkgsrc/packages/All/audit-packages-1.33.tgz is up to date.
BULK> Required binary package digest-[0-9]* (digest-20050323.tgz) is newer, rebuilding...
/usr/bin/make bulk-package PRECLEAN=no
BULK> /usr/pkgsrc/packages/All/audit-packages-1.33.tgz is up to date.
BULK> Required binary package digest-[0-9]* (digest-20050323.tgz) is newer, rebuilding...
BULK> Removing old binary package...
/bin/rm -f /usr/pkgsrc/packages/All/audit-packages-1.33.tgz
/bin/rm -f /usr/pkgsrc/packages/security/audit-packages-1.33.tgz
/bin/rm -f /usr/pkgsrc/packages/pkgtools/audit-packages-1.33.tgz
BULK> Full rebuild in progress...
BULK> Cleaning package audit-packages-1.33 and pre-r
...
|