- install to $j/base
- create $j/etc $j/var $j/home $j/tmp $j/usrlocal etc
- null-ro mount $j/base to $j/root
- null-rw mount $j/etc to $j/root/etc
- null-rw mount $j/var to $j/root/var
- etc...
- when upgrade time, diff $j/etc against $j/base/etc to see what was edited and how
- upgrade $j/base
- copy $j/base to $j/etc and apply the patches for changed items
- things like var can be updated by running the var mtree over it
- things like home and stuff don't need to be upgraded
poudriere builds packages into jenga.den:/srv/www/root/packages/cdnjail-cdn/ using ports tree cdn and jail cdnjail
/usr/local/etc/poudriere.conf
ZPOOL=jenga FREEBSD_HOST=http://jenga.den.cyberleo.net # make release into /pub/FreeBSD/releases/amd64/amd64/9.1-RELEASE-CDNJAIL/ BASEFS=/poudriere DISTFILES_CACHE=/var/ports/distfiles # shared with host CCACHE_DIR=/poudriere/ccache export HTTP_PROXY=http://gateway.den.cyberleo.net:46565 export FTP_PROXY=http://gateway.den.cyberleo.net:46565 ALLOW_MAKE_JOBS=yes
portmaster ports-mgmt/poudriere
This stuff goes on the ports-tree-less target box:
Using this method, /usr/ports MUST NOT EXIST WHATSOEVER OR PORTMASTER WILL BITCH AT YOU WITH AN UNINTELLIGIBLE ERROR MESSAGE THAT YOU WILL SPEND HOURS TRYING TO DEBUG BEFORE JUST DELETING THE DIRECTORY AND FUCK.
/usr/local/etc/portmaster.rc
# Look for INDEX-9.bz2 here MASTER_SITE_INDEX=http://jenga.den.cyberleo.net/packages/cdnjail-cdn/ # Look for packages here; should point to the directory containing All, Latest, et alia PACKAGESITE=${MASTER_SITE_INDEX} # Store the downloaded packages here PACKAGES=/% # Use packages only; never try to use ports tree PM_PACKAGES=only # Use INDEX for port version information PM_INDEX=yes # Use only INDEX; never try to use ports tree PM_INDEX_ONLY=pm_index_only
Install portmaster and cdn-base from newly configured repo
PACKAGESITE=http://jenga.den.cyberleo.net/packages/cdnjail-cdn/Latest/ pkg_add -r portmaster portmaster misc-cdn/cdn-base
Check that ports are up to date without updating anything
portmaster -an
Show root and leaf port origins on the current machine
portmaster --list-origins