Upgrade BastilleBSD jails from source (offline/src.txz)

Upgrade BastilleBSD jails from source

Using bastille upgrade 12.1-RELEASE 12.2-RELEASE is the prefered way of upgrading. If you need to do that air-gapped or with a special release (like -HEAD) you can use this tutorial.

before you start: make sure your host system is not behind the jails release

svnlite checkout https://svn.freebsd.org/base/head /usr/src

If you want to fetch a special branch you can svnlite checkout one of the following branches: ‘release/12.2.0’ ‘releng/12.2’ ‘stable/12’ e.g. svnlite checkout https://svn.freebsd.org/base/releng/12.2 /usr/src

or update via svnlite update /usr/src if you already fetched it (if you want to switch the branch you can simply rm -r /usr/src/* )

-j is the number of parallel tasks (you don’t want to set that higher than the number of CPU cores)

make buildworld -j 16 -C /usr/src

Create the release dir (HEAD, 12-STABLE or 12.2-RELENG). If you use XX.X-RELEASE it will overwrite/break the releases fetched by bastille.

make installworld -C /usr/src DESTDIR=/usr/local/bastille/releases/HEAD
bastille stop {yourjailname}
vim /usr/local/basille/jails/{yourjailname}/fstab

and replace the the moutpoint with the one you just created. (e.g. sed -i '' "s/12.2-RELEASE/HEAD/g" /usr/local/bastille/jails/bleeding_edge/fstab)

and upgrade your packages

bastille start {yourjailname}
echo "IGNORE_FILES='/boot/device.hints /etc/motd /etc/hosts'" >> ~/.mergemasterrc
mergemaster -Ui -D /usr/local/bastille/jails/{jailname}/root
bastille restart {yourjailname}
bastille pkg {yourjailname} upgrade