FreeBSD で pkgsrc を試しているが2021年05月07日 13時11分09秒

pkgsrc は NetBSD のパッケージシステム。元々は FreeBSD から派生したものだったが、現在は様々なアーキテクチャをサポートする為に尽力中。中身は既に FreeBSD と NetBSD では全く別になっている。

pkgsrc.tar.xz をダウンロード。そして、pkgsrc を展開し、booststrap ディレクトリの中にある bootstrap シェルスクリプトを実行する。

# tar xf pkgsrc.tar.xz -C /tmp
# /tmp/pkgsrc/bootstrap
# ./bootstrap
...
./bootstrap/bootstrap --prefix=/usr/pkg --make-jobs 4
Please remember to add /usr/pkg/bin to your PATH environment variable
and /usr/pkg/man to your MANPATH environment variable, if necessary.

An example mk.conf file with the settings you provided to "bootstrap"
has been created for you. It can be found in:

      /usr/pkg/etc/mk.conf

You can find extensive documentation of the NetBSD Packages Collection
in /ports/pkgsrc/doc/pkgsrc.txt.

Thank you for using pkgsrc!

===> bootstrap started: Thu May  6 21:37:50 EDT 2021
===> bootstrap ended:   Thu May  6 21:41:07 EDT 2021
手元のシステムは FreeBSD 13.0-RELEASE に pksrc は 2021Q1。

現在のところ、boostrap は終ったが、最初の物を bmake install すると pkgtool/digiest と lang/gcc2 の相互依存に陥って何もインストールできない。

#  bmake build
===> Installing dependencies for digest-20190127
=> Build dependency gcc2>=2.95.3nb7: NOT found
=> Verifying reinstall for ../../lang/gcc2
=> Bootstrap dependency digest>=20010302: NOT found
=> Verifying reinstall for ../../pkgtools/digest
ERROR: This package has set PKG_FAIL_REASON:
ERROR: Circular dependency detected
*** Error code 1

Stop.
bmake[2]: stopped in /ports/pkgsrc/pkgtools/digest

明示的に clang を渡して、booststrap を試みたが駄目。

# ./bootstrap --compiler=clang
booststrap は無事に終了したが、これでも最初のもので digest と gcc2 をインストールしようとする。

仕方が無いので、pkg install gcc9 をして、gcc を元に bootstrap。

# ./bootstrap --compiler=gcc
これだと、bootstrap の過程が長くなり、gmake や gettext 等、その他のソフトウェアもコンパイルを始める。現時点では bison の configure に失敗して、それ以上先に勧めていない。bootstrap は Make システムではないので、途中で失敗た時でも、中断場所から再開できない。全て、 rm -rf work で一旦作業領域を消さなければいけないので、この時点から先に進めていない。