Notebook

これは日々の作業を通して学んだことや毎日の生活で気づいたことをを記録しておく備忘録である。

HTML ファイル生成日時: 2026/08/28 18:36:25.412 (台灣標準時)

自分専用の NetBSD のバイナリーパッケージの http repository を作る方法

複数の 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



Frequently accessed files

  1. Computer___Network/20260127_00.html
  2. Misc___Taiwan/20240207_00.html
  3. Computer___NetBSD/20250301_01.html
  4. Misc___Taiwan/20240819_00.html
  5. Book___Chinese/20240424_00.html
  6. Computer___TeX/20231107_00.html
  7. Computer___TeX/20240414_01.html
  8. Misc___Japan/20240610_00.html
  9. Computer___TeX/20240411_00.html
  10. Misc___Japan/20240718_00.html
  11. Computer___Network/20241214_00.html
  12. Computer___TeX/20230726_01.html
  13. Computer___Python/20230803_00.html
  14. Misc___Taiwan/20240903_01.html
  15. Computer___Network/20230516_00.html
  16. Computer___NetBSD/20230119_00.html
  17. Computer___FreeBSD/20220621_0.html
  18. Computer___NetBSD/20250113_00.html
  19. Computer___TeX/20240414_00.html
  20. Computer___Network/20240130_00.html
  21. Computer___TeX/20240410_00.html
  22. Computer___NetBSD/20250307_00.html
  23. Computer___Python/20250330_00.html
  24. Computer___NetBSD/20220818_1.html
  25. Computer___NetBSD/20240805_03.html
  26. Computer___TeX/20230503_00.html
  27. Computer___Python/20240101_00.html
  28. Computer___NetBSD/20240101_03.html
  29. Computer___Network/20220413_1.html
  30. Computer___NetBSD/20220406_0.html


HTML file generated by Kinoshita Daisuke.