i want to download all security and errata patches offline packages for freebsd14 , freebsd15 ...? how to do that ?
(freebsd14 used freebsd-update fetch xxxxxx,
I can't say for sure, didn't use
freebsd-update(8) for many years. Perhaps expose
/var/db/freebsd-update/ of the downloaded updates to the offline systems in some way.
freebsd15 used pkg fetch -u freebsd-base)
I do this with 3rd party packages, the same can applied to FreeBSD-pkgbase.
Create a directory to store the pkgbase packages, fetch repository catalog files, fetch pkgbase upgrade packages:
Code:
# mkdir /var/cache/freebsd-packages/
# cd /var/cache/freebsd-packages/
## The following fetch(1) part can be scripted ##
# fetch https://pkg.freebsd.org/FreeBSD:15:amd64/base_release_0/data.pkg
# fetch https://pkg.freebsd.org/FreeBSD:15:amd64/base_release_0/meta
# fetch https://pkg.freebsd.org/FreeBSD:15:amd64/base_release_0/meta.conf
The right repository (here "base_release_0") can be found in
/etc/pkg/FreeBSD.conf, "FreeBSD-base: url".
Download pkgbase updates:
Code:
# env PKG_CACHEDIR=/var/cache/freebsd-packages/ pkg upgrade -r FreeBSD-base -F
Clean up symlinks in the pkgbase cache directory:
Code:
# find /var/cache/freebsd-packages/ -type l -delete
The pkgbase cachedir can be exported via, e.g., NFS (create on the target system the cachedir,
mount_nfs(8) on the cachedir directory), or create a portable media, like a USB stick.
Create a NFS exported local pkgbase repository configuration file on target system:
/usr/local/etc/pkg/repos/local-pkgbase.conf
Code:
local-pkgbase: {
url: "file:///var/cache/freebsd-packages"
enabled: yes
}
Upgrade offline pkgbase system:
Code:
# pkg upgrade -r local-pkgbase
Create a portable, on USB disk, local pkgbase repository (assuming USB stick is mounted on
/mnt:
Code:
# cp -a /var/cache/freebsd-packages /mnt
# mkdir /mnt/repos
(create below local-pkgbase.conf file)
/mnt/repos/local-pkgbase.conf
Code:
local-pkgbase: {
url: "file:///mnt/freebsd-packages"
enabled: yes
}
Upgrade on offline target system (assuming USB disk is mounted on
/mnt:
Code:
# pkg -R /mnt/repos upgrade -r local-pkgbase