The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Обновление старого релиза FreeBSD, !*! Ibn Ash, 19-Янв-22, 10:54  [смотреть все]
Есть FreeBSD 8.4, generic, надо бы обновиться.
Подскажите, как это вообще правильнее делать в случае со столь старым релизом, какие могут встретиться подводные. С FreeBSD редко дело имею, но помню что уже после 8.х ветки там вроде бы система управления портами менялась, ещё наверное что-то важное было, что хорошо бы учесть при обновлении.
Понятно, что лучше бы поставить наново, возможно, так и сделаю, но для начала думаю всё-таки попробовать обновление, вдруг и сработает.
  • Обновление старого релиза 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)





Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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