|
|
||
サーバ機を新しくするついでにHDDを変更したり、FreeBSD/amd64にするとかしたい。
インストールされてるportをまとめて別環境に再現するのにどうすれば楽か考えた。
結果的には Wassr で教えてもらった
pkg_version -o
で作ったリストから得たport名をひとつずつportinstallに渡して処理中。
具体的には
$ pkg_version -o|awk '{print $1}' > ports.list $ cat port-install.sh #!/bin/sh for list in `cat ports.list` do /usr/local/sbin/portinstall $list done $ sh port-install.sh
とか。
たとえば、あるportsのMakefileに
.if defined(WITH_???) 処理〜 .endif
とか書いてあった場合、
# portinstall -m 'WITH_???=no' foo/bar
とかしても、WITH_???はbool型じゃなくて、定義されてるか(defined)の判断しかしてないので、noとしても有効になるのか。
いや、てっきりbool型かと。おかげでcourier-imapのDRACが有効になり続けるというミスに対処するのに偉く時間かかった。(WITH_DRAC=NOとか、pkgtools.confに書いてしまっていた)