El objetivo de esta pagina es discutir sobre la portabilidad de programas binarios entre diferentes versiones de linux (no .rpm vs .deb o vs otro sistema de empaquetamiento)
Un solo binario para todas las distros
¿ Si solo hay una fuente de desarrollo por que hay un paquete diferente para cada distribucion ?
Cada distro corre un numero de version en su software diferente al de otras(ver distros) y la GNU toolchain no soporta "compilar en nuevo, correr en viejo" en otras palabras, el procedo de compilar el mismo programa en un sistema viejo y un sistema nuevo puede producir binarios diferentes con diferentes requerimientos
¿Qué diferencia una distribucion de otra para que sus binarios no funcionen?
La organizacion de los archivos, esto intenta estandarizarlo el Filesystem Hierarchy Standard
Herramientas para conseguirlo
Aunque el proyecto Autopackage va mas alla del objetivo de esta pagina una de sus metas es la portabilidad binaria y para consegirla han creado APbuild y una muy buena documentacion sobre el tema
Distros
Distribuciones y la version que usan de herramientas importantes para la compatibilidad binaria: gcc y glibc
Pruebas
Descomprimiendo y probando algunos paquetes para ver como se comportan en una distro diferente a la que provienen
rpm2cpio paquete.rpm | cpio -idv
ar -x paquete.deb
Coreutils
Las GNU Core Utilities son las utilidades basicas para manejo de archivos, shell y manipulacion de texto del sistema operativo GNU
Fuentes
GNU 5.97
Paquetes
Resultados
El comando ls de todos los paquetes funciona perfectamente en CentOS 4.2(con glibc-2.3.4) excepto el de fedora:
fedora/bin/ls: /lib/tls/libc.so.6: version `GLIBC_2.4' not found (required by fedora/bin/ls)
Otras Soluciones
Standard Linux Distribution Todas las distros con la misma version de gcc y glibc.
Existe otras formas de instalación de paquetes que resuelven el inconveniente de la compatibilidad binaria, al permitir que las aplicaciones sean autocontenidas (incluyendo sus depedencias) o que incluso puedan coexistir diferentes versiones del mismo programa con diferentes requerimientos y versiones de paquetes. Para averiguar sobre ellas recomendamos visitar el artículo Otras formas de instalación
Herramientas por estudiar
Algunas herramientas que podrian ser utiles, pero que todavia no conozco:
Cosas por Hacer
- Revisar LSB
Conferencia: How to create RPM's that are compatible between Linux distributions de Paul MacKay (dictada en linux world 2005)
