Почему большинство дистрибутивов (кроме Debian) рекомендуют / требуют полной переустановки при обновлении до новой версии?

10

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

Я говорю о хорошо поддерживаемых дистрибутивах, таких как Fedora (и производные), даже Ubuntu и производные. Даже стабильные серверно-ориентированные дистрибутивы, такие как CentOS.

Это потому, что система управления пакетами Debian и сценарии обновления пакетов намного более продвинуты, чем все остальные дистрибутивы?

Или переустановка с нуля при обновлении основной версии - это просто лучшая идея, независимо от дистрибутива?

TRR
источник

Ответы:

6

Это сочетание ряда факторов.

Большинство дистрибутивов используют основные выпуски как время для реализации значительных, иногда разрушительных изменений. Например, Fedora 15 добавила systemd, а Ubuntu добавила upstart в 6.10. Debian - это очень консервативный дистрибутив во многих отношениях. Большие, разрушительные изменения не одобряются.

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

Технология управления пакетами в Debian не превосходит технологии Fedora или Ubuntu (очевидно, потому что она такая же, как в Ubuntu), но Debian с культурной точки зрения решил, что наличие гладкой системы обновления важно.

Эндрю Шляйфер
источник
5
Точнее, они решили, что на рабочем сервере вам не нужно переустанавливать его с нуля, чтобы обновить программное обеспечение на нем.
Шадур
Тем не менее, даже с Fedora, выполняя (единственную версию) обновление через установщик, будет пытаться выполнить DTRT с учетом изменений базовой инфраструктуры, если это возможно.
Игнасио Васкес-Абрамс
1

Если говорить более конкретно, я сталкивался с проблемами во многих дистрибутивах при обновлении. Например, Ubuntu радикально меняет базу установленных пакетов между выпусками. Если вы выполняете традиционное 'dist-upgrade', установленные пакеты будут обновляться до новых выпусков, но в конечном результате новые изменения в составе отсутствуют. Если пакет из установленной по умолчанию установки понижен в звании до «поддерживаемого» или, что еще хуже, «неподдерживаемого», вы все равно сохраняете этот пакет. Если новый пакет находится в установке по умолчанию, он не будет установлен. Даже если ваш релиз «технически» обновленный, он не отражает опыт нового выпуска. Тот же самый случай также очень точен, сравнивая CentOS5 с CentOS6, они полностью реорганизовали названия своих упаковок.

Debian отдает приоритет плавным обновлениям за счет таких радикальных изменений. Вот почему Debian медленнее работает с новыми функциями, для их сообщества компромисс приемлем. Повторяя предыдущий ответ, он не имеет ничего общего с технологией управления пакетами как таковой. Я скажу, постоянные переустановки Ubuntu носят на меня.

Дж. М. Беккер
источник
Ubuntu включает в себя специальный инструмент для обновлений, который якобы заботится не только о dist-upgrade. Вы знаете больше об этом, и это хорошо?
trr
1

То, что вы заявляете, не относится ко всему семейству дистрибутивов с постепенным выпуском

Для программного обеспечения для обслуживания системы гораздо сложнее разрешить проблемы совместимости между пакетами при обновлении только некоторых частей системы или поддержании согласованности конфигурации в течение всех обновлений. Различные пакеты программного обеспечения должны быть адаптированы для работы друг с другом.

Вот почему самое простое (то есть самое надежное и в то же время затраченное на разработку ) решение для предоставления обновления системы - это периодически готовить полный, полностью протестированный, полностью инсталляционный выпуск. Корпоративные решения, такие как Red Hat, занимают позицию, согласно которой клиенту должна быть предоставлена ​​надежная система, и он должен быть обеспокоен, ломая обновления как можно дольше. (Конечно, незначительные обновления и исправления должны быть доступны или даже автоматически обновляться). Это также общая философия бесплатных серверных дистрибутивов, таких как CentOS.

Предоставление конечному пользователю бесшовного маршрута обновления между выпусками является большой проблемой для разработчиков системы. Многие дистрибутивы предпочитают не жертвовать своим скудным временем ради этого. Многие популярные пакеты (например, QT) сложно обновить, часто требуя полной переустановки. Что еще более важно, многие проекты демонстрируют снижение усилий по разработке или вытесняются новыми технологиями. В случае системных пакетов это часто требует значительного изменения системы. Процедуры миграции могут быть особенно сложными для реализации, если они должны учитывать тот факт, что некоторые люди захотят перейти с версии C на D, а другие будут переключаться с формы B или с A или из какого-то пользовательского состояния в середине.

Итак, как вы уже могли догадаться, самый сложный подход - это скользящий релиз. Я не знаю деталей подхода Debian, но из вашего описания я вижу, что они где-то посередине.

rozcietrzewiacz
источник
Debian полностью поддерживает обновления с предыдущей стабильной до текущей стабильной. Поскольку они разносятся на 2 или 3 года, они включают в себя основные переходы, такие как glibc, KDE 3 к 4, предстоящий Gnome 2 к 3 и т. Д. Вы упоминаете, что некоторые пакеты сложно обновить и их необходимо переустановить - это то, что известно в Debian как «основной переход», и, тем не менее, их менеджер пакетов вполне способен управлять ими, и они полностью тестируют и поддерживают их для конечных пользователей. Я думаю, что это гораздо больше связано с мышлением, чем вы утверждаете - Debian считает, что это правильный путь, и они делают это.
trr