On Tue, 11 Oct 2016, Julian Elischer wrote:
*manually* (scripted) copy out only the files I need, and then copy the pkg database, so that when run on the running appliance, pkg THINKS all the packages are loaded
We do something similar using prebuilt (pkg fetch) or locally built (make package) packages by: 1) untarring the .pkg: cd /tmp && tar xzvf {/usr/ports/packages/All,/var/cache/pkg}/... 2) unpacking the manifests: cat -- +COMPACT_MANIFEST | jq -a 'del(.shlibs_required,.deps)' > \ COMPACT_MANIFEST.tmp cat -- +MANIFEST | jq '.' > MANIFEST.tmp 3) removing unecessary files and dependencies: vi *MANIFEST.tmp :s/DOCS": "on/DOCS": "off/ :g,share/doc,d ... rm -rf ./usr/local/{same files and deps as vi} 4) and repacking into a new, minimal pkg: mv COMPACT_MANIFEST.tmp +COMPACT_MANIFEST && \ mv MANIFEST.tmp +MANIFEST && \ tar cf - ... | (cd / && tar xfBp -) && \ pkg create -M +MANIFEST This tends to be easier than patching port/{Makefile,pkg-plist,files/...}, keeps /var/db/pkg/local.sqlite valid and works well with 'pkg audit'. Should also, theoretically, be easy enough to roll into a metaport. Thanks to Devin for the original idea. YMMV, Roger _______________________________________________ freebsd-ports@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"