basepkg

後述するGitHubリポジトリのREADMEに使い方を書いてはいるが,めちゃくちゃな英語だと誰が読んでもわからないだろうからせめて日本人には伝わるよう.あとこれさえ翻訳すればよいというものをとりあえず書いておこうというモチベーションがあった.

GitHub

https://github.com/user340/basepkg

インストール

GitHubリポジトリをクローンする

$ git clone https://github.com/user340/basepkg

pkgsrc-wipを使う

# cd /usr/pkgsrc
# git clone git://wip.pkgsrc.org/pkgsrc-wip.git wip
# cd ./wip/basepkg
# make install

pkgtools/pkg_install に依存しているためシステムにインストールされていなければこれもインストールされる.

NetBSDベースシステムのパッケージを作る

basepkgでNetBSDベースシステムのパッケージを作るには以下の手順を踏む.

  1. NetBSDソースツリーをダウンロードする.
  2. build.sh toolsbuild.sh distribution, build.sh kernel=GENERIC を実行する.
  3. basepkg.sh pkgbasepkg.sh kern を実行する.

NetBSDをビルドする時間が一番大変かもしれない. build.sh の-j オプションを使うか,寝る前に実行するとよい.なお build.sh のオプションは環境に合わせて適宜変更すること.

パッケージをインストールする

pkgsrcのパッケージと同様に pkg_add を使う.データベースをpkgsrcのものと分けるために -K オプションに別のパスを指定する. basepkg.sh があるディレクトリ下にパッケージができるので pkg\_add -K /var/db/basepkg /path/to/basepkg/packages/7.1/amd64/base-sys-root-7.1.tgz のように実行する.

etc-* パッケージをインストールするさいの注意点

etc-sys-rc のように/etc 以下にファイルを展開するパッケージをインストールする場合は注意が必要だ. pkg_add はパッケージを展開するとき既存のファイルを上書きしてしまうため,etc-* パッケージを不用意に pkg_add すると/etc 以下のファイルが破壊される.

既存のシステムに etc-* パッケージをインストールする

pkg_add の -p オプションを使い,/etc 以下へ触らないようにする.

# pkg_add -K /var/db/basepkg -p basepkg etc-sys-rc-7.1.tgz