GNU/Linux >> Tutoriales Linux >  >> Linux

¿Por qué las diferentes distribuciones de Linux necesitan parchear los paquetes?

Me tomó algunos intentos, pero creo que ahora entiendo lo que estás preguntando.

Hay varias razones posibles para que una distribución parchee un software determinado antes de empaquetarlo. Intentaré dar una lista no exclusiva; Estoy seguro de que hay otras razones posibles.

A efectos de esta discusión, "upstream" se refiere al código fuente original de los desarrolladores oficiales del software

  1. Parches que aguas arriba no se han incorporado (o aún no) a su rama principal por cualquier motivo o motivos. Por lo general, porque el mantenedor del paquete de distribución para ese paquete cree que dichos parches valen la pena, o porque son necesarios para mantener la continuidad en la distribución (suponga que tiene un servidor web y después de una actualización de rutina a php varias funciones en las que ha estado confiando ya no funcionan, o no puede leer un archivo de configuración del estilo antiguo)

  2. A las distribuciones les suelen gustar los patrones estandarizados para la jerarquía de su sistema de archivos en /etc/; cada desarrollador de software puede o no tener sus propias ideas sobre lo que constituyen los estándares adecuados. Por lo tanto, una de las primeras cosas que tiende a hacer un mantenedor de paquetes de distribución es parchear los scripts de compilación para configurar y esperar dichos archivos de configuración en un patrón de jerarquía que se corresponda con el resto de la distribución.

  3. Continuando con el tema de la configuración, uno de los primeros "parches" tiende a ser un conjunto de archivos de configuración predeterminados que funcionarán con el resto de la distribución "listos para usar", por así decirlo, lo que permitirá al usuario final comenzar de inmediato. después de la instalación en lugar de tener que ordenar manualmente una configuración de trabajo.

Eso está fuera de mi cabeza. Es muy posible que haya otros, pero espero que esto te dé una idea.


Desde lo alto de mi cabeza, además de la respuesta de @Shadur:

  • Algunas distribuciones desaconsejan el uso de bibliotecas incrustadas o archivos proporcionados por otro paquete. Por ejemplo, mucho software contiene JQuery incrustado, pero Debian tiene un paquete libjs-jquery que lo proporciona.
  • A menudo, upstream mezcla parches de seguridad y cambios incompatibles con versiones anteriores, p. depende de las bibliotecas más nuevas. Para evitar cambios extensos en toda la distribución solo para obtener, digamos, una verificación de certificado más correcta, el mantenedor del paquete puede optar por elegir solo los parches de seguridad.
  • El software original puede entrar en conflicto con otro software, por ejemplo, pueden proporcionar un archivo con la misma ruta, pero contenido diferente. Para resolver este conflicto, es posible que se necesite un parche para buscar el archivo en otro lugar.
  • Upstream a menudo se contenta con instrucciones para agregar manualmente algo a algún otro archivo de configuración de software, que es propenso a errores al instalar y desinstalar paquetes, por lo que la distribución puede preferir usar archivos fragmentados en un directorio *.d.
  • Algunas partes del upstream pueden ser incompatibles con la licencia de la distribución, por lo que el mantenedor del paquete puede decidir parchear las partes problemáticas.
  • Upstream usa rutas con la suposición de otro software específico (por ejemplo, Apache), pero al mantenedor le gustaría que sea compatible con un servidor web genérico.
  • A veces, el desarrollador principal ya no se comunica y el software falla, por lo que se necesita un parche para que siga funcionando.

Hay varias razones:

  1. No existe el software perfecto
  2. No existe el software de empaquetado universal en Linux:

    • apto
    • mmm
    • pacman
    • ...
  3. Por bifurcación

  4. Debido a las diferentes interpretaciones de la Biblia FHS
  5. Debido al ego

Linux
  1. Diferentes formas de instalar software en Ubuntu Linux

  2. ¿Diferentes distribuciones de Linux comparten la misma carpeta /home?

  3. Linux:¿los diferentes kernels de Linux/unix son intercambiables?

  4. ¿Por qué necesitamos un gestor de arranque en un dispositivo integrado?

  5. ¿Qué distribución de Linux tiene los paquetes más actualizados?

Por qué a los programadores les encanta el empaquetado de Linux

Antivirus en Linux:¿realmente debería usarlo y, de ser así, cuándo lo necesito?

¿Por qué no instalar paquetes de software desde Internet?

Cómo instalar VirtualBox en diferentes distribuciones de Linux

Introducción a los comandos de Pacman en distribuciones de Linux basadas en Arch

6 distribuciones de Linux para uso educativo