- Обновление старого релиза FreeBSD, Сергей, 15:09 , 19-Янв-22 (1)
> Есть FreeBSD 8.4, generic, надо бы обновиться. > Подскажите, как это вообще правильнее делать в случае со столь старым релизом, > какие могут встретиться подводные. С FreeBSD редко дело имею, но помню > что уже после 8.х ветки там вроде бы система управления портами > менялась, ещё наверное что-то важное было, что хорошо бы учесть при > обновлении. > Понятно, что лучше бы поставить наново, возможно, так и сделаю, но для > начала думаю всё-таки попробовать обновление, вдруг и сработает. Вы до какой версии хотите обновиться? Если вы уже юзали pkg, то с тех пор ничего не изменилось, и вообще все зависит от вашего сервера, точнее, что он делает и что на нем стоит, может уже ваш софт уже в текущих портах отсуствует...
- Обновление старого релиза FreeBSD, Ibn Ash, 15:30 , 19-Янв-22 (2)
> Вы до какой версии хотите обновиться?До последней самой модной-молодёжной. > Если вы уже юзали pkg, то с тех пор ничего не изменилось Юзать-то конечно юзали, но при переходе со старых систем времён всяких портснапов, портапгрейдов и портмастеров — там же наверное нужно будет какие-то предварительные действия предпринимать, чтобы удачно на новую систему мигрировать, само же оно навряд ли телепатию проявит. > и вообще все зависит от вашего сервера, точнее, что он делает > и что на нем стоит, может уже ваш софт > уже в текущих портах отсуствует... Ды эт понятно. Меня больше возможные грабли при таком масштабном обновлении самой системы интересуют (ну, кроме очевидного апдейта до последнего патчлевела) и нюансы переход на pkg в целом.
- Обновление старого релиза FreeBSD, lavr, 16:28 , 19-Янв-22 (3) +1
>[оверквотинг удален] > Юзать-то конечно юзали, но при переходе со старых систем времён всяких портснапов, > портапгрейдов и портмастеров — там же наверное нужно будет какие-то предварительные > действия предпринимать, чтобы удачно на новую систему мигрировать, само же оно > навряд ли телепатию проявит. >> и вообще все зависит от вашего сервера, точнее, что он делает >> и что на нем стоит, может уже ваш софт >> уже в текущих портах отсуствует... > Ды эт понятно. Меня больше возможные грабли при таком масштабном обновлении самой > системы интересуют (ну, кроме очевидного апдейта до последнего патчлевела) и нюансы > переход на pkg в целом.установите на виртуалке 8.4 с пакетами и тренируйтесь с апгрейдом... Увы, поезд ушел, убьетесь и придете к нижнему. Проще и быстрей накатить сервер сбоку с 12.3 или 13.0 - установить софт из пакетов, недостающее из портов через portmaster - настроить - переключиться со старого на новый
- Обновление старого релиза FreeBSD, Ibn Ash, 09:14 , 20-Янв-22 (5)
> Проще и быстрей накатить сервер сбоку с 12.3 или 13.0Ну, это само собой. Вероятно, так и сделаю в конце концов. Просто я подумал, что вдруг здесь кто-нибудь недавно делал что-то похожее с обновлением древнего релиза и есть пример успешного опыта с описанием граблей. > установить софт из пакетов, недостающее из портов через portmaster
А почему именно из пакетов и только недостающее — из портов? Почему бы не всё сразу из портов? И почему портмастер? Чтобы было две базы софта — pkg для пакетов и portmaster для портов? Неужели pkg в соло не потянет?
- Обновление старого релиза FreeBSD, lavr, 10:48 , 20-Янв-22 (7)
>> Проще и быстрей накатить сервер сбоку с 12.3 или 13.0 > Ну, это само собой. Вероятно, так и сделаю в конце концов. > Просто я подумал, что вдруг здесь кто-нибудь недавно делал что-то похожее с > обновлением древнего релиза и есть пример успешного опыта с описанием граблей. врядли кто-то делал подобное недавно. >> установить софт из пакетов, недостающее из портов через portmaster > А почему именно из пакетов и только недостающее — из портов? > Почему бы не всё сразу из портов? пакеты - это "бинарники", которые собраны из портов с DEFAULT options. Зачем ВСЕ собирать из портов и тратить на это время? Если опции сборки многих портов устраивают, проще все это установить из пакетов. > И почему портмастер? Чтобы было две базы софта — pkg для пакетов > и portmaster для портов? Неужели pkg в соло не потянет? pkg - пакетный менеджер portmaster - менеджер портов. База установленных пакетов ОДНА, итогом сборки порта является установка собранных бинарников и РЕГИСТРАЦИЯ их в локальной базе пакетов. Соль в том, что если мы выполняем сборку из портов с изменением опций сборки, последующее обновление через пакетный менеджер pkg делать нельзя. Если пакетная система устраивает полностью, то использовать только пакетный менелджер pkg. Если какие-то пакеты не устраивают, то наименее затратный путь: 1. все что возможно установить из пакетов 2. остальное установить из портов 3. последующие обновления только из портов (например portmaster)
- Обновление старого релиза FreeBSD, Ibn Ash, 11:17 , 20-Янв-22 (8)
Ох, спасибо Вам огромное. Я почему-то немного по-другому себе представлял всё это (выше уже говорил, что последние годы сравнительно нечасто с FreeBSD приходится работать, к сожалению), и ещё не успел освежить знания. Ещё пара вопросов, если не затруднит.> База установленных пакетов ОДНА, итогом сборки порта является установка > собранных бинарников и РЕГИСТРАЦИЯ их в локальной базе пакетов. Но ведь база данных портов (само дерево, настройки, данные об уже собранных ранее портах) — она ведь тоже должна существовать, должен же portmaster знать, с чем работает. Получается, две базы данных установленного ПО — для pkg и для portmaster. > Соль в том, что если мы выполняем сборку из портов с изменением > опций сборки, последующее обновление через пакетный менеджер pkg > делать нельзя.
Нельзя почему? Просто потому что опции сборки обнулятся дефолтными или потому что у pkg могут быть проблемы при работе с пакетом, установленным из порта? > Если какие-то пакеты не устраивают, то наименее затратный путь: > 1. все что возможно установить из пакетов > 2. остальное установить из портов > 3. последующие обновления только из портов (например portmaster)
То есть, если я правильно понял, процесс обновления будет разбит на две части — отдельно обновления "родных" пакетов (pkg) и отдельно обновления того, установлено в пакеты через порты (portmaster).
- Обновление старого релиза FreeBSD, lavr, 12:22 , 20-Янв-22 (9)
>> База установленных пакетов ОДНА, итогом сборки порта является установка >> собранных бинарников и РЕГИСТРАЦИЯ их в локальной базе пакетов. > Но ведь база данных портов (само дерево, настройки, данные об уже собранных > ранее портах) — она ведь тоже должна существовать, должен же 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 в котором иные зависимости, ОТЛИЧНЫЕ от того что Вы установили дополнительно из портов со своими зависимостями Потренируйтесь в виртуалке, придут знания и наступит понимание, нет знаний - нет понимания процессов.
- Обновление старого релиза FreeBSD, Ibn Ash, 14:08 , 20-Янв-22 (10)
Благодарю Вас!А насчёт обновления самой системы — полагаете, что не выйдет обновиться даже постепенно небольшими шажками до близких релизов вроде 8.4 => 10.0 => 10.4 => 12.1?
- Обновление старого релиза FreeBSD, lavr, 15:51 , 20-Янв-22 (12)
> Благодарю Вас! > А насчёт обновления самой системы — полагаете, что не выйдет обновиться даже > постепенно небольшими шажками до близких релизов вроде 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 и от старых портов и установить их или аналоги более свежих версий заново. Вопрос: сколько времени нужно потратить на верхнее и каков итог? Суть: своевременный апгрейд! Верхнее понятно расписано? Вопросы?
- Обновление старого релиза FreeBSD, Ibn Ash, 09:40 , 21-Янв-22 (14)
> Верхнее понятно расписано?Да, всё стало намного понятнее, ещё раз Вас благодарю за труд по разъяснению. > репозитория для 10/11 нет С учётом данного факта попытка апгрейда становится целиком и полностью нецелесообразной. Я совершенно выпустил данный факт из виду, даже в голову не пришло, что всё настолько запущено. Действительно, как Вы выше уже сказли, поезд ушёл, догонять его нет никакого смысла, лучше сесть на следующий. Спасибо!
- Обновление старого релиза FreeBSD, abi, 17:59 , 19-Янв-22 (4)
> Есть FreeBSD 8.4, generic, надо бы обновиться.Прямое обновление бинарных образов со столько старой версии не поддерживается. Я бы не рискнул обновляться до последней версии. Попробуйте обновиться до 10 в начале
- Обновление старого релиза FreeBSD, Ibn Ash, 09:16 , 20-Янв-22 (6)
> Попробуйте обновиться до 10 в началеДа, это само собой. Прыгать сразу через 4 релиза это слишком, конечно.
- Обновление старого релиза FreeBSD, Сергей, 15:18 , 20-Янв-22 (11)
>> Попробуйте обновиться до 10 в начале > Да, это само собой. > Прыгать сразу через 4 релиза это слишком, конечно. Вы сделайте dump сервера, да разверните его в виртуалку, ну и изголяйтесь... Лучше конечно прыгать с ветки на ветку... По поводу софта, в принципе с уже стоящего софта можно сделать пакеты и попытаться их поставить под новую операциоку с предсустановленным портом compat8x. Я в свое время обновлял с 7.4 на 10.2 через исходники, без гемора оказался путь, 7.4-8.2-8.4-9.2-9.4-10.2, после каждого перехода обновлялся софт со среза релиза на который переходил...
- Обновление старого релиза FreeBSD, abi, 22:14 , 20-Янв-22 (13)
> через исходники, без гемора оказался путь, 7.4-8.2-8.4-9.2-9.4-10.2, после каждого перехода > обновлялся софт со среза релиза на который переходил...Софт обновить на промежуточной остановки не получится, пакеты 10 (включительно) и ниже дропнуты уже. Проще записать "верхнеуровневые порты" и поставить их, не обновляя. (сохранив себе куда-нибудь /usr/local/etc)
|