これは日々の作業を通して学んだことや毎日の生活で気づいたことをを記録しておく備忘録である。
HTML ファイル生成日時: 2026/08/28 18:36:25.412 (台灣標準時)
複数の NetBSD を仮想機械上で動かしているでござる。その全てで pkgsrc を 使ってソースコードからバイナリーパッケージを作って、それらをインストー ルすると時間がかかるでござる。そのうちの一つでコンパイルを行い、ソース コードからバイナリーパッケージを作り、それを他の機械が参照できる場所に 置いて、他の機械はバイナリーパッケージをダウンロードして、それらをイン ストールすればよいと思ったでござる。試してみたでござる。
まず、一つの機械の上で、 pkgsrc を使って、必要なパッケージをコンパイル し、インストールするでござる。
# cd /usr/pkgsrc/www/firefox153 # make install # pkgclean
/etc/mk.conf で PACKAGES 変数を設定しているのであれば、バイナリーパッ ケージは PACKAGES で指定された場所に置かれるでござる。 PACKAGES を設定 していなければ、 /usr/pkgsrc/packages/All/ に置かれるでござる。
# cd /usr/pkgsrc/packages/All # ls CUnit-2.1.3nb1.tgz ImageMagick-7.1.2.21nb4.tgz ImageMagick6-6.9.13.26nb11.tgz OpenJPH-0.31.0.tgz SDL-1.2.15nb48.tgz SDL2-2.32.10nb3.tgz SDL2_image-2.6.3nb8.tgz TECkit-2.5.13.tgz a2ps-4.15.6.tgz abseil-20260526.0.tgz abseil-20260817.0.tgz adwaita-icon-theme-50.0.tgz alex-3.5.4.2.tgz alsa-lib-1.2.16.1.tgz anthy-9100hnb1.tgz apache-arrow-20.0.0.tgz apache-arrow-25.0.1.tgz appstream-1.1.6.tgz argon2-20190702.tgz argp-1.5.0nb1.tgz ..... xv-3.10anb33.tgz xvidcore-1.3.7nb1.tgz xxhash-0.8.3.tgz xz-5.8.3.tgz yaml-cpp-0.9.0.tgz yasm-1.3.0.tgz yatex-1.84.tgz yelp-tools-42.1nb7.tgz yelp-xsl-42.1.tgz yt-dlp-2026.8.19.tgz zeromq-4.3.5nb1.tgz zinnia-0.06.tgz zint-2.16.0nb2.tgz zip-3.0nb3.tgz zlib-ng-2.3.3.tgz zonetab-0.tgz zsh-5.9.2.tgz zstd-1.5.7.tgz zxing-cpp-3.1.1.tgz zziplib-0.13.80.tgz
個々のバイナリーパッケージの情報が詰まった "pkg_summary" と いう summary ファイルを作成するでござる。
# cd /usr/pkgsrc/packages/All # pkg_info -X *.tgz > pkg_summary # ls -lF pkg_summary -rw-r--r-- 1 root wheel 3208368 Aug 28 17:43 pkg_summary # head -40 pkg_summary PKGNAME=CUnit-2.1.3nb1 COMMENT=C Unit checking test software SIZE_PKG=574774 BUILD_DATE=2026-08-27 20:26:28 +0800 CATEGORIES=devel HOMEPAGE=https://cunit.sourceforge.net/ LICENSE=gnu-gpl-v2 MACHINE_ARCH=x86_64 OPSYS=NetBSD OS_VERSION=11.0 PKGPATH=devel/cunit PKGTOOLS_VERSION=20091115 PKG_OPTIONS= PROVIDES=/usr/pkg/lib/libcunit.so PROVIDES=/usr/pkg/lib/libcunit.so.1 PROVIDES=/usr/pkg/lib/libcunit.so.1.0.1 REQUIRES=/usr/lib/libc.so.12 FILE_NAME=CUnit-2.1.3nb1.tgz FILE_SIZE=141597 DESCRIPTION=CUnit is a lightweight system for writing, administering, and running DESCRIPTION=unit tests in C. It provides C programmers a basic testing DESCRIPTION=functionality with a flexible variety of user interfaces. DESCRIPTION= DESCRIPTION=CUnit is built as a static library which is linked with the user's DESCRIPTION=testing code. It uses a simple framework for building test DESCRIPTION=structures, and provides a rich set of assertions for testing common DESCRIPTION=data types. In addition, several different interfaces are provided DESCRIPTION=for running tests and reporting results. These interfaces currently DESCRIPTION=include: DESCRIPTION= DESCRIPTION=Automated Output to xml file Non-interactive DESCRIPTION=Basic Flexible programming interface Non-interactive DESCRIPTION=Console Console interface (ansi C) Interactive DESCRIPTION=Curses Graphical interface (Unix) Interactive DESCRIPTION= DESCRIPTION=Homepage: DESCRIPTION=https://cunit.sourceforge.net/ CONFLICTS=geomview<1.8.1nb2 PKGNAME=ImageMagick-7.1.2.21nb4
"pkg_summary" ファイルを圧縮するでござる。
# gzip pkg_summary # ls -lF pkg_summary.gz -rw-r--r-- 1 root wheel 532722 Aug 28 17:43 pkg_summary.gz
"pkg_summary.gz" ファイルとすべてのバイナリーパッケージをウェ ブサーバーに転送するでござる。
% rsync -av --no-perms -e 'ssh -p 54321' /usr/pkgsrc/packages/All/ abc.def.ghi.edu.tw:/usr/pkg/share/httpd/htdocs/binary_netbsd_11_amd64/
次に、バイナリーパッケージをインストールしたい機械の上で作業を行うでご ざる。 "pkgin" コマンドがインストールされていなければ、まず、 "pkgin" をインストールするでござる。
# cd /usr/pkgsrc/pkgtools/pkgin # make install # pkgclean
"repositories.conf" を編集するでござる。
# cd /usr/pkg/etc/pkgin # ls -lF total 2 -rw-r--r-- 1 root wheel 849 Aug 28 17:55 repositories.conf # cp -pi repositories.conf repositories.conf.orig # ls -lF total 4 -rw-r--r-- 1 root wheel 849 Aug 28 17:55 repositories.conf -rw-r--r-- 1 root wheel 849 Aug 28 17:55 repositories.conf.orig # vi repositories.conf # ls -lF total 4 -rw-r--r-- 1 root wheel 902 Aug 28 17:56 repositories.conf -rw-r--r-- 1 root wheel 849 Aug 28 17:55 repositories.conf.orig # diff repositories.conf.orig repositories.conf 26c26,27 < https://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD/$arch/11.0/All --- > #https://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD/$arch/11.0/All > https://abc.def.ghi.edu.tw/binary_netbsd_11_amd64
"pkg_summary.gz" ファイルをダウンロードするでござる。
# pkgin update cleaning database from https://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD/x86_64/11.0/All entries... reading local summary... processing local summary... processing remote summary (https://abc.def.ghi.edu.tw/binary_netbsd_11_amd64)... pkg_summary.gz 100% 520KB 520.2KB/s 00:00
これで、準備は完了したので、バイナリーパッケージを検索することができる でござる。
# pkgin search firefox firefox-154.0 Web browser with support for extensions (version 154) firefox140-140.14.0 Web browser with support for extensions (version 140ESR) firefox153-153.1.0 Web browser with support for extensions (version 153ESR) =: package is installed and up-to-date <: package is installed but newer version is available >: installed package has a greater version than available package
バイナリーパッケージをインストールするには、例えば、以下のようにすれば よいでござる。
# pkgin install firefox153-153.1.0
以下のように "-4y" オプションをつけておくとよいようでござる。
# pkgin -4y install firefox153-153.1.0