The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"Обновление старого релиза FreeBSD"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Система. проблемы, диагностика / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"Обновление старого релиза FreeBSD"  +/
Сообщение от Ibn Ash (?), 19-Янв-22, 10:54 
Есть FreeBSD 8.4, generic, надо бы обновиться.
Подскажите, как это вообще правильнее делать в случае со столь старым релизом, какие могут встретиться подводные. С FreeBSD редко дело имею, но помню что уже после 8.х ветки там вроде бы система управления портами менялась, ещё наверное что-то важное было, что хорошо бы учесть при обновлении.
Понятно, что лучше бы поставить наново, возможно, так и сделаю, но для начала думаю всё-таки попробовать обновление, вдруг и сработает.
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Обновление старого релиза FreeBSD"  +/
Сообщение от Сергей (??), 19-Янв-22, 15:09 
> Есть FreeBSD 8.4, generic, надо бы обновиться.
> Подскажите, как это вообще правильнее делать в случае со столь старым релизом,
> какие могут встретиться подводные. С FreeBSD редко дело имею, но помню
> что уже после 8.х ветки там вроде бы система управления портами
> менялась, ещё наверное что-то важное было, что хорошо бы учесть при
> обновлении.
> Понятно, что лучше бы поставить наново, возможно, так и сделаю, но для
> начала думаю всё-таки попробовать обновление, вдруг и сработает.

Вы до какой версии хотите обновиться? Если вы уже юзали pkg, то с тех пор ничего не изменилось, и вообще все зависит от вашего сервера, точнее, что он делает и что на нем стоит, может уже ваш софт
уже в текущих портах отсуствует...

Ответить | Правка | Наверх | Cообщить модератору

2. "Обновление старого релиза FreeBSD"  +/
Сообщение от Ibn Ash (?), 19-Янв-22, 15:30 
> Вы до какой версии хотите обновиться?

До последней самой модной-молодёжной.

> Если вы уже юзали pkg, то с тех пор ничего не изменилось

Юзать-то конечно юзали, но при переходе со старых систем времён всяких портснапов, портапгрейдов и портмастеров — там же наверное нужно будет какие-то предварительные действия предпринимать, чтобы удачно на новую систему мигрировать, само же оно навряд ли телепатию проявит.

> и вообще все зависит от вашего сервера, точнее, что он делает
> и что на нем стоит, может уже ваш софт
> уже в текущих портах отсуствует...

Ды эт понятно. Меня больше возможные грабли при таком масштабном обновлении самой системы интересуют (ну, кроме очевидного апдейта до последнего патчлевела) и нюансы переход на pkg в целом.

Ответить | Правка | Наверх | Cообщить модератору

3. "Обновление старого релиза FreeBSD"  +1 +/
Сообщение от lavremail (ok), 19-Янв-22, 16:28 
>[оверквотинг удален]
> Юзать-то конечно юзали, но при переходе со старых систем времён всяких портснапов,
> портапгрейдов и портмастеров — там же наверное нужно будет какие-то предварительные
> действия предпринимать, чтобы удачно на новую систему мигрировать, само же оно
> навряд ли телепатию проявит.
>> и вообще все зависит от вашего сервера, точнее, что он делает
>> и что на нем стоит, может уже ваш софт
>> уже в текущих портах отсуствует...
> Ды эт понятно. Меня больше возможные грабли при таком масштабном обновлении самой
> системы интересуют (ну, кроме очевидного апдейта до последнего патчлевела) и нюансы
> переход на pkg в целом.

установите на виртуалке 8.4 с пакетами и тренируйтесь с апгрейдом...
Увы, поезд ушел, убьетесь и придете к нижнему.

Проще и быстрей накатить сервер сбоку с 12.3 или 13.0
- установить софт из пакетов, недостающее из портов через portmaster
- настроить
- переключиться со старого на новый

Ответить | Правка | Наверх | Cообщить модератору

5. "Обновление старого релиза FreeBSD"  +/
Сообщение от Ibn Ash (?), 20-Янв-22, 09:14 
> Проще и быстрей накатить сервер сбоку с 12.3 или 13.0

Ну, это само собой. Вероятно, так и сделаю в конце концов.
Просто я подумал, что вдруг здесь кто-нибудь недавно делал что-то похожее с обновлением древнего релиза и есть пример успешного опыта с описанием граблей.


> установить софт из пакетов, недостающее из портов через portmaster

А почему именно из пакетов и только недостающее — из портов?
Почему бы не всё сразу из портов?
И почему портмастер? Чтобы было две базы софта — pkg для пакетов и portmaster для портов? Неужели pkg в соло не потянет?

Ответить | Правка | Наверх | Cообщить модератору

7. "Обновление старого релиза FreeBSD"  +/
Сообщение от lavremail (ok), 20-Янв-22, 10:48 
>> Проще и быстрей накатить сервер сбоку с 12.3 или 13.0
> Ну, это само собой. Вероятно, так и сделаю в конце концов.
> Просто я подумал, что вдруг здесь кто-нибудь недавно делал что-то похожее с
> обновлением древнего релиза и есть пример успешного опыта с описанием граблей.

врядли кто-то делал подобное недавно.

>> установить софт из пакетов, недостающее из портов через portmaster
> А почему именно из пакетов и только недостающее — из портов?
> Почему бы не всё сразу из портов?

пакеты - это "бинарники", которые собраны из портов с DEFAULT options.
Зачем ВСЕ собирать из портов и тратить на это время?
Если опции сборки многих портов устраивают, проще все это установить
из пакетов.

> И почему портмастер? Чтобы было две базы софта — pkg для пакетов
> и portmaster для портов? Неужели pkg в соло не потянет?

pkg - пакетный менеджер
portmaster - менеджер портов.

База установленных пакетов ОДНА, итогом сборки порта является установка
собранных бинарников и РЕГИСТРАЦИЯ их в локальной базе пакетов.

Соль в том, что если мы выполняем сборку из портов с изменением
опций сборки, последующее обновление через пакетный менеджер pkg
делать нельзя.
Если пакетная система устраивает полностью, то использовать
только пакетный менелджер pkg.

Если какие-то пакеты не устраивают, то наименее затратный путь:
1. все что возможно установить из пакетов
2. остальное установить из портов
3. последующие обновления только из портов (например portmaster)

Ответить | Правка | Наверх | Cообщить модератору

8. "Обновление старого релиза FreeBSD"  +/
Сообщение от Ibn Ash (?), 20-Янв-22, 11:17 
Ох, спасибо Вам огромное. Я почему-то немного по-другому себе представлял всё это (выше уже говорил, что последние годы сравнительно нечасто с FreeBSD приходится работать, к сожалению), и ещё не успел освежить знания.
Ещё пара вопросов, если не затруднит.

> База установленных пакетов ОДНА, итогом сборки порта является установка
> собранных бинарников и РЕГИСТРАЦИЯ их в локальной базе пакетов.

Но ведь база данных портов (само дерево, настройки, данные об уже собранных ранее портах) — она ведь тоже должна существовать, должен же portmaster знать, с чем работает. Получается, две базы данных установленного ПО — для pkg и для portmaster.


> Соль в том, что если мы выполняем сборку из портов с изменением
> опций сборки, последующее обновление через пакетный менеджер pkg
> делать нельзя.

Нельзя почему? Просто потому что опции сборки обнулятся дефолтными или потому что у pkg могут быть проблемы при работе с пакетом, установленным из порта?


> Если какие-то пакеты не устраивают, то наименее затратный путь:
> 1. все что возможно установить из пакетов
> 2. остальное установить из портов
> 3. последующие обновления только из портов (например portmaster)

То есть, если я правильно понял, процесс обновления будет разбит на две части — отдельно обновления "родных" пакетов (pkg) и отдельно обновления того, установлено в пакеты через порты (portmaster).

Ответить | Правка | Наверх | Cообщить модератору

9. "Обновление старого релиза FreeBSD"  +/
Сообщение от lavremail (ok), 20-Янв-22, 12:22 
>> База установленных пакетов ОДНА, итогом сборки порта является установка
>> собранных бинарников и РЕГИСТРАЦИЯ их в локальной базе пакетов.
> Но ведь база данных портов (само дерево, настройки, данные об уже собранных
> ранее портах) — она ведь тоже должна существовать, должен же portmaster
> знать, с чем работает. Получается, две базы данных установленного ПО —
> для pkg и для portmaster.

Это Ваши "выводы" от незнания.

Порты - это директория с инструментарием для сборки из исходников,
дерево:
/usr/ports/INDEX-N (где N=цифра релиза)
/usr/ports/README
/usr/ports/UPDATING - все важные изменения и руководства к апгрейду
/usr/ports/Makefile
/usr/ports/Mk/ - важные defines для сборки make
/usr/ports/Tools/ - необходимый инструментарий
/usr/ports/category/portname/Makefile
............................/distinfo
............................/pkg-descr
............................/pkg-plist
............................/files/patches...

как видно из верхнего, порт - это проект сборки третичного ПО,
где category - это множество по направлению:
/usr/ports/archivers
/usr/ports/astro
/usr/ports/audio
/usr/ports/base
/usr/ports/benchmarks
/usr/ports/biology
/usr/ports/cad
...
/usr/ports/databases
/usr/ports/deskutils
/usr/ports/devel
/usr/ports/distfiles
/usr/ports/dns
/usr/ports/editors
/usr/ports/emulators

внутри каждой категории, директория с отдельными портами: portname
# ls -la /usr/ports/archivers/bzip2/
total 32
drwxr-xr-x    3 root  wheel   512  7 июня   2021 .
drwxr-xr-x  269 root  wheel  5632 27 дек.  18:16 ..
-rw-r--r--    1 root  wheel   153 13 марта  2021 distinfo
drwxr-xr-x    2 root  wheel   512  7 июня   2021 files
-rw-r--r--    1 root  wheel  2161  6 апр.   2021 Makefile
-rw-r--r--    1 root  wheel   155  1 июля   2019 pkg-descr
-rw-r--r--    1 root  wheel   571 20 окт.   2014 pkg-plist
#

Собирать порты можно вручную или используя порт-менеджеры,
наиболее распространенные и рекомендуемые:
- portmaster (shell скрипт использующий пакетный менеджер "pkg")
- portupgrade

результатом сборки в конечном итоге является "пакет", который
устанавливается в систему и регистрируется в локальной базе
пакетов которую использует и которой управляет пакетный
менеджер "pkg"

>> Соль в том, что если мы выполняем сборку из портов с изменением
>> опций сборки, последующее обновление через пакетный менеджер pkg
>> делать нельзя.
> Нельзя почему? Просто потому что опции сборки обнулятся дефолтными или потому что
> у pkg могут быть проблемы при работе с пакетом, установленным из
> порта?

pkg использует by default официальный репозиторий FreeBSD, опции
с которыми собраны пакеты - есть зависимости.

Если мы собрали и установили какой-то порт с оригинальными опциями,
нарушится зависимость между пакетами.

Если после это Вы попробуете обновится через пакетный менеджер pkg,
получите бяку.

>> Если какие-то пакеты не устраивают, то наименее затратный путь:
>> 1. все что возможно установить из пакетов
>> 2. остальное установить из портов
>> 3. последующие обновления только из портов (например portmaster)
> То есть, если я правильно понял, процесс обновления будет разбит на две
> части — отдельно обновления "родных" пакетов (pkg) и отдельно обновления того,
> установлено в пакеты через порты (portmaster).

Нет никаких ОТДЕЛЬНО:
- есть пакетный менеджер и база установленных пакетов

Соответственно:

Вариант 1: используете только пакеты из FreeBSD REPO - только пакетный менеджер,
нет проблем с апгрейдом, все через "pkg"

Вариант 2: регулярно модифицируете дерево портов под себя и создаете СВОЙ REPO -
репозиторий и сами собираете ВСЕ пакеты и используете свой репозиторий, нет
проблем, используете только "pkg" с указанием своего репо.

Вариант 3:
- этап 1 - устанавливаете по максимуму все из пакетов
- этап 2 - устанавливаете из портов то что Вам нужно с Вашими опциями сборки
руками или с помощью порт-менеджера
- этап 3 - дальнейший апгрейд только через порт-менеджер, ибо pkg использует
FreeBSD repo в котором иные зависимости, ОТЛИЧНЫЕ от того что Вы установили
дополнительно из портов со своими зависимостями

Потренируйтесь в виртуалке, придут знания и наступит понимание, нет знаний - нет
понимания процессов.

Ответить | Правка | Наверх | Cообщить модератору

10. "Обновление старого релиза FreeBSD"  +/
Сообщение от Ibn Ash (?), 20-Янв-22, 14:08 
Благодарю Вас!

А насчёт обновления самой системы — полагаете, что не выйдет обновиться даже постепенно небольшими шажками до близких релизов вроде 8.4 => 10.0 => 10.4 => 12.1?

Ответить | Правка | Наверх | Cообщить модератору

12. "Обновление старого релиза FreeBSD"  +/
Сообщение от lavremail (ok), 20-Янв-22, 15:51 
> Благодарю Вас!
> А насчёт обновления самой системы — полагаете, что не выйдет обновиться даже
> постепенно небольшими шажками до близких релизов вроде 8.4 => 10.0 =>
> 10.4 => 12.1?

Выйдет, можно по Вашей схеме, можно:
8.4 -> 10.4 -> 12.3 или 13.0
Можно сразу 8.4 -> 13.0 через сборку мира, ядра - накладно по ресурсам, зависит
от hardware. (можно сборку сделать на сторонней 8.4 и затем отдать by NFS /usr/obj
на целевую для установки)

ps. Важно помнить что в ранних релизах, freebsd-update выполнялся при условии
generic kernel! Вот когда появилась возможность выполнять freebsd-update с custom kernel,
это я уж и не вспомню... Просто свое собранное ядро заменялось на generic при апгрейде ОС.

Дело в другом, дано FreeBSD 8.4, на ней:
- ядро generic?
- пакеты установлены через старый pkg_install и из портов

тонкость: новый пакетный менеджер pkg стал основным by default в 10.0

Выполняем бинарный апгрейд ОС:

- основное правило, текущий RELEASE должен быть обновлен до
последнего patch-level (не уверен что это обязон)

# freebsd-update fetch
# freebsd-update install
# reboot

имеем 8.4-pX (последний патчлевел для релиза 8.4)

- производим апгрейд по 10.0 или 10.4 ...
# freebsd-update upgrade -r 10.4-RELEASE
# freebsd-update install
# reboot
- загружаемся с ядром 10.4 нужно еще раз выполнить
# freebsd-update install
... и в конце выдаст сообщение
переустановите пакеты и затем выполните "freebsd-update install"

получаем обновленную систему с ядром 10.4 и миром 10.4

прим: в FreeBSD ядро и базовая система (мир) должны быть синхронизированы
- мы два раза выполнили "freebsd-update install" и получили новую систему,
зачем выполнять еще раз? Ответ: чтобы удалить старые библиотеки и прочий хлам.
Вот почему выдается предупреждение о reinstall packages or ports!
Все пакеты и порты собраны со старыми системными библиотеками, если их
удалить - получим неработающий третичный софт.

Что делать?

вариант 1: не выполнять 3ий "freebsd-update install"

вариант 2: установить compat8x - и тут засада, из портов не сможем, ибо их работа
не поддерживается, из пакетов не сможем - отсутствие репы 10.x EOL. Вытаскивать с
ftp://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-releas... в надежде что на нем есть compat8x
У меня подразумевается что платформа amd64(64bit)
В принципе, compat8x можно взять с любого релиза и развернуть в /usr/local/lib/compat
и /usr/local/lib32/compat и затем выполнить ldconfig.
После этого можно выполнить 3ий "freebsd-update install"

Итак, имеем 10.4-RELEASE со старым третичным ПО от 8.4:
- установить пакеты не можем их нет
- установить из портов не можем - не поддерижваются
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- взять с любого релиза и развернуть
руками, описано выше

И последняя засада: у Вас старый пакетный менеджер и дерево установленных портов,
и это нужно трансформировать в формат нового pkg через pkgng!
Опять засада, это бесполезная работа в том смысле что репозитория для 10/11 нет,
обновить пакеты не сможем.

Имеем: 10.4 на который мы стянули compat8x и установили руками.

- делаем апгрейд до 10.4 last patchlevel
# freebsd-update fetch
# freebsd-update install
# reboot
- имеем 10.4-pX
- выполняем апгрейд на 12.3
# freebsd-update upgrade -r 12.3-RELEASE
# freebsd-update install
# reboot
# freebsd-update install
# freebsd-update install

Итак, имеем 12.3-RELEASE в нем:
- пакеты и порты от 8x работу которых обеспечивают библиотеки compat8x

Что дальше?!
Дальше нам нужно установить НОВЫЕ пакеты: КАК?
Только грохнуть все старье - зачистить хлам от старого pkg_install/pkg_add
и от старых портов и установить их или аналоги более свежих версий заново.

Вопрос: сколько времени нужно потратить на верхнее и каков итог?
Суть: своевременный апгрейд!

Верхнее понятно расписано? Вопросы?

Ответить | Правка | Наверх | Cообщить модератору

14. "Обновление старого релиза FreeBSD"  +/
Сообщение от Ibn Ash (?), 21-Янв-22, 09:40 
> Верхнее понятно расписано?

Да, всё стало намного понятнее, ещё раз Вас благодарю за труд по разъяснению.

> репозитория для 10/11 нет

С учётом данного факта попытка апгрейда становится целиком и полностью нецелесообразной. Я совершенно выпустил данный факт из виду, даже в голову не пришло, что всё настолько запущено. Действительно, как Вы выше уже сказли, поезд ушёл, догонять его нет никакого смысла, лучше сесть на следующий.

Спасибо!

Ответить | Правка | Наверх | Cообщить модератору

4. "Обновление старого релиза FreeBSD"  +/
Сообщение от abi (?), 19-Янв-22, 17:59 
> Есть FreeBSD 8.4, generic, надо бы обновиться.

Прямое обновление бинарных образов со столько старой версии не поддерживается. Я бы не рискнул обновляться до последней версии. Попробуйте обновиться до 10 в начале

Ответить | Правка | Наверх | Cообщить модератору

6. "Обновление старого релиза FreeBSD"  +/
Сообщение от Ibn Ash (?), 20-Янв-22, 09:16 
> Попробуйте обновиться до 10 в начале

Да, это само собой.
Прыгать сразу через 4 релиза это слишком, конечно.

Ответить | Правка | Наверх | Cообщить модератору

11. "Обновление старого релиза FreeBSD"  +/
Сообщение от Сергей (??), 20-Янв-22, 15:18 
>> Попробуйте обновиться до 10 в начале
> Да, это само собой.
> Прыгать сразу через 4 релиза это слишком, конечно.

  Вы сделайте dump сервера, да разверните его в виртуалку, ну и изголяйтесь...
  Лучше конечно прыгать с ветки на ветку...
  По поводу софта, в принципе с  уже стоящего софта можно сделать пакеты и попытаться их поставить
под новую операциоку с предсустановленным портом compat8x.
   Я в свое время обновлял с 7.4 на 10.2 через исходники, без гемора оказался путь, 7.4-8.2-8.4-9.2-9.4-10.2, после каждого перехода обновлялся софт со среза релиза на который переходил...  

Ответить | Правка | Наверх | Cообщить модератору

13. "Обновление старого релиза FreeBSD"  +/
Сообщение от abi (?), 20-Янв-22, 22:14 
> через исходники, без гемора оказался путь, 7.4-8.2-8.4-9.2-9.4-10.2, после каждого перехода
> обновлялся софт со среза релиза на который переходил...

Софт обновить на промежуточной остановки не получится, пакеты 10 (включительно) и ниже дропнуты уже.

Проще записать "верхнеуровневые порты" и поставить их, не обновляя. (сохранив себе куда-нибудь /usr/local/etc)


Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру