Following steps describe upgrading Thin Jails managed by Bastille (Bastille).
Important Note:
These instructions are for upgrading Thin Jails managed by Bastille. Upgrading Thick Jails would require a different approach.
It’s highly recommended to back up your jail configuration files before proceeding.
- List of Jails and FreeBSD version:
for jail in `bastille list | awk '{print $2}' |grep -v IP ` ; do bastille cmd $jail freebsd-version -ur ; done
Output:
[adguardhome]:
13.4-RELEASE-p1
13.3-RELEASE-p6
[adguardhome]: 0
[jellyfin]:
13.4-RELEASE-p1
13.3-RELEASE-p6
[jellyfin]: 0
[tran]:
13.4-RELEASE-p1
13.3-RELEASE-p6
[tran]: 0
[prom]:
13.4-RELEASE-p1
13.3-RELEASE-p6
[prom]: 0
- Download Bastille boostrap for 13.4-RELEASE
bastille bootstrap 13.4-RELEASE
- Stopping Jails:
for jail in `bastille list | awk '{print $2}' |grep -v IP ` ; do bastille stop $jail ; done
Output:
pfctl: /dev/pf: No such file or directory
rdr-anchor not found in pf.conf
[adguardhome]:
adguardhome: removed
pfctl: /dev/pf: No such file or directory
pfctl: /dev/pf: No such file or directory
rdr-anchor not found in pf.conf
[jellyfin]:
jellyfin: removed
pfctl: /dev/pf: No such file or directory
rdr-anchor not found in pf.conf
[prom]:
prom: removed
pfctl: /dev/pf: No such file or directory
rdr-anchor not found in pf.conf
[tran]:
tran: removed
- Update Jails
fstab file to use 13.4-RELEASE:
for file in `bastille list -a | grep -v IP | awk '{ print $7 }' | sed 's#root#fstab#' ` ; do sed -i'.backup-13.3' 's/13.3-RELEASE/13.4-RELEASE/g' $file ; done
- Verify
fstab files:
for file in `bastille list -a | grep -v IP | awk '{ print $7 }' | sed 's#root#fstab#' ` ; do echo -e "\nfile: $file" ; cat $file ; done
Output:
file: /usr/local/bastille/jails/adguardhome/fstab
/usr/local/bastille/releases/13.4-RELEASE /usr/local/bastille/jails/adguardhome/root/.bastille nullfs ro 0 0
file: /usr/local/bastille/jails/jellyfin/fstab
/usr/local/bastille/releases/13.4-RELEASE /usr/local/bastille/jails/jellyfin/root/.bastille nullfs ro 0 0
/tank/movies /usr/local/bastille/jails/jellyfin/root/movies nullfs rw 0 0
/tank/music /usr/local/bastille/jails/jellyfin/root/music nullfs rw 0 0
file: /usr/local/bastille/jails/prom/fstab
/usr/local/bastille/releases/13.4-RELEASE /usr/local/bastille/jails/prom/root/.bastille nullfs ro 0 0
file: /usr/local/bastille/jails/tran/fstab
/usr/local/bastille/releases/13.4-RELEASE /usr/local/bastille/jails/tran/root/.bastille nullfs ro 0 0
/tank/movies /usr/local/bastille/jails/tran/root/movies nullfs rw 0 0
- Checking old
fstab - backup files:
for file in `bastille list -a | grep -v IP | awk '{ print $7 }' | sed 's#root#fstab#' ` ; do echo -e "\nfile: $file" ; cat $file.backup-13.3 ; done
Output:
file: /usr/local/bastille/jails/adguardhome/fstab
/usr/local/bastille/releases/13.3-RELEASE /usr/local/bastille/jails/adguardhome/root/.bastille nullfs ro 0 0
file: /usr/local/bastille/jails/jellyfin/fstab
/usr/local/bastille/releases/13.3-RELEASE /usr/local/bastille/jails/jellyfin/root/.bastille nullfs ro 0 0
/tank/movies /usr/local/bastille/jails/jellyfin/root/movies nullfs rw 0 0
/tank/music /usr/local/bastille/jails/jellyfin/root/music nullfs rw 0 0
file: /usr/local/bastille/jails/prom/fstab
/usr/local/bastille/releases/13.3-RELEASE /usr/local/bastille/jails/prom/root/.bastille nullfs ro 0 0
file: /usr/local/bastille/jails/tran/fstab
/usr/local/bastille/releases/13.3-RELEASE /usr/local/bastille/jails/tran/root/.bastille nullfs ro 0 0
/tank/movies /usr/local/bastille/jails/tran/root/movies nullfs rw 0 0
- Start jails:
for jail in `bastille list -a | awk '{print $5}' |grep -v IP ` ; do bastille start $jail ; done
Output:
[Published]: Not found.
pfctl: /dev/pf: No such file or directory
[adguardhome]:
e0a_bastille0
e0b_bastille0
adguardhome: created
pfctl: /dev/pf: No such file or directory
rdr-anchor not found in pf.conf
pfctl: /dev/pf: No such file or directory
rdr-anchor not found in pf.conf
pfctl: /dev/pf: No such file or directory
[jellyfin]:
e0a_bastille1
e0b_bastille1
jellyfin: created
pfctl: /dev/pf: No such file or directory
[prom]:
e0a_bastille5
e0b_bastille5
prom: created
pfctl: /dev/pf: No such file or directory
[tran]:
e0a_bastille2
e0b_bastille2
tran: created
- Checking FreeBSD version
for jail in `bastille list | awk '{print $2}' |grep -v IP ` ; do bastille cmd $jail freebsd-version -ur ; done
Output:
[adguardhome]:
13.4-RELEASE-p1
13.4-RELEASE-p1
[adguardhome]: 0
[jellyfin]:
13.4-RELEASE-p1
13.4-RELEASE-p1
[jellyfin]: 0
[tran]:
13.4-RELEASE-p1
13.4-RELEASE-p1
[tran]: 0
[prom]:
13.4-RELEASE-p1
13.4-RELEASE-p1
[prom]: 0
- Upgrade packages:
for jail in `bastille list | awk '{print $2}' |grep -v IP ` ; do bastille pkg $jail upgrade -y ; done
Output:
[adguardhome]:
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Checking for upgrades (1 candidates): 100%
Processing candidates (1 candidates): 100%
The following 1 package(s) will be affected (of 0 checked):
Installed packages to be UPGRADED:
curl: 8.9.1_1 -> 8.10.0
Number of packages to be upgraded: 1
2 MiB to be downloaded.
[adguardhome] [1/1] Fetching curl-8.10.0.pkg: 100% 2 MiB 1.6MB/s 00:01
Checking integrity... done (0 conflicting)
[adguardhome] [1/1] Upgrading curl from 8.9.1_1 to 8.10.0...
[adguardhome] [1/1] Extracting curl-8.10.0: 100%
[jellyfin]:
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Checking for upgrades (19 candidates): 100%
Processing candidates (19 candidates): 100%
The following 19 package(s) will be affected (of 0 checked):
Installed packages to be UPGRADED:
Imath: 3.1.11 -> 3.1.12
aom: 3.10.0 -> 3.10.0_1
argp-standalone: 1.5.0 -> 1.5.0_1
ffmpeg: 6.1.2,1 -> 6.1.2_1,1
libdrm: 2.4.122,1 -> 2.4.123,1
libjxl: 0.10.3 -> 0.11.0
libnghttp2: 1.62.1 -> 1.63.0
libv4l: 1.23.0_4 -> 1.23.0_5
openssl: 3.0.14,1 -> 3.0.15,1
py311-attrs: 24.1.0 -> 24.2.0
py311-certifi: 2024.7.4 -> 2024.8.30
py311-cffi: 1.17.0 -> 1.17.1
py311-cryptography: 42.0.8_2,1 -> 42.0.8_3,1
py311-httpx: 0.27.0_1 -> 0.27.2
py311-idna: 3.7 -> 3.8
python311: 3.11.9_1 -> 3.11.10
python39: 3.9.19 -> 3.9.20
readline: 8.2.10 -> 8.2.13
shaderc: 2024.1 -> 2024.2
Number of packages to be upgraded: 19
The process will require 2 MiB more space.
70 MiB to be downloaded.
[jellyfin] [1/19] Fetching py311-idna-3.8.pkg: 100% 78 KiB 79.4kB/s 00:01
[jellyfin] [2/19] Fetching libnghttp2-1.63.0.pkg: 100% 132 KiB 135.2kB/s 00:01
[jellyfin] [3/19] Fetching aom-3.10.0_1.pkg: 100% 3 MiB 3.3MB/s 00:01
[jellyfin] [4/19] Fetching py311-cffi-1.17.1.pkg: 100% 263 KiB 269.6kB/s 00:01
[jellyfin] [5/19] Fetching python39-3.9.20.pkg: 100% 18 MiB 9.2MB/s 00:02
[jellyfin] [6/19] Fetching shaderc-2024.2.pkg: 100% 3 MiB 2.9MB/s 00:01
[jellyfin] [7/19] Fetching py311-attrs-24.2.0.pkg: 100% 98 KiB 100.7kB/s 00:01
[jellyfin] [8/19] Fetching py311-certifi-2024.8.30.pkg: 100% 158 KiB 161.4kB/s 00:01
[jellyfin] [9/19] Fetching ffmpeg-6.1.2_1,1.pkg: 100% 10 MiB 3.6MB/s 00:03
[jellyfin] [10/19] Fetching Imath-3.1.12.pkg: 100% 103 KiB 105.8kB/s 00:01
[jellyfin] [11/19] Fetching py311-cryptography-42.0.8_3,1.pkg: 100% 1 MiB 1.1MB/s 00:01
[jellyfin] [12/19] Fetching openssl-3.0.15,1.pkg: 100% 6 MiB 3.2MB/s 00:02
[jellyfin] [13/19] Fetching libdrm-2.4.123,1.pkg: 100% 256 KiB 261.8kB/s 00:01
[jellyfin] [14/19] Fetching py311-httpx-0.27.2.pkg: 100% 153 KiB 156.9kB/s 00:01
[jellyfin] [15/19] Fetching libjxl-0.11.0.pkg: 100% 2 MiB 1.8MB/s 00:01
[jellyfin] [16/19] Fetching libv4l-1.23.0_5.pkg: 100% 364 KiB 373.0kB/s 00:01
[jellyfin] [17/19] Fetching python311-3.11.10.pkg: 100% 25 MiB 5.3MB/s 00:05
[jellyfin] [18/19] Fetching argp-standalone-1.5.0_1.pkg: 100% 29 KiB 30.0kB/s 00:01
[jellyfin] [19/19] Fetching readline-8.2.13.pkg: 100% 371 KiB 379.8kB/s 00:01
Checking integrity... done (0 conflicting)
[jellyfin] [1/19] Upgrading readline from 8.2.10 to 8.2.13...
[jellyfin] [1/19] Extracting readline-8.2.13: 100%
[jellyfin] [2/19] Upgrading python311 from 3.11.9_1 to 3.11.10...
[jellyfin] [2/19] Extracting python311-3.11.10: 100%
[jellyfin] [3/19] Upgrading py311-idna from 3.7 to 3.8...
[jellyfin] [3/19] Extracting py311-idna-3.8: 100%
[jellyfin] [4/19] Upgrading Imath from 3.1.11 to 3.1.12...
[jellyfin] [4/19] Extracting Imath-3.1.12: 100%
[jellyfin] [5/19] Upgrading shaderc from 2024.1 to 2024.2...
[jellyfin] [5/19] Extracting shaderc-2024.2: 100%
[jellyfin] [6/19] Upgrading py311-certifi from 2024.7.4 to 2024.8.30...
[jellyfin] [6/19] Extracting py311-certifi-2024.8.30: 100%
[jellyfin] [7/19] Upgrading libdrm from 2.4.122,1 to 2.4.123,1...
[jellyfin] [7/19] Extracting libdrm-2.4.123,1: 100%
[jellyfin] [8/19] Upgrading aom from 3.10.0 to 3.10.0_1...
[jellyfin] [8/19] Extracting aom-3.10.0_1: 100%
[jellyfin] [9/19] Upgrading py311-cffi from 1.17.0 to 1.17.1...
[jellyfin] [9/19] Extracting py311-cffi-1.17.1: 100%
[jellyfin] [10/19] Upgrading libjxl from 0.10.3 to 0.11.0...
[jellyfin] [10/19] Extracting libjxl-0.11.0: 100%
[jellyfin] [11/19] Upgrading libv4l from 1.23.0_4 to 1.23.0_5...
[jellyfin] [11/19] Extracting libv4l-1.23.0_5: 100%
[jellyfin] [12/19] Upgrading libnghttp2 from 1.62.1 to 1.63.0...
[jellyfin] [12/19] Extracting libnghttp2-1.63.0: 100%
[jellyfin] [13/19] Upgrading python39 from 3.9.19 to 3.9.20...
[jellyfin] [13/19] Extracting python39-3.9.20: 100%
[jellyfin] [14/19] Upgrading py311-attrs from 24.1.0 to 24.2.0...
[jellyfin] [14/19] Extracting py311-attrs-24.2.0: 100%
[jellyfin] [15/19] Upgrading ffmpeg from 6.1.2,1 to 6.1.2_1,1...
[jellyfin] [15/19] Extracting ffmpeg-6.1.2_1,1: 100%
[jellyfin] [16/19] Upgrading py311-cryptography from 42.0.8_2,1 to 42.0.8_3,1...
[jellyfin] [16/19] Extracting py311-cryptography-42.0.8_3,1: 100%
[jellyfin] [17/19] Upgrading openssl from 3.0.14,1 to 3.0.15,1...
[jellyfin] [17/19] Extracting openssl-3.0.15,1: 100%
[jellyfin] [18/19] Upgrading py311-httpx from 0.27.0_1 to 0.27.2...
[jellyfin] [18/19] Extracting py311-httpx-0.27.2: 100%
[jellyfin] [19/19] Upgrading argp-standalone from 1.5.0 to 1.5.0_1...
[jellyfin] [19/19] Extracting argp-standalone-1.5.0_1: 100%
==> Running trigger: gdk-pixbuf-query-loaders.ucl
Generating gdk-pixbuf modules cache
==> Running trigger: shared-mime-info.ucl
Building the Shared MIME-Info database cache
[tran]:
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Checking for upgrades (1 candidates): 100%
Processing candidates (1 candidates): 100%
The following 1 package(s) will be affected (of 0 checked):
Installed packages to be UPGRADED:
curl: 8.9.1_1 -> 8.10.0
Number of packages to be upgraded: 1
2 MiB to be downloaded.
[tran] [1/1] Fetching curl-8.10.0.pkg: 100% 2 MiB 1.6MB/s 00:01
Checking integrity... done (0 conflicting)
[tran] [1/1] Upgrading curl from 8.9.1_1 to 8.10.0...
[tran] [1/1] Extracting curl-8.10.0: 100%
[prom]:
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Checking for upgrades (2 candidates): 100%
Processing candidates (2 candidates): 100%
The following 1 package(s) will be affected (of 0 checked):
Installed packages to be UPGRADED:
curl: 8.9.1_1 -> 8.10.0
Number of packages to be upgraded: 1
2 MiB to be downloaded.
[prom] [1/1] Fetching curl-8.10.0.pkg: 100% 2 MiB 1.6MB/s 00:01
Checking integrity... done (0 conflicting)
[prom] [1/1] Upgrading curl from 8.9.1_1 to 8.10.0...
[prom] [1/1] Extracting curl-8.10.0: 100%
- Restart Jails:
for jail in `bastille list | awk '{print $2}' |grep -v IP ` ; do bastille restart $jail; done
- Bastille FreeBSD Jails upgrade completed!
This guide details how to upgrade a FreeBSD system hosted on a machine named “Wyse” from version 13.3-RELEASE to 13.4-RELEASE. The system manages Thin Jails using Bastille (https://bastillebsd.org/getting-started/).
- Switch to the
root user.
- Check the current FreeBSD version:
freebsd-version -kur
Expected output:
13.3-RELEASE-p6
13.3-RELEASE-p6
13.3-RELEASE-p6
- Ensure the system is fully updated for the 13.3 Release:
freebsd-update fetch install
Expected output (this step require to close popup with list of files to update):
src component not installed, skipped
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching metadata signature for 13.3-RELEASE from update2.freebsd.org... done.
Fetching metadata index... done.
...
The following files will be updated as part of updating to
13.3-RELEASE-p7:
/bin/freebsd-version
/boot/kernel/kernel
/boot/kernel/pf.ko
/lib/libnv.so.0
/usr/include/net/pfvar.h
/usr/lib/libnv.a
/usr/lib/libnv_p.a
/usr/sbin/bhyve
...
src component not installed, skipped
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching metadata signature for 13.3-RELEASE from update2.freebsd.org... done.
Fetching metadata index... done.
Inspecting system... done.
Preparing to download files... done.
Creating snapshot of existing boot environment... done.
Installing updates...
Restarting sshd after upgrade
Performing sanity check on sshd configuration.
Stopping sshd.
Waiting for PIDS: 77258.
Performing sanity check on sshd configuration.
Starting sshd.
Scanning //usr/share/certs/blacklisted for certificates...
Scanning //usr/share/certs/trusted for certificates...
Scanning //usr/local/share/certs for certificates...
done.
- Upgrade the host to
13.4-RELASE
freebsd-update upgrade -r 13.4-RELEASE
Expected output (this step prompts for confirmation before proceeding):
src component not installed, skipped
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching metadata signature for 13.3-RELEASE from update2.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Inspecting system... done.
The following components of FreeBSD seem to be installed:
kernel/generic world/base
The following components of FreeBSD do not seem to be installed:
kernel/generic-dbg world/base-dbg world/lib32 world/lib32-dbg
Does this look reasonable (y/n)? y
Fetching metadata signature for 13.4-RELEASE from update2.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Inspecting system... done.
The following components of FreeBSD seem to be installed:
kernel/generic world/base
The following components of FreeBSD do not seem to be installed:
kernel/generic-dbg world/base-dbg world/lib32 world/lib32-dbg
Does this look reasonable (y/n)? y
Fetching metadata signature for 13.4-RELEASE from update2.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Fetching 1 metadata files... done.
Fetching 1 metadata files... done.
Inspecting system... done.
Fetching files from 13.3-RELEASE for merging... done.
Preparing to download files... done.
Fetching 3257 patches.....10....20....30....40....50....60....70....80....90....100....110....120....130....140....150....160....170....180....190....200....210....220....230....240....250....260....270....280....290....300....310....320....330....340....350....360....370....380....390....400....410....420....430....440....450....460....470....480....490....500....510....520....530....540....550....560....570....580....590....600....610....620....630....640....650....660....670....680....690....700....710....720....730....740....750....760....770....780....790....800....810....820....830....840....850....860....870....880....890....900....910....920....930....940....950....960....970....980....990....1000....1010....1020....1030....1040....1050....1060....1070....1080....1090....1100....1110....1120....1130....1140....1150....1160....1170....1180....1190....1200....1210....1220....1230....1240....1250....1260....1270....1280....1290....1300....1310....1320....1330....1340....1350....1360....1370....1380....1390....1400....1410....1420....1430....1440....1450....1460....1470....1480....1490....1500....1510....1520....1530....1540....1550....1560....1570....1580....1590....1600....1610....1620....1630....1640....1650....1660....1670....1680....1690....1700....1710....1720....1730....1740....1750....1760....1770....1780....1790....1800....1810....1820....1830....1840....1850....1860....1870....1880....1890....1900....1910....1920....1930....1940....1950....1960....1970....1980....1990....2000....2010....2020....2030....2040....2050....2060....2070....2080....2090....2100....2110....2120....2130....2140....2150....2160....2170....2180....2190....2200....2210....2220....2230....2240....2250....2260....2270....2280....2290....2300....2310....2320....2330....2340....2350....2360....2370....2380....2390....2400....2410....2420....2430....2440....2450....2460....2470....2480....2490....2500....2510....2520....2530....2540....2550....2560....2570....2580....2590....2600....2610....2620....2630....2640....2650....2660....2670....2680....2690....2700....2710....2720....2730....2740....2750....2760....2770....2780....2790....2800....2810....2820....2830....2840....2850....2860....2870....2880....2890....2900....2910....2920....2930....2940....2950....2960....2970....2980....2990....3000....3010....3020....3030....3040....3050....3060....3070....3080....3090....3100....3110....3120....3130....3140....3150....3160....3170....3180....3190....3200....3210....3220....3230....3240....3250... done.
Applying patches...
Fetching 197 files... ....10....20....30....40....50....60....70....80....90....100....110....120....130....140....150....160....170....180....190... done.
Attempting to automatically merge changes in files... done.
The following changes, which occurred between FreeBSD 13.3-RELEASE and
FreeBSD 13.4-RELEASE have been merged into /etc/ssh/sshd_config:
--- current version
+++ new version
@@ -103,11 +103,11 @@
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
#ChrootDirectory none
#UseBlacklist no
-#VersionAddendum FreeBSD-20240104
+#VersionAddendum FreeBSD-20240806
# no default banner path
#Banner none
# override default of no subsystems
Does this look reasonable (y/n)? y
To install the downloaded upgrades, run "/usr/sbin/freebsd-update install".
- Install 13.4-RELEASE
freebsd-update install
Expected output:
src component not installed, skipped
Creating snapshot of existing boot environment... done.
Installing updates...
Restarting sshd after upgrade
Performing sanity check on sshd configuration.
Stopping sshd.
Waiting for PIDS: 19285, 19285.
Performing sanity check on sshd configuration.
Starting sshd.
Scanning //usr/share/certs/blacklisted for certificates...
Scanning //usr/share/certs/trusted for certificates...
Scanning //usr/local/share/certs for certificates...
done.
- Reboot the system:
shutdown -r now
- After rebooting,
freebsd-update needs to be run again to install the new userland components:
freebsd-update install
- Upgrade packages:
pkg upgrade -y
Expected output:
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
root@wyse:~ # pkg upgrade
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Checking for upgrades (1 candidates): 100%
Processing candidates (1 candidates): 100%
The following 1 package(s) will be affected (of 0 checked):
Installed packages to be UPGRADED:
curl: 8.9.1_1 -> 8.10.0
Number of packages to be upgraded: 1
2 MiB to be downloaded.
[1/1] Fetching curl-8.10.0.pkg: 100% 2 MiB 1.6MB/s 00:01
Checking integrity... done (0 conflicting)
[1/1] Upgrading curl from 8.9.1_1 to 8.10.0...
[1/1] Extracting curl-8.10.0: 100%
- Finally, reboot into 13.4-RELEASE:
shutdown -r now
- FreeBSD upgrade completed!
Before Jails update, execute following command to switch to root account:
- Update FreeBSD release in Bastille:
bastille bootstrap 13.3-RELEASE update
Output:
Bootstrapping FreeBSD distfiles...
Bootstrap appears complete.
Bootstrap successful.
See 'bastille --help' for available commands.
src component not installed, skipped
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching metadata signature for 13.3-RELEASE from update2.freebsd.org... done.
Fetching metadata index... done.
Inspecting system... done.
Preparing to download files... done.
The following files will be updated as part of updating to
13.3-RELEASE-p6:
/bin/freebsd-version
/lib/libnv.so.0
/usr/bin/calendar
/usr/lib/libnv.a
/usr/lib/libnv_p.a
/usr/sbin/bhyve
src component not installed, skipped
Installing updates...Scanning /usr/local/bastille/releases/13.3-RELEASE/usr/share/certs/blacklisted for certificates...
Scanning /usr/local/bastille/releases/13.3-RELEASE/usr/share/certs/trusted for certificates...
done.
- Update packages in Jails:
- use
dry mode to view proposed changes
for jail in `bastille list | awk '{print $2}' |grep -v IP ` ; do pkg -j $jail upgrade -n ; done
Output:
Updating FreeBSD repository catalogue...
[adguardhome] Fetching data.pkg: 100% 7 MiB 2.5MB/s 00:03
Processing entries: 100%
FreeBSD repository update completed. 34415 packages processed.
All repositories are up to date.
Checking for upgrades (2 candidates): 100%
Processing candidates (2 candidates): 100%
The following 2 package(s) will be affected (of 0 checked):
Installed packages to be UPGRADED:
curl: 8.9.1 -> 8.9.1_1
perl5: 5.36.3_1 -> 5.36.3_2
Number of packages to be upgraded: 2
16 MiB to be downloaded.
Updating FreeBSD repository catalogue...
[jellyfin] Fetching data.pkg: 100% 7 MiB 3.8MB/s 00:02
...
for jail in `bastille list | awk '{print $2}' |grep -v IP ` ; do pkg -j $jail upgrade -y ; done
- Restart all Jails:
for jail in `bastille list | awk '{print $2}' |grep -v IP ` ; do bastille restart $jail ; done
- Bastille Jails Update has been completed!