- [⬆ вверх]
- AWK.md
- FreeBSD — кратко о нём..md
- GELI Ключ без пароля.md
- IDE под твои задачи.md
- ZELLIJ + KITTY твоё оружие в терминальной войне.md
- ZFS Экспорт и импорт пулов.md
- gpart show и монтирование ext2 ext3 ext4.md
- nmdm.md
- nvim.md
- Виснет traefik на FreeBSD в jail?.md
- Где располагать пользовательские скрипты.md
- Давай качайся!.md
- Как запоролить host в traefik.md
- Как настроить rc.d скрипт для demon в jail.md
- Как пробросить $DISPLAY по ssh.md
- Как ставить пакеты из портов, чтобы pgk их видел..md
- Обновление FreeBSD.md
- Обновление jail classic.md
- Отключение загрузки video драйверов.md
- Очистка дисков и создание RAID.md
- Разница между rc.conf и sysctl.conf.md
- Специфично для FreeBSD переменные окружения.md
- Управление звуковыми выходами.md
- Управление кодом возврата в bash.md
- Установить terminfo для Alacritty.md
- Установить описание терминала xterm-kitty.md
Если ты получил при обновлении:
Newer FreeBSD version for package pkg: To ignore this error set IGNORE_OSVERSION=yes
- package: 1403000
- running userland: 1402000
Проверь внутри jail
jexec proxy uname -U
jexec proxy freebsd-version -u
jexec proxy file /bin/sh
jexec proxy ls /usr/local
Скорее всего версии с хостовой машиной расходятся, по этому и пишет о расхождении.
Почему так вышло
Ты обновил jail раньше времени, без upgrade → часть файлов осталась от 14.2.
freebsd-update не умеет нормально чинить jail с неполным world.
Он просто говорит «14.3 уже стоит».
Как в ТВОЁМ случае обновлять jail правильно
1. Обновить userland jail через freebsd-update
freebsd-update -b /usr/local/jails/containers/<jail> fetch install
Только так.
Но это работает только при совпадении RELEASE, т.е. 14.3→14.3-pX.
Если нужно обновить RELEASE jail (14.2 → 14.3)
В classic jail freebsd-update НЕ обновляет release
Он обновляет только патчи, не делает release-upgrade как в хосте.
Поэтому правильный способ ровно такой же, как при создании jail:
Правильное обновление RELEASE для classic jail (твоя схема)
1. Скачай новый base.txz
fetch https://download.freebsd.org/releases/amd64/14.3-RELEASE/base.txz -o /tmp/base.txz
2. Останови jail
service jail stop <jail>
3. Раскатай новый world поверх старого (НЕ трогая /usr/local и /var)
tar -xpf /tmp/base.txz -C /usr/local/jails/containers/<jail> --unlink
Это обновляет весь system world, но НЕ трогает:
/usr/local(твои пакеты)/etc(конфиги)/var(данные)/root/home
4. Подтянуть патчи
freebsd-update -b /usr/local/jails/containers/<jail> fetch install
5. Запустить jail
service jail start <jail>
6. Обновить пакеты в jail
jexec <jail> pkg update
jexec <jail> pkg upgrade -y
Итог
Для classic jail (твоя схема):
-
PATCH обновления (p1→p5):
→freebsd-update -b jailpath fetch install -
RELEASE обновления (14.2 → 14.3):
→ Распаковать новыйbase.txzповерх jail, затемfreebsd-update, затем pkg upgrade.
PATCH обновления — это-маленькие обновления безопасности. Они фиксируют уязвимости или баги в библиотеке, бинарнике или системном компоненте. Устанавливаются так:
freebsd-update fetch install
PATCH обновления не меняют версию системы (например, остаётся 14.3), они добавляют суффикс pX:
14.3-RELEASE-p1
14.3-RELEASE-p2
и так далее.
RELEASE обновления - это переход на новую основную версию системы. Примеры:
14.2-RELEASE → 14.3-RELEASE
14.3-RELEASE → 14.4-RELEASE
Меняется весь system world: /bin, /lib, /usr/bin, /usr/lib, все системные утилиты и библиотеки.
На хосте обновление release делается так:
freebsd-update upgrade -r 14.3-RELEASE
freebsd-update install
В classic jail обновление release выполняют не через upgrade, а через полный пересозданный world:
скачать base.txz нужной версии,
tar -xpf base.txz --unlink -C /путь/jail
Это кладёт новый system world, но не трогает /usr/local, /etc, /var — твои конфиги и пакеты остаются на месте.
Разница коротко:
PATCH обновления (pX):
- только security fixes
- маленькие изменения
- не меняют версию
- freebsd-update fetch install
RELEASE обновления:
- полный world
- много изменений
- новая версия системы
- хост = freebsd-update upgrade
- jail = распаковка base.txz новой версии