Me pregunto si es teóricamente posible construir una distribución de Linux que pueda soportar paquetes rpm y debian.
¿Hay alguna distribución en vivo que soporte ambas?
¿Y si no es posible?
linux
package-management
rpm
dpkg
Alkabary
fuente
fuente
alien
para convertir paquetes a archivos .tgz funcionaría :) Si usa la fuente debs o rpms, LFS también podría hacerlo.Respuestas:
Bedrock Linux hace esto. No digo que haya hecho esto, o que sea una buena idea, pero se está haciendo.
fuente
No pensé que haya distribuciones por ahí que sean compatibles de forma nativa, pero resulta que hay una en desarrollo, Bedrock Linux (gracias a iMalinowski por la información). En otras distribuciones, puede usar herramientas de conversión como
alien
convertir de un formato a otro. Cualquier cosa basada en software es factible, dado el tiempo y la energía suficientes, por lo que sería posible construir dicha distribución (pero dadas las diferencias entre las capacidades.deb
y los.rpm
paquetes, es bastante difícil).Sin embargo, todo esto probablemente se deriva de la idea de que admitir ambos formatos de paquete facilitaría la vida, ya que podría instalar paquetes desde cualquier lugar (bueno, en cualquier lugar que proporcione un
.deb
o.rpm
). Filosóficamente, eso es defectuoso. Una distribución es un conjunto coherente de paquetes; Si desea proporcionar software para esa distribución, realmente necesita apuntarlo específicamente, lo que incluye el uso de su formato de paquete (y lo más importante, los metadatos). No tiene sentido admitir múltiples formatos de paquetes de forma nativa.(En el mundo de Debian, los paquetes pueden funcionar en variantes que no son su objetivo principal, porque la nomenclatura del paquete es bastante homogénea y porque la mayoría de las distribuciones caben en un árbol de herencia. Eso no es cierto en el mundo de RPM. En ambos casos, mezclar y emparejar es una mala idea.)
Debe considerar su distribución como una base sobre la cual construir su sistema deseado, apegándose a las reglas y al ecosistema de su distribución, sin mezclar elementos de otras distribuciones. Necesita abstracciones de nivel superior para admitir mezclas y combinaciones (o más bien, para proporcionar entornos de distribución cruzada): el tiempo de ejecución de Steam, Flatpak, etc.
fuente
No, ese monstruo no debe ser construido. A diferencia de, digamos, un paquete de aplicaciones MacOS, que generalmente incluye todo lo que la aplicación necesita para ejecutarse en el sistema operativo, los paquetes RPM y .deb casi siempre dependen de otros paquetes, como las bibliotecas compartidas. Los paquetes de Linux enumeran los otros paquetes que deben estar presentes, y el administrador de paquetes ayuda a hacer cumplir esos requisitos. Además, las distribuciones de Linux difieren en la forma en que se hacen las cosas (por ejemplo,
/etc/network/interfaces.d
vs./etc/sysconfig/network-scripts
).Ni siquiera debería mezclar paquetes de repositorios arbitrarios dentro de la misma familia de formatos de paquete. Es decir, la instalación de paquetes SuSE en una máquina CentOS solo es un problema, a pesar de que ambos usan RPM. Ni siquiera instalaría paquetes destinados a una versión diferente del mismo sistema operativo (por ejemplo, paquetes Ubuntu 14.04 en un sistema 16.04) a menos que supiera exactamente lo que estaba haciendo.
Por lo tanto, tratar de admitir tanto RPM como .deb en el mismo sistema está fuera de discusión. En ciertas situaciones desesperadas, puede convertir paquetes específicos usando
alien
, pero debe esperar hacer un gran esfuerzo para solucionar los problemas que inevitablemente surgirían de tales ataques.fuente
Bueno, hay
alien
( página de manual ), que puede convertir entrerpm
,deb
etc., pero supongo que los problemas reales provienen del manejo de dependencias (diferentes nombres de paquetes para el software) y ubicaciones de archivos de configuración.Por supuesto, si quiere decir que ambos tipos de paquetes podrían provenir de la distribución en sí, eso podría solucionarse, pero entonces, ¿por qué alguien haría eso? (Y aún necesitaría convertir todo en uno u otro , ya que no creo que
dpkg
sepa leer las bases de datosrpm
y viceversa).fuente
Sí, es posible, pero arruina la distribución.
Los paquetes no son solo el formato, que se puede portar fácilmente de un formato a otro.
Nota: las herramientas de instalación de paquetes deben ser portadas, porque a uno le gustaría tener una lista centralizada de todos los paquetes, versiones, dependencias, archivos de configuración, scripts previos y posteriores a la instalación (si reemplaza un paquete con otro, en otro paquete formato, espera que los scripts de desinstalación (formato antiguo) se ejecuten desde el nuevo sistema de paquetes.
Pero una distribución y paquetes son mucho más que un formato de paquetes. Por ejemplo, para Debian: queremos colocar los archivos en el lugar correcto, queremos proporcionar la página del manual, queremos tener algunos scripts de desamonización comunes, queremos que el programa se ejecute en muchas arquitecturas, varios entornos gráficos, para que un usuario encuentre él mismo está familiarizado dentro de una distribución también con nuevos paquetes. paquetes.
En Debian queremos que los paquetes sean fácilmente construibles por los usuarios (de las fuentes), para que uno pueda personalizar algunos paquetes importantes (para él). Esto requiere una gran cantidad de infraestructura, que la mayoría de los autores no pueden proporcionar (compilación y prueba automáticas en varias arquitecturas, y de vez en cuando). Y también los requisitos de licencia de Debian son específicos, por lo que es más fácil bifurcar un paquete o distribución, sin necesidad de verificar todos los paquetes.
Al final, una distribución se realiza por paquetes consistentes, no solo por paquetes.
fuente
Sí, y la mayoría de las distribuciones basadas en .deb ya lo hacen, pero ...
En Debian y las familias relacionadas, al menos, tiene
alien
, lo que le permitirá instalar paquetes RPM.Tendrá los mismos problemas cuando mezcle paquetes que no están diseñados para funcionar con su distribución cuando instale paquetes externos independientemente del formato; si instala un RPM en un sistema basado en DEB, ese RPM debe ser compatible con su sistema , como si estuviera instalando un paquete RPM en un sistema basado en RPM, y ese es el pero. Puedes hacerlo, pero probablemente no quieras.
fuente
Si y no. deb y rpm son solo formatos. Puede admitir ambos formatos pero no tiene sentido. Los paquetes generalmente no son comparables entre las distribuciones, especialmente las distribuciones que no se basan entre sí.
Si todas las distribuciones tuvieran los mismos requisitos de versiones, entonces toda una distribución sería una selección de paquete. Puede instalar cualquier distribución enumerando los paquetes.
Pero las distribuciones deben proporcionar software que puedan soportar. Si una biblioteca que hace que su aplicación funcione no se mantiene y requiere una biblioteca que haya sido reemplazada por otra cosa, ¿cómo resuelve este conflicto? El administrador de paquetes no puede portar código. Puede haber múltiples sucesores elegidos por diferentes distribuciones para.
fuente