Ubuntu vs. CentOS y compatibilidad binaria

9

Estoy tratando de instalar software que se basa en CentOS 4.7. ¿Sabes si también se ejecutará en Ubuntu? Leí que CentOS es 100% compatible con binarios. ¿Es lo mismo cierto para la versión más reciente de Ubuntu?

Ciudadano preocupado
fuente
1
"100% binario compatible" no tiene sentido: ¿compatible con qué? Como dice Caleb, la respuesta a eso es con RHEL.
Gilles 'SO- deja de ser malvado'

Respuestas:

3

Se supone que los binarios de Linux Standard Base (LSB) son compatibles entre las distribuciones que admiten LSB. CentOS tiene soporte LSB. El soporte LSB también está disponible en Ubuntu, pero no sé si los paquetes LSB relevantes están instalados por defecto o no. Es posible probar si una aplicación es compatible con binarios.

Tenga en cuenta que el LSB es controvertido, tanto el estándar en sí mismo como si / cuánto impacto ha tenido.

Alejandro
fuente
15

Un ejecutable compilado para una distribución de Linux funcionará en otra distribución si esa otra distribución tiene las bibliotecas compartidas requeridas. CentOS tiene versiones de biblioteca bastante antiguas, por lo que las versiones de Ubuntu pueden ser demasiado recientes; pero a menudo, si Ubuntu solo tiene libfoo5y libfoo6necesita libfoo3, puede obtenerlo de una versión anterior de Ubuntu.

CentOS y Ubuntu utilizan diferentes sistemas de empaquetado: rpm vs. deb. Puede convertir un rpm a un deb con alien. El paquete resultante puede o no ser instalable dependiendo de si tiene las dependencias requeridas. Puede ser más fácil convertir las rpm a un archivo plano (nuevamente con alien) y descomprimirlo en un directorio separado bajo /opto /usr/local.

Si el programa no viene con una lista de dependencias, puede ejecutar ldd /path/to/binarypara ver qué bibliotecas requiere. Verás resultados como libfoo.so.4 => not foundsi faltara algo.

Gilles 'SO- deja de ser malvado'
fuente
¿Cómo se usa la función "alienígena"? en el símbolo del sistema Gnome?
Concerned_Citizen
@GTyler Sí, alienes un programa de línea de comandos. No sé si hay una GUI alrededor. Si no está familiarizado con la línea de comandos, le recomiendo que intente obtener un paquete binario para Ubuntu.
Gilles 'SO- deja de ser malvado'
12

CentOS es "100% compatible con binarios" con su contraparte comercial , RedHat Enterprise Linux . Debido a que RHEL es un sistema con licencia que incluye contratos de soporte y varias cosas empresariales, no todos quieren ejecutarlo. Sin embargo, en un mundo de código abierto, todo el desarrollo tiene que ser compartido, por lo que si bien cobran por los contratos de soporte, los medios y lo que sea, todavía tienen que compartir la fuente. CentOS es un reenvasado de eso para proporcionarlo a la comunidad, de forma gratuita.

Además, la "compatibilidad 100%" es solo entre las versiones equivalentes de RHEL y CentOS . Las versiones de la biblioteca cambian con cada versión principal, pero dado que estos proyectos se lanzan sincronizados, puede intercambiar paquetes entre ellos siempre que ambos estén configurados para la misma versión principal.

Las diferencias entre las distribuciones, particularmente las distribuciones basadas en RPM como CentOS y las basadas en Debian como Ubuntu pueden ser legibles, y un paquete dado no será portátil entre ellas. Sin embargo, los sistemas generales son más o menos los mismos, el software desarrollado para uno generalmente puede compilarse fácilmente para el otro, solo tiene que compilarse y empaquetarse de manera un poco diferente. Si desea obtener todas las versiones correctas de la biblioteca, los archivos binarios de uno realmente funcionarán en otro. Ver la respuesta de Gilles .

Caleb
fuente
0

CentOS es estable a largo plazo, por lo que tiene bibliotecas más antiguas con las que los binarios compilados en sistemas más nuevos no se vincularán. CentOS usa el administrador de paquetes rpm, y Ubuntu usa Debian apt. Entonces los paquetes ni siquiera son compatibles.

En general, si lo desea en CentOS y aún no lo tiene, tendrá que construir un RPM desde la fuente, en otra máquina CentOS.

Keith
fuente