Como dijeron varios respondedores, no es tanto que cierto formato de paquete sea claramente superior. Técnicamente, pueden ser más o menos comparables. Desde mi perspectiva, muchas de las diferencias, y por qué las personas prefieren una sobre la otra, tienen que ver con:
- La filosofía del diseño del paquete original y el público objetivo.
- El tamaño de la comunidad y, por extensión, la calidad y riqueza de los repositorios.
Filosofía:
En el mundo Ubuntu / Debian / Mint / ..., los usuarios esperan que el paquete instalado "funcione" una vez que esté instalado. Esto significa que durante la instalación, se espera que los paquetes se encarguen de todo lo necesario para que realmente funcionen bien, incluidos, entre otros:
- configurar trabajos cron necesarios u opcionales
- configurar alternativas / alias
- configurar scripts de inicio / apagado
- incluidos todos los archivos de configuración necesarios con valores predeterminados que tienen sentido
- mantener versiones antiguas de bibliotecas y agregar enlaces simbólicos con versiones correctas a bibliotecas (.so's) para compatibilidad con versiones anteriores
- Soporte limpio para binarios de múltiples arcos (32 y 64 bits) en la misma máquina, etc.
En el mundo de las rpm, es cierto que esta era la situación hace varios años, y puede haber mejorado desde entonces, me encontré teniendo que ejecutar pasos adicionales (por ejemplo, chkconfig, habilitar trabajos cron) para que los paquetes realmente funcionen. Esto puede estar bien para los administradores de sistemas o las personas que tienen conocimientos sobre Unix, pero hace que las experiencias de los novatos sufran. Tenga en cuenta que no es que el formato del paquete RPM en sí mismo evite que esto suceda, es solo que muchos paquetes de facto no están "completamente hechos" desde la perspectiva de un novato.
Tamaño de la comunidad, participación y riqueza de repositorios:
Dado que la comunidad ubuntu / debian / mint / ... es más grande, hay más personas involucradas en el empaquetado y prueba de software. Encontré que la riqueza y la calidad de los repositorios son superiores. En ubuntu, rara vez, si es que lo necesito, necesito descargar el código fuente y construir desde él. Cuando cambié de Red Hat a Ubuntu en casa, el repositorio típico de RHEL tenía ~ 3000 paquetes, mientras que al mismo tiempo, ubuntu + universe + multiverse, todos disponibles directamente desde cualquier espejo Canonical, tenía ~ 30,000 paquetes (aproximadamente 10x). La mayoría de los paquetes que buscaba en formato RPM no eran fácilmente accesibles a través de una simple búsqueda y haciendo clic en el administrador de paquetes. Exigieron cambiar a repositorios alternativos, buscar en el sitio web del servicio rpmfind, etc. Esto, en la mayoría de los casos, en lugar de resolver el problema, interrumpió mi instalación al no restringir qué dependencias pueden o no actualizarse correctamente. Llegué al fenómeno del "infierno de la dependencia", como lo describió Shawn J. Goff anteriormente.
En contraste en Ubuntu / Debian, descubrí que casi nunca necesito construir desde la fuente. También por:
- El ciclo de lanzamiento rápido de Ubuntu (6 meses)
- La existencia de PPA totalmente compatibles que funcionan fuera de la caja
- Los repositorios de fuente única (todos alojados por Canonical) no necesitan buscar repositorios alternativos / complementarios
- Experiencia de usuario perfecta desde hacer clic para ejecutar
Nunca tuve que comprometer versiones anteriores de paquetes que me importaban, incluso cuando no fueron mantenidos por desarrolladores oficiales (canónicos). Nunca tuve que abandonar mi amigable administrador de paquetes GUI favorito para realizar una búsqueda conveniente por palabra clave, para encontrar e instalar cualquier paquete que quisiera. Además, algunas veces instalé paquetes debian (no canónicos) en Ubuntu y funcionaron bien, a pesar de que esta compatibilidad no está oficialmente garantizada.
Tenga en cuenta que esto no está destinado a iniciar una guerra de llamas, es solo compartir mi experiencia de haber usado ambos mundos en paralelo durante varios años (trabajo vs hogar).
debian
directorio existe en el directorio en el que se extrajo la fuente ascendente, y Debian valora mucho el concepto de un tarball fuente prístino. Cuando se crea un paquete fuente, hay tres archivos (dos para paquetes nativos) que en conjunto se denominan paquete fuente: el tarball ascendente (preferiblemente prístino, la política de Debian requiere que se vuelvan a empaquetar algunos proyectos), un tarball del directorio debian para el nuevo formato 3.0, (un diferencial para el antiguo formato 1.0) y un .dsc.