New FreeBSD pkgbase-update(8) Tool

fyi,
root@myfreebsd:~/Scripts # cat _good_point_release
Code:
#!/bin/sh
#URL="https://raw.githubusercontent.com/freebsd/freebsd-src/refs/heads/releng/15.1/sys/conf/newvers.sh"
CURRENT_VER=$(uname -r | cut -d- -f1)
URL="https://raw.githubusercontent.com/freebsd/freebsd-src/refs/heads/releng/$CURRENT_VER/sys/conf/newvers.sh"

# 1. Fetch data from GitHub and evaluate assignments safely
REMOTE_DATA=$(wget -qO- "$URL")
eval "$(echo "$REMOTE_DATA" | grep -E '^(TYPE|REVISION|BRANCH)=')"

# 2. Get local version
LOCAL_VER=$(freebsd-version -u)

# 3. Format remote version exactly like local
REMOTE_VER="${REVISION}-${BRANCH}"

# 4. Print outputs
echo "Local Kernel:   $LOCAL_VER"
echo "GitHub Version: $TYPE $REMOTE_VER"

# 5. Pure shell string manipulation (Zero seds)
# Extracts everything after the last "-p"
LOCAL_PATCH="${LOCAL_VER##*-p}"
REMOTE_PATCH="${REMOTE_VER##*-p}"

# If no "-p" existed, the variable won't change; reset to 0
[ "$LOCAL_PATCH" = "$LOCAL_VER" ] && LOCAL_PATCH=0
[ "$REMOTE_PATCH" = "$REMOTE_VER" ] && REMOTE_PATCH=0

# 6. Final comparison
if [ "$REMOTE_PATCH" -gt "$LOCAL_PATCH" ]; then
    echo "Status:         NEWER AVAILABLE"
else
    echo "Status:         Up to date"
fi

root@myfreebsd:~/Scripts # ./_good_point_release
Local Kernel: 15.1-RELEASE-p4
GitHub Version: FreeBSD 15.1-RELEASE-p6
Status: NEWER AVAILABLE
root@myfreebsd:~/Scripts #
 
You update everything which is not in /usr/local in one step.
That is /boot (kernel) ; /bin ; /usr/bin ; /etc
Then you update /usr/local (pkg) in second step.
This procedure keeps you away from broken systems in all cases.

fyi,
Code:
rm -vfR /usr/obj/*
rm -vfR /usr/obj/.??*
cd      /usr/src/
git pull
make clean
make -j 10  buildworld   KERNCONF=GENERIC
make -j 10  buildkernel  KERNCONF=GENERIC
cd /usr/src
make installkernel
etcupdate -p
make installworld
etcupdate -B
 
here is a better way to find if efi boot is used, what partition it used, and the loader path
i tested it on 14.5 14.3 15.1 both arm64 and amd64 (4 hosts)
it works on all but by no means is an extensive test
it uses efivar, kenv, geom
sh:
#!/bin/sh
  [...]
IS_EFI=$(kenv -q loader.efi)
if [ "$IS_EFI" != "1" ]; then
 echo "NO EFI"
 exit 1
fi
   [...]
Is there any particular reason why you have used kenv -q loader.efi and not sysctl -n machdep.bootmethod ?

For me kenv(1) doesn't work; on my 14.4-RELEASE, ZFS on root I get:
Code:
# IS_EFI=$( kenv -q loader.efi )
# if [ "$IS_EFI" != "1" ]; then
> echo "NO EFI"
> fi
NO EFI
# sysctl -n machdep.bootmethod
UEFI
 
does not work on aarch64 (oracle cloud vm, utm/qemu vm, radxa board)
sysctl machdep.bootmethod
sysctl: unknown oid 'machdep.bootmethod'

looks like both have to be checked
LE: is your loader.efi older than 14.4 ?
i have an older 13.2 box which does not have loader.efi but the 14.3 one has
 
so part 1,
efibootmgr -v
Code:
Boot to FW : false
BootCurrent: 0003
Timeout    : 0 seconds
BootOrder  : 0000, 000A, 0001, 0007, 0005, 0003, 000B, 0009
 Boot0000* Windows NVMe Fix HD(5,GPT,2387ceb9-0ed4-41d3-a7ea-dedd2405b0a2,0x3b800800,0x1e0800)/File(\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI)
                               nda0p5:/EFI/MICROSOFT/BOOT/BOOTMGFW.EFI (null)
 Boot000A* ARTIX_XXX HD(5,GPT,2387ceb9-0ed4-41d3-a7ea-dedd2405b0a2,0x3b800800,0x1e0800)/File(\EFI\ARTIX_XXX\GRUBX64.EFI)
                        nda0p5:/EFI/ARTIX_XXX/GRUBX64.EFI (null)
 Boot0001* Redcore_XXX HD(5,GPT,2387ceb9-0ed4-41d3-a7ea-dedd2405b0a2,0x3b800800,0x1e0800)/File(\EFI\REDCORE_XXX\GRUBX64.EFI)
                          nda0p5:/EFI/REDCORE_XXX/GRUBX64.EFI (null)
 Boot0007* Garuda Linux New HD(5,GPT,2387ceb9-0ed4-41d3-a7ea-dedd2405b0a2,0x3b800800,0x1e0800)/File(\EFI\GARUDA LINUX NEW\GRUBX64.EFI)
                               nda0p5:/EFI/GARUDA LINUX NEW/GRUBX64.EFI (null)
 Boot0005* NixOS-boot-efi HD(5,GPT,2387ceb9-0ed4-41d3-a7ea-dedd2405b0a2,0x3b800800,0x1e0800)/File(\EFI\NIXOS-BOOT-EFI\GRUBX64.EFI)
                             nda0p5:/EFI/NIXOS-BOOT-EFI/GRUBX64.EFI (null)
+Boot0003* UEFI:  USB, Partition 1 PciRoot(0x0)/Pci(0x14,0x0)/USB(0x8,0x0)/USB(0x0,0x0)/HD(1,GPT,409ddb89-6e5d-11f0-8b59-047c16075696,0x28,0x82000)
                                  VenHw(2d6447ef-3bc9-41a0-ac19-4d51d01b4ce6,3000350030003100630037003500640062003100330065006600390065003100370033006400630030006600370036003000660030003300390065003100640061003100360032003600610032003700390037003400610033003400330064006600640035006200390036006200610064003100610032006100330035003600360032006500390030003000300030003000300030003000300030003000300030003000300030003000300030003000350063003700350034006100610065006600660038006400300039003100300039003100350035003800310030003700360036003200630033006100300062000000)
 Boot000B* Hard Drive BBS(HD,,0x0)/VenHw(5ce8128b-2cec-40f0-8372-80640e3dc858,0200)
 Boot0009* USB HDD BBS(HD,,0x0)/VenHw(5ce8128b-2cec-40f0-8372-80640e3dc858,0900)


Unreferenced Variables:
 Boot0004* Windows Boot Manager HD(1,GPT,67820dce-b93a-4f65-8889-54ae568398dd,0x800,0x32000)/File(\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI)
 Boot0002* USB HDD BBS(HD,,0x0)/VenHw(5ce8128b-2cec-40f0-8372-80640e3dc858,0900)
 Boot000F* UEFI:  USB, Partition 1 PciRoot(0x0)/Pci(0x14,0x0)/USB(0x8,0x0)/USB(0x0,0x0)/HD(1,GPT,409ddb89-6e5d-11f0-8b59-047c16075696,0x28,0x82000)
                                  VenHw(2d6447ef-3bc9-41a0-ac19-4d51d01b4ce6,3000350030003100630037003500640062003100330065006600390065003100370033006400630030006600370036003000660030003300390065003100640061003100360032003600610032003700390037003400610033003400330064006600640035006200390036006200610064003100610032006100330035003600360032006500390030003000300030003000300030003000300030003000300030003000300030003000300030003000350063003700350034006100610065006600660038006400300039003100300039003100350035003800310030003700360036003200630033006100300062000000)
 
Code:
if [ "$IS_EFI" != "1" ]; then
 echo "NO EFI"
 exit 1
fi

First - I install all FreeBSD systems as Auto (ZFS) with BIOS+GELI option - I want to have a 'backup' booting option if the default does not works for any reasons - that means that checking machdep.bootmethod is pointless here - both need to be updated. Also - even if You use bsdinstall(8) installer and install FreeBSD on ZFS mirror - the efibootmgr(8) will create only ONE entry in UEFI - for first disk - while two should be created (and I also create them manually after installation) - so You can not rely on efibootmgr(8) for UEFI partitions ... I already added BIOS bootcode updating to latest commit here - https://github.com/vermaden/pkgbase-update - I also need to cover multiple disks of boot pool like ZFS mirror or raidz setups - which is not hard to be honest - I just need to implement it.

Option to update userland?

Its like that:
Code:
# pkg upgrade -r FreeBSD-ports

Because the FreeBSD-ports-kmods was already covered by pkgbase-update(8) tool.

Nothing more is needed. I also encourage to install and use sysutils/checkrestart after upgrade because it will show what 'older versions' are still running - so You will know what to restart - and if kernel was installed - then reboot is needed anyway.
 
part 2,
efivar -n cfee69ad-a0de-47a9-93a8-f63106f8ae99-LoaderDev
Code:
cfee69ad-a0de-47a9-93a8-f63106f8ae99-LoaderDev
0000: 50 00 63 00 69 00 52 00 6f 00 6f 00 74 00 28 00 
0010: 30 00 78 00 30 00 29 00 2f 00 50 00 63 00 69 00 
0020: 28 00 30 00 78 00 31 00 34 00 2c 00 30 00 78 00 
0030: 30 00 29 00 2f 00 55 00 53 00 42 00 28 00 30 00 
0040: 78 00 38 00 2c 00 30 00 78 00 30 00 29 00 2f 00 
0050: 55 00 53 00 42 00 28 00 30 00 78 00 30 00 2c 00 
0060: 30 00 78 00 30 00 29 00 2f 00 48 00 44 00 28 00 
0070: 31 00 2c 00 47 00 50 00 54 00 2c 00 34 00 30 00 
0080: 39 00 44 00 44 00 42 00 38 00 39 00 2d 00 36 00 
0090: 45 00 35 00 44 00 2d 00 31 00 31 00 46 00 30 00 
00a0: 2d 00 38 00 42 00 35 00 39 00 2d 00 30 00 34 00 
00b0: 37 00 43 00 31 00 36 00 30 00 37 00 35 00 36 00 
00c0: 39 00 36 00 2c 00 30 00 78 00 32 00 38 00 2c 00 
00d0: 30 00 78 00 38 00 32 00 30 00 30 00 30 00 29 00 
00e0: 00 00
 
part 3,
efivar -n cfee69ad-a0de-47a9-93a8-f63106f8ae99-LoaderPath
Code:
cfee69ad-a0de-47a9-93a8-f63106f8ae99-LoaderPath
0000: 5c 00 45 00 46 00 49 00 5c 00 42 00 4f 00 4f 00 
0010: 54 00 5c 00 42 00 4f 00 4f 00 54 00 58 00 36 00 
0020: 34 00 2e 00 45 00 46 00 49 00 00 00
 
efivar --binary / easier to read

also if you need to catch the output in a shell var / file pipe the output thru tr -d '\0' because the internal representation seems to be kind of utf-16
 
Final part,
gpart list | grep -B 12 -i "409ddb89-6e5d-11f0-8b59-047c16075696"
Code:
fwsectors: 63
last: 488570846
first: 40
entries: 128
scheme: GPT
Providers:
1. Name: da1p1
   Mediasize: 272629760 (260M)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 20480
   Mode: r0w0e0
   efimedia: HD(1,GPT,409ddb89-6e5d-11f0-8b59-047c16075696,0x28,0x82000)
   rawuuid: 409ddb89-6e5d-11f0-8b59-047c16075696
 
For covecat,
This is way too much,
sysctl -b kern.geom.confxml | awk -F'[<>]' '/<name>/ {n=$3} /<efimedia>/ {print "/dev/" n "\t" $3}'
Code:
/dev/da1p3    HD(3,GPT,40a9e4f1-6e5d-11f0-8b59-047c16075696,0x1ca00028,0x7effb0)
/dev/da1p2    HD(2,GPT,40a2014f-6e5d-11f0-8b59-047c16075696,0x82028,0x1c97e000)
/dev/da1p1    HD(1,GPT,409ddb89-6e5d-11f0-8b59-047c16075696,0x28,0x82000)
/dev/da0p3    HD(3,GPT,f21fb3cc-b45f-4f13-8337-e4a59d47fe26,0x145000800,0x663f0000)
/dev/da0p2    HD(2,GPT,c5ba7b87-025b-11ef-b2dd-047c16075696,0x1ab3f0800,0x10f60e7d8)
/dev/da0p1    HD(1,GPT,15ff160e-2823-11f1-8edd-047c16075696,0x28,0x145000000)
/dev/ada0p1    HD(1,GPT,ea6847c2-7afc-4767-b354-fc51d0b566d2,0x800,0x74706000)
/dev/ada2p7    HD(7,GPT,575ae7cb-b855-11f1-9e7b-047c16075696,0x73550800,0x3e6ca8f)
/dev/ada2p6    HD(6,GPT,32d4d4ba-b855-11f1-9e7b-047c16075696,0x6f950800,0x3c00000)
/dev/ada2p5    HD(5,GPT,0c390090-b855-11f1-9e7b-047c16075696,0x69550800,0x6400000)
/dev/ada2p4    HD(4,GPT,d852142c-77b7-4eea-b388-d6d47fc5287f,0x53400800,0x16150000)
/dev/ada2p3    HD(3,GPT,7ffc5420-2eb0-11f1-95bd-047c16075696,0x42e00800,0x10600000)
/dev/ada2p2    HD(2,GPT,fd0632e1-2801-11f1-a89a-047c16075696,0x3ea00800,0x4400000)
/dev/ada2p1    HD(1,GPT,f0f9236a-2801-11f1-a89a-047c16075696,0x800,0x3ea00000)
/dev/ada1p5    HD(5,GPT,78c3ef7c-9fde-11f1-a34a-047c16075696,0x3a385000,0x3c000000)
/dev/ada1p4    HD(4,GPT,fd7b022a-2469-468b-a171-e95fe0d97f5a,0x3a1f3000,0x192000)
/dev/ada1p3    HD(3,GPT,55f88675-e19b-4fb6-a36d-b8bf96280167,0x3a800,0x3a1b8800)
/dev/ada1p2    HD(2,GPT,a7717aee-1268-4f8e-9eb6-77c2a314fffb,0x32800,0x8000)
/dev/ada1p1    HD(1,GPT,1c57199b-cd5d-4289-9119-3a2ad3f24456,0x800,0x32000)
/dev/ada3p2    HD(2,GPT,bac56319-a22c-11f1-b01d-047c16075696,0x1da00028,0x56400000)
/dev/ada3p1    HD(1,GPT,6a3ca63c-a209-11f1-854e-047c16075696,0x28,0x1da00000)
/dev/nda0p5    HD(5,GPT,2387ceb9-0ed4-41d3-a7ea-dedd2405b0a2,0x3b800800,0x1e0800)
/dev/nda0p4    HD(4,GPT,d8a9fcb0-2e59-11f1-9c53-047c16075696,0x33800028,0x8000000)
/dev/nda0p3    HD(3,GPT,b7b03471-2c51-11f1-9a94-047c16075696,0x23800028,0x10000000)
/dev/nda0p2    HD(2,GPT,9ac49b77-2c51-11f1-9a94-047c16075696,0x1b800028,0x8000000)
/dev/nda0p1    HD(1,GPT,646824bd-2818-11f1-8edd-047c16075696,0x28,0x1b800000)
 
Fun that now many people cares for the update of the loaders, and not anyone, but some of the most knowledgeable ones...

Because the FreeBSD-ports-kmods was already covered by pkgbase-update(8) tool.
Well, there is nothing to do once the upgrade is done.
Code:
FreeBSD-ports-kmods: {
  url: "pkg+https://pkg.FreeBSD.org/${ABI}/kmods_quarterly_${VERSION_MINOR}",
  ...
  }
The problem here is that there are not yet kmods repos for 15.2 as I outlined after testing with my own tool. See here: https://pkg.freebsd.org/FreeBSD:15:amd64/
 
The problem here is that there are not yet kmods repos for 15.2 (...)

That is FreeBSD project fault - not users one.

Official instructions say to upgrade also FreeBSD-ports-kmods repo packages ... I wonder why they tell users that and do not provide needed packages/repo ...
 
Excellent and necessary utility, @vermaden.
Somehow in 8 years it is still beta.
This reminds me of the discussions surrounding Wayland. I am going to put together a list of questions and answers, and you could change "Wayland" for "pkgbase" and "X11" for "sets" (with one crucial difference: Wayland was created by Evil Corp, whereas pkgbase was not).
  • Is Wayland currently better than X11? No, you can search for past and recent performance benchmarks.
  • So, why does Wayland exist? Because X11 was designed in the 1980s, back when a computer’s graphics stack was less significant and lacked the technological advancements we have today.
  • But Wayland was launched many years ago and still has not surpassed X11, why not just wait until those promises become reality? Because users and developers do not want to replace something that works now with something that might be better in the future. The problem is that this future can never arrive as long as Wayland remains merely an alternative, applications continue to be designed with X11 in mind and Wayland does not get enough testing.
  • Does that justify discontinuing X11? No. Ideally, both should coexist, allowing each user to choose what they prefer, even if developers are not exactly happy about having to adapt their applications to two different protocols. However, the people behind Wayland do not see this like me, they have no intention of keeping X11 around.
  • So, if I support Wayland, will it cure cancer? No. Wayland is not the pinnacle of graphics stacks, even when it reaches full maturity, it will still have its own set of issues, though, in theory, fewer than X11.
In short: the idea behind pkgbase is good, but its current implementation is far from ideal and it is still a tech preview. However, if we turn this into a war, with everyone firing from their own trenches, we won’t achieve anything useful, we will simply die.
 
One of Murphy's laws states:
“A workaround is always the most permanent solution.”

The FreeBSD project has always prided itself on the fact that all changes are implemented slowly but are well thought out.
But here, a workaround was implemented. And it looks like this workaround will remain in place for quite some time. I believe that when designing the tool, it should have been possible to update pkgbase across multiple releases, not just within a single release. During the design phase, it should have been assumed that working with pkgbase should have the same functionality as working with freebsd-update in the old base system solution.

The introduction of pkgbase only improved system updates within a single release. Nothing more. None of the other capabilities that the freebsd-update tool had. And this raises a simple question: “Have we moved forward, or have we taken a step backward with this solution?” I never expected the project to set us on a path to nowhere by introducing pkgbase.
 
Wayland" for "pkgbase" and "X11" for "sets".

I get Your point but that is bad example. Wayland is less good then X11 - its still slower (after all these years of development) - it still has higher latency then X11 - it still does not cover all X11 features and so on. X11 was being even officially killed by some Red Hat employees - the same ones that forced Wayland into everything - after XLibre happened I sleep well and I know that X11 has a bright future.

PKGBASE improves and simplifies upgrade time when You type the right command. While freebsd-update(8) first wastes hours fetching 30000+ binary diffs - and then wasting more time applying these binary diffs - PKGBASE just upgrades 200 packages - fast and predictable - at least now in 15.2-RELEASE upcoming. Not to mention all these manual interactive changes that freebsd-update(8) forced You at the end. So yes - PKGBASE is a nice improvement ... it just lacks tooling.

In short: the idea behind pkgbase is good, but its current implementation is far from ideal and it is still a tech preview.

I really regret that FreeBSD project did not used dedicated pkgbase(8) tool for FreeBSD Base System and leave pkg(8) just like it was for 3rd party packages from FreeBSD Ports. That single decision alone will solve many problems and misunderstandings. I generally assumed that people behind PKGBASE concept had everything 'think-out' and they only needed to implement it ... I believe my assumption was wrong and even Colin proved to me when he replied in the FreeBSD Mailing Lists that it was forgotten to find a way to do 'minor' FreeBSD upgrades like from 15.0 to 15.1 in a PKGBASE world ... and I believe another such area is 'tooling' behind PKGBASE upgrade process between releases.

It also reminded me of why Docker become so popular while being less secure and less good solution then FreeBSD Jails - it was all about TOOLING. FreeBSD Jails - and especially VNET ones are really great - but there is just 'limited' jls(8) that does not show VNET IPs or poweroff off Jails and jail(8) command and jail.conf(5) config. You do 95% of the stuff in vi(1) in the configs ... the tools are really limited. Even check Solaris/Illumos Zones with its zonecfg(1M) and zoneadm(1M) tools. Same problem is here now with PKGBASE 'tooling' for upgrading process between both minor and major FreeBSD versions ... and its not better for 3rd party packages. If You want to 'just' upgrade the 3rd party packages - this is the command if You use PKGBASE system: # pkg upgrade -r FreeBSD-ports -r FreeBSD-ports-kmods ...

... and its often that a lot of these tools are available - they are just ignored and not used. Take my jmore(8) Jails listing and manager tool. Its different then BastilleBSD or iocage that it does not need any organized way of doing Jails - its fully compatible with 'plain' Jails configured in jail.conf(5) file - it is BSD licensed ... but ignored.

Code:
# jls  
   JID  IP Address      Hostname                      Path

# jmore -h       
usage:
  jmore              list jail(8) containers
  jmore -a           list jail(8) containers with all IP(s)
  jmore -d INTERVAL  run 'jmore' every INTERVAL seconds like top(1)
  jmore -h           show help
  jmore --help       show help
  jmore help         show help
  jmore version      show version

manage:
  jmore <JAILNAME> start
  jmore <JAILNAME> restart
  jmore <JAILNAME> stop
  jmore <JAILNAME> status
  jmore <JAILNAME> console
  jmore <JAILNAME> shell
  jmore <JAILNAME> jexec

shorts:
  jmore <JAILNAME> u   UP ------> alias for start
  jmore <JAILNAME> d   DOWN ----> alias for stop
  jmore <JAILNAME> r   RESTART -> alias for restart
  jmore <JAILNAME> c   CONSOLE -> alias for console|shell|jexec
  jmore <JAILNAME> s   STATUS --> alias for status

# jmore
      JAIL JID CPU/% RAM/mb TYPE VER    DIR                  IFACE  IP(s)      
   classic   -   0.0    0.0 std  13.2-R /jail/classic        em0    10.0.0.199 
  ctld-two   -   0.0    0.0 vnet 13.2-R /jail/ctld-two       ${if}b -          
      ctld   -   0.0    0.0 vnet 13.2-R /jail/ctld           ${if}b -          
  fbsdjail   -   0.0    0.0 std  13.1-R /jail/fbsdjail       wlan0  10.0.0.43  
     iscsi   -   0.0    0.0 vnet 13.2-R /jail/iscsi          ${if}b -          
 joudriere   -   0.0    0.0 vnet 14.3-R /jail/joudriere      ${if}b -          
  kerberos   -   0.0    0.0 vnet -      [GONE]/jail/kerberos ${if}b -          
 minecraft   -   0.0    0.0 std  14.2-R /jail/minecraft      em0    10.0.0.210 
     minio   -   0.0    0.0 std  14.0-R /jail/minio          em0    10.0.0.133 
      nfsd   -   0.0    0.0 vnet 14.1-R /jail/nfsd           ${if}b -          
     other   -   0.0    0.0 std  14.1-R /jail/other          em0    10.0.0.199 
   pkgbase   -   0.0    0.0 vnet 14.3-R /jail/pkgbase        ${if}b -          
 sambajail   -   0.0    0.0 vnet 14.1-R /jail/sambajail      ${if}b -          
     unfs3   -   0.0    0.0 vnet 14.1-R /jail/unfs3          ${if}b -          

# jmore classic u
Starting jails: classic.

# jmore ctld u   
Starting jails: ctld.

# jmore ctld c
ctld # exit

# jmore          
      JAIL JID CPU/% RAM/mb TYPE VER    DIR                  IFACE     IP(s)      
   classic   1   0.1   18.0 std  13.2-R /jail/classic        em0       10.0.0.199 
  ctld-two   -   0.0    0.0 vnet 13.2-R /jail/ctld-two       ${if}b    -          
      ctld   2   1.4   18.0 vnet 13.2-R /jail/ctld           epair110b 10.1.1.110 
  fbsdjail   -   0.0    0.0 std  13.1-R /jail/fbsdjail       wlan0     10.0.0.43  
     iscsi   -   0.0    0.0 vnet 13.2-R /jail/iscsi          ${if}b    -          
 joudriere   -   0.0    0.0 vnet 14.3-R /jail/joudriere      ${if}b    -          
  kerberos   -   0.0    0.0 vnet -      [GONE]/jail/kerberos ${if}b    -          
 minecraft   -   0.0    0.0 std  14.2-R /jail/minecraft      em0       10.0.0.210 
     minio   -   0.0    0.0 std  14.0-R /jail/minio          em0       10.0.0.133 
      nfsd   -   0.0    0.0 vnet 14.1-R /jail/nfsd           ${if}b    -          
     other   -   0.0    0.0 std  14.1-R /jail/other          em0       10.0.0.199 
   pkgbase   -   0.0    0.0 vnet 14.3-R /jail/pkgbase        ${if}b    -          
 sambajail   -   0.0    0.0 vnet 14.1-R /jail/sambajail      ${if}b    -          
     unfs3   -   0.0    0.0 vnet 14.1-R /jail/unfs3          ${if}b    -          

# jls  
   JID  IP Address      Hostname                      Path
     1  10.0.0.199      classic                       /jail/classic
     2                  ctld                          /jail/ctld

... and pkgbase-update(8) will also be ignored.

Regards,
vermaden
 
Back
Top