|
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 framework2017/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-installsendmail を入れる前に /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 ( つっこみ )
|
最近の日記 2024年07月03日 ・kicad oddity 2024年05月08日 ・comparison on ./buildsh tools 2024年05月06日 ・py-setuptools (python 3.11.9) ・make release took 1 hours and 10 min ・qemu invocation for 10.99.10 2024年05月05日 ・Windows 10 version ・serial connection ・bc bench 2024年05月04日 ・Trial on 10.99.10 ・another version (later trial) to succeed | ||