lang/rustをビルドしているとディスクが溢れてしまうのが、自前でビルドできない理由です。ビルド済みのパッケージを入手して済まそうと思ったのですが、The NetBSD Packages Collection: lang/rustにはx86_64版とsparc64版しか置いてありません。
必要なのはi386版のビルド済みパッケージです。それがあれば、pkg_addするだけで済むはずです。そこで、Windows10上のVirtualBoxでNetBSD/i386の環境を作り、そこでlang/rustのビルドをおこなうことにしました。途中でWindows10のマシンの電源を落としたりしたので、24時間動かしていたわけではありませんが、2日間強ほどかかりましたが、無事にビルド出来ました。
ビルド出来たパッケージをpkg_addすると、警告が出ましたが、無事にインストールされました。
# pkg_add /usr/local/pkgsrc/packages/All/rust-1.35.0nb1.tgz
pkg_add: Warning: package `rust-1.35.0nb1' was built for a platform:
pkg_add: NetBSD/i386 8.0 (pkg) vs. NetBSD/i386 8.99.43 (this host)
# pkg_info | grep rust
rust-1.35.0nb1 Safe, concurrent, practical language
これで一安心かと思いきや、pkg_rolling-replaceではlang/rustの再作成が始まろうとしてしまいます。
rr> inputmethod/ibus-mozc - ibus-mozc-2.17.2313.102nb2 < ibus-mozc-2.17.2313.102nb13
rr> lang/py-six - py37-six-1.12.0 missing
rr> lang/rust - rust-1.35.0nb1 > rust-1.35.0 - ignoring
rr> lang/vala - vala-0.38.4 < vala-0.44.3
pkg_rolling-replaceは内部でpkg_chkを呼び出すことで、パッケージを再ビルドする必要の有無を判断しているようです。ここに出ているメッセージはpkg_chkを単独で実行したものと同じでした。
せっかくVirualBox上のNetBSD/i386でビルドしたのに、これでは意味がありません。どうしようかと思ったのですが、pkg_rolling-replaceにはオプション「-X」で再作成対象から除外できる機能があるので、「-X rust」 を指定して再作成対象外としました。
これでlang/rustの問題は解決したと考えています。しかしながらpkg_rolling-replaceでパッケージを全更新するのは、あまり得策ではないような気がしてきました。pkg_rolling-replace以外にも、pkg_chkやpkginなどのツールもあるようですし、そもそもソースから自前でビルドしなくても、出来合いのバイナリを使う方法もあるようです。どうすれば良いのか、もう一度考えてみようと思います。
0 件のコメント:
コメントを投稿