skill(freebsd): tighten cross-release override — one-time, IGNORE_OSVERSION, date YYYY
Four corrections from Codex review: 1. One-time caveat: OSVERSION/IGNORE_OSVERSION is for the boundary only. Remove it after reboot — persisting would spoof the wrong version on the next upgrade and silently pull mismatched packages. 2. IGNORE_OSVERSION=yes as the canonical idiom (does not require knowing the exact __FreeBSD_version number). 3. ABI="FreeBSD:15:amd64" marked as redundant (it is already the default on 15.x; OSVERSION is the actual lever). 4. Date format: DD.mon.YY → DD.mon.YYYY (matches eu-date-format convention). Live BE renamed to 15.1-upgrade-25.jun.2026.
This commit is contained in:
parent
aebc225ddc
commit
524a3c3153
1 changed files with 15 additions and 10 deletions
|
|
@ -77,14 +77,14 @@ pkg update -f && pkg upgrade # ports packages (separate from base here)
|
|||
puts you back exactly where you were.
|
||||
|
||||
```sh
|
||||
bectl create MAJOR.MINOR-upgrade-DD.mon.YY
|
||||
# example: 15.1-upgrade-25.jun.26
|
||||
bectl create MAJOR.MINOR-upgrade-DD.mon.YYYY
|
||||
# example: 15.1-upgrade-25.jun.2026
|
||||
bectl list | grep upgrade
|
||||
```
|
||||
|
||||
Name convention: `<target-release>-upgrade-<EU date>` — operator-facing,
|
||||
readable at a glance. pkg does NOT auto-create ZFS boot environments;
|
||||
this must be done manually.
|
||||
Name convention: `<target-release>-upgrade-<EU date (DD.mon.YYYY)>` —
|
||||
operator-facing, readable at a glance. pkg does NOT auto-create ZFS boot
|
||||
environments; this must be done manually.
|
||||
|
||||
3. **Upgrade base** (by the method from step 0):
|
||||
- **pkgbase**: a pkgbase host already has a `FreeBSD-base` repo — **inspect
|
||||
|
|
@ -96,11 +96,16 @@ pkg update -f && pkg upgrade # ports packages (separate from base here)
|
|||
`pkg upgrade -n` to confirm 15.1 base packages are actually offered, then
|
||||
`pkg upgrade` (base + ports together).
|
||||
|
||||
**Cross-release override:** pkgbase refuses to fetch packages for a
|
||||
newer release while running the old userland. Override with:
|
||||
`env OSVERSION=1501000 ABI="FreeBSD:15:amd64" pkg update -f` then use
|
||||
the same env for `pkg upgrade -n` and the real `pkg upgrade`.
|
||||
(Replace `1501000` with the target release's __FreeBSD_version.)
|
||||
**Cross-release override (one-time, for the boundary only):** pkgbase
|
||||
refuses to fetch packages for a newer release while running the old
|
||||
userland. The standard bypass is `IGNORE_OSVERSION=yes`. Alternatively,
|
||||
spoof the target release with `OSVERSION=<target>` (ABI is already the
|
||||
default and can be omitted):
|
||||
`env IGNORE_OSVERSION=yes pkg update -f` then use the same env for
|
||||
`pkg upgrade -n` and the real `pkg upgrade`.
|
||||
**Remove this override after reboot** — once `freebsd-version` shows the
|
||||
new release, persisting it would spoof the wrong version on the NEXT
|
||||
upgrade and silently pull mismatched packages.
|
||||
- **freebsd-update**: `freebsd-update -r <target> upgrade` then
|
||||
`freebsd-update install`.
|
||||
Either way the new kernel is staged; the system runs the old one until reboot.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue