¿Por qué la mayoría de las distribuciones (que no sean Debian) recomiendan / requieren una reinstalación completa al actualizar a una nueva versión?

10

Después de pasar la mayor parte de mi vida en Linux usando Debian, he estado mirando otras distribuciones y estoy realmente sorprendido de la medida en que no proporcionan una actualización fluida entre versiones. Debian es infinitamente actualizable, y he actualizado a través de algunas versiones estables principales ahora.

Estoy hablando de distribuciones bien soportadas como Fedora (y derivados), incluso Ubuntu y derivados. Incluso distribuciones estables orientadas al servidor como CentOS.

¿Se debe a que el sistema de gestión de paquetes de Debian y los scripts de actualización de paquetes son mucho más avanzados que cualquier otra distribución que ofrezcan?

¿O la reinstalación desde cero en una actualización de versión principal es solo una mejor idea en general, independientemente de la distribución?

trr
fuente

Respuestas:

6

Es una combinación de varios factores.

La mayoría de las distribuciones usan lanzamientos importantes como el momento de implementar cambios significativos, a veces importantes. Por ejemplo, Fedora 15 agregó systemd y Ubuntu agregó advenedizo en 6.10. Debian es una distribución muy conservadora en muchos sentidos. Grandes cambios de última hora están mal vistos.

Es una consecuencia de eso, por ejemplo, que los ciclos de lanzamiento de Debian están tan separados porque requieren que se modifiquen todos los paquetes importantes para cumplir con los estándares de la nueva versión.

La tecnología de gestión de paquetes de Debian no es superior a la de Fedora o Ubuntu (obviamente, porque es la misma que la de Ubuntu), pero Debian ha decidido, culturalmente, que tener un sistema de actualización sin problemas es importante.

Andrew Schleifer
fuente
55
Más precisamente, decidieron que lo que no desea en un servidor de producción es tener que reinstalarlo desde cero para actualizar el software.
Shadur
Sin embargo, incluso con Fedora, realizar una actualización (versión única) a través del instalador intentará DTRT con respecto a los cambios de infraestructura subyacentes si es posible.
Ignacio Vázquez-Abrams
1

Para ser más específico, he encontrado problemas en muchas distribuciones al hacer actualizaciones. Ubuntu Por ejemplo, cambia drásticamente la base de su paquete instalado entre versiones. Si realiza la tradicional 'dist-upgrade', los paquetes instalados se actualizarán a sus nuevas versiones, pero el resultado final carece de nuevos cambios de alineación. Si un paquete de la instalación predeterminada se degrada, simplemente a "compatible" o peor aún "no compatible", aún conserva ese paquete. Si un nuevo paquete está ahora en la instalación predeterminada, no lo tendrá instalado. Aunque su versión es "técnicamente" la versión actualizada, no refleja la experiencia de la nueva versión. El mismo caso también es muy preciso, al comparar CentOS5 con CentOS6, reorganizaron por completo sus nombres de empaque.

Debian prioriza las actualizaciones sin problemas, a costa de cambios tan drásticos. Esta es la razón por la cual Debian es más lento en funciones nuevas, para su comunidad la compensación es aceptable. Para hacer eco de la respuesta anterior, no tiene nada que ver con la tecnología de gestión de paquetes per se. Diré que las constantes reinstalaciones de Ubuntu me están afectando.

JM Becker
fuente
Ubuntu incluye una herramienta especial para actualizaciones que supuestamente se ocupa de algo más que solo una actualización de dist. ¿Sabes más al respecto y es bueno?
trr
1

Lo que usted afirma no es cierto para toda la familia de distribuciones de lanzamiento continuo .

Para un software de mantenimiento del sistema, es mucho más difícil resolver problemas de compatibilidad entre paquetes cuando se actualizan solo algunas partes del sistema o se mantiene la consistencia de la configuración en todas las actualizaciones. Se deben adaptar varios paquetes de software para que funcionen bien entre sí.

Es por eso que la solución más fácil (es decir, la más confiable con el mismo esfuerzo de tiempo de desarrollo ) para proporcionar una actualización del sistema es preparar periódicamente una versión completa, completamente probada y de instalación completa. Las soluciones empresariales como Red Hat toman la posición de que el cliente debe tener un sistema confiable y tener problemas al interrumpir las actualizaciones durante el mayor tiempo posible. (Por supuesto, las actualizaciones menores y las correcciones de errores deben estar disponibles o incluso retirarse automáticamente). Esta es también la filosofía general detrás de las distribuciones de servidores gratuitos como CentOS.

Proporcionar al usuario final una ruta de actualización perfecta entre versiones es un gran desafío para los desarrolladores del sistema. Muchas distribuciones eligen no sacrificar su escaso tiempo para esto. Muchos paquetes populares (como QT, por ejemplo) son difíciles de actualizar, a menudo necesitan una reinstalación completa. Lo que es aún más importante, muchos proyectos muestran una disminución en el esfuerzo de desarrollo o son desplazados por las nuevas tecnologías. En el caso de los paquetes del sistema, esto a menudo requiere un rediseño significativo del sistema. Los procedimientos de migración pueden ser especialmente difíciles de implementar si tienen que tener en cuenta el hecho de que algunas personas querrán actualizar de la versión C a la D, pero otras cambiarán la forma B o de A o de algún estado personalizado en el medio.

Entonces, como ya habrás adivinado, el enfoque más desafiante es el lanzamiento continuo. No conozco los detalles del enfoque de Debian, pero por su descripción puedo ver que están en algún punto intermedio.

rozcietrzewiacz
fuente
Debian es totalmente compatible con las actualizaciones de estable anterior a estable actual. Dado que están separados por 2 o 3 años, implican transiciones importantes como glibc, KDE 3 a 4, el próximo Gnome 2 a 3, etc. Menciona que algunos paquetes son difíciles de actualizar y deben reinstalarse; esto es lo que se sabe dentro de Debian como una "transición importante" y, sin embargo, su administrador de paquetes es perfectamente capaz de administrarlos y los prueban y respaldan completamente para los usuarios finales. Creo que tiene mucho más que ver con la mentalidad de lo que usted afirma: Debian cree que es la forma correcta de hacerlo, por lo que lo hacen posible.
trr