|
Namazu for hns による簡易全文検索 詳しくは 詳細指定/ヘルプを参照して下さい |
|||||||||||||||||||||||||||||||||||||||||||||||||
2012年03月13日(火) 旧暦 [n年日記] [更新:"2020/07/24 02:15:11"]#1 [pkgsrc] chroot 環境で pkgsrc (pbulk)
自分で作っている説明画面
や、
それを見て書いた日記 (2011/10/03)
などが、
が結局分り難いというか、まとまりがないので、
また例題として書いて見るのです。
pbulk は、本来は、
いくつかの(同じ環境な)機械を使って、並行して処理させて、
bulk build、つまり NetBSD package
を全部作るという作業を早く終らせる、という目的のものなのですが、僕は、
それよりも、次のような意義を見出して、利用しています。
@ chroot 環境で pkgsrc (pbulk) する時に必要なもの:
@ bootstrap:
ここから (chroot の中で) bootstrap-pkgsrc します。
m08@makoto 10:00:44/120411(/export/CHROOT)% sudo chroot /export/CHROOT
# cd /usr/pkgsrc/bootstrap ;
./bootstrap --prefix=/usr/pkg_bulk --pkgdbdir=/usr/pkg_bulk/.pkgdb
ここで指定した PATH は
/usr/pkg_bulk/etc/mk.conf
に記録され、
後から参照されます。
@ pkg_info:
bootstrap は、「何もないところで pkgsrc」の意味で、
何も用意されていなくてもこれさえ用意すれば、
後はいつもの pkgsrc 環境になります。
脇 に用意した最少限の道具です r4-2@root 14:26:17/120313(/export/CHROOT)% chroot /export/CHROOT
# env PATH=/usr/pkg_bulk/bin:/usr/pkg_bulk/sbin:${PATH} pkg_info
bootstrap-mk-files-20120305 *.mk files for the bootstrap bmake utility
bmake-20110606 Portable (autoconf) version of NetBSD 'make' utility
pkg_install-20120221 Package management and administration tools for pkgsrc
@ pbulk を用意する:
脇
に用意します。脇に用意するので、他のものと別の位置に置くには、前述の
/usr/pkg_bulk/etc/mk.conf
の
.ifdef BSD_PKG_MK # begin pkgsrc settings .endifの中に、次の行を追加しておきます。 PACKAGES= /packages_bulkここで右辺の設定はどこでも構いません。(この項 2015/04/23 追記) chroot 内の /etc/resolv.conf が外側と同じになるように写しておきます まず mozilla-rootcerts を入れて、還に install しておきます。 (2023/07/15, 2024/05/19 追記)
cd /usr/pkgsrc/security/mozilla-rootcerts
env PATH=/usr/pkg_bulk/bin:/usr/pkg_bulk/sbin:${PATH} bmake package-install
/usr/pkg_bulk/sbin/mozilla-rootcerts install
これは、次のようになるのを避けるためです
ftp: Can't connect to `2001:470:142:3::b:443': No route to host Trying 209.51.188.20:443 ... 18446744073709551615:error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed:/usr/src/crypto/external/bsd/openssl.old/dist/ssl/statem/statem_clnt.c:1919: ftp: Can't connect to `ftp.gnu.org:https'その上で次のようにして、まず pbulk を作ります。
cd /usr/pkgsrc/pkgtools/pbulk ;
env PATH=/usr/pkg_bulk/bin:/usr/pkg_bulk/sbin:${PATH} bmake package-install
ここまでで次の最後の五つが追加されます。これも
脇
です。
# env PATH=/usr/pkg_bulk/bin:/usr/pkg_bulk/sbin:${PATH} pkg_info
bootstrap-mk-files-20120305 *.mk files for the bootstrap bmake utility
bmake-20110606 Portable (autoconf) version of NetBSD 'make' utility
pkg_install-20120221 Package management and administration tools for pkgsrc
digest-20111104 Message digest wrapper utility
perl-5.14.2nb5 Practical Extraction and Report Language
rsync-3.0.9 Network file distribution/synchronisation utility
pbulk-base-0.44 Core components of the modular bulk build framework
pbulk-0.48 Modular bulk build framework
2017/11 の場合
cwrappers-20171027 pkgsrc compiler wrappers bootstrap-mk-files-20170802 *.mk files for the bootstrap bmake utility bmake-20150505 Portable (autoconf) version of NetBSD 'make' utility pkg_install-20171030 Package management and administration tools for pkgsrc digest-20160304 Message digest wrapper utility rsync-3.1.2 Network file distribution/synchronisation utility pbulk-base-0.53 Core components of the modular bulk build framework pbulk-0.65 Modular bulk build framework僕の場合は、この他に zsh, net-snmp, sendmail, (最近は libkver) を追加します
cd ../../shells/zsh;
env PATH=/usr/pkg_bulk/bin:/usr/pkg_bulk/sbin:${PATH} bmake package-install
cd ../../net/net-snmp; # 2020/07/24 updated
env PATH=/usr/pkg_bulk/bin:/usr/pkg_bulk/sbin:${PATH} bmake package-install
sendmail を入れる前に
/usr/pkg_bulk/etc/mk.conf
に次の行を
追加
しておきます。
SKIP_LICENSE_CHECK= yes ここでも make でなく (/usr/pkg_bulk 側に入れるため ) bmake を使います。 sendmail で 上記 mk.conf が効くためにも bmake の方が必要です。 また入れた後に cd /usr/pkg_bulk/share/sendmail/cf; # -- Not necessary now (2014-06-20) -- -vi netbsd-proto.mc make install-cf CF=netbsd-proto; mkdir -p /var/spool/mqueue; mkdir -p /var/spool/clientmqueue; chown smmsp.smmsp /var/spool/clientmqueue; ln -sf /usr/pkg_bulk/share/examples/sendmail/mailer.conf /etc/mailer.conf; touch /etc/mail/local-host-namesなどをして echo test | mail username@example.com で自分宛にメールが出せる(届く)ことを確認しておきます。 (ちなみに 非 chroot 側で sendmail が動いていることが必要です) @ pbulk.conf:
多分ここまでくれば、後は /usr/pkg_bulk/etc/pbulk.conf を調整して
env PATH=/usr/pkg_bulk/bin:/usr/pkg_bulk/sbin:${PATH} bulkbuild
とやるだけではないかと思います。 pbulk.conf を調整する時に、
どこを見るかも重要かと思います。僕は、どこに記録が残っているのか分らないうちは、
du -sk /export/CHROOT/bulk/*などのようにして log を探したりもしました。 pbulk.conf の中では unprivileged_user=pbulkこれも僕は結構悩ましかったけれど、今は自分にしています。 どちらにしても chroot 内で vipw が必要です。
今うまく動き出した時の pbulk.conf は次のようなものです。全てが必須とは
限りませんが、自分の覚えとして、現状を書いておきます。
(人間用に編集しています)
--- pkg_bulk/share/examples/pbulk/pbulk.conf 2012-03-13 15:01:55.000000000 +0900
+++ /export/CHROOT/usr/pkg_bulk/etc/pbulk.conf 2012-03-14 20:09:15.000000000 +0900
-master_mode=yes
+master_mode=no
-pkg_rsync_args="-av --delete-excluded -e ssh"
+pkg_rsync_args="-av --delete-excluded"
-pkg_rsync_target="pkgsrc@192.168.75.1:/public/packages/current/DragonFly-1.8"
+pkg_rsync_target="/bulk/rsync"
-report_rsync_args="-avz --delete-excluded -e ssh"
+report_rsync_args="-avz --delete-excluded"
-report_rsync_target="pkgsrc@192.168.75.1:/public/reports/current/DragonFly-1.8"
+report_rsync_target="/bulk/report"
-report_recipients="pkgsrc-bulk at netbsd.org"
+report_recipients="pkgsrc-bulk at example.com"
-bootstrapkit=/usr/pkgsrc/bootstrap/bootstrap.tar.gz
+bootstrapkit=
-#limited_list=/limited_list
+limited_list=/limited-list
unprivileged_user=pbulk
+unprivileged_user=username
-make=${prefix}/bin/bmake
+make=/usr//bin/make
上の設定に合せて、次のような mkdir も必要です。
cd /export/CHROOT/; mkdir packages; sudo mkdir packages; sudo mkdir bulk; sudo mkdir bulklog; sudo mkdir packages/All; sudo mkdir bulk/report; t-105# cat /etc/mk.conf PACKAGES=/packagesこの後に limited_list に pkgtools/digest とだけ書いて pbulk を実行します。 必ず最初に作るもので、これが出来ないと次には行けないのと、簡単なので、問題が あれば、すぐ分るからです。
env PATH=/usr/pkg_bulk/bin:/usr/pkg_bulk/sbin:${PATH} bulkbuild
次のように言われるのは、上の
PACKAGES= /packages
の行が不足しているからです。これは pbulk.conf で /packages に作るように設定して
いるのに、同じところを見ないので、見つからない、と言っているのです。
pkg_add: no pkg found for 'digest-20121220', sorry. pkg_add: 1 package addition failed ( つっこみ )
|
最近の日記 2026年01月29日 ・Die Fledermaus at New National theatre 2026/01/29 2025年12月25日 ・pbulk 11.99.3 (emacs30) 2025年11月22日 ・crash dump 2025年10月25日 ・recover from disk error 2025年10月23日 ・dd does not duplicate Windows 11 boot disk ? | ||