Ubuntu vs CentOS et compatibilité binaire

9

J'essaie d'installer un logiciel basé sur CentOS 4.7. Savez-vous s'il fonctionnera également sous Ubuntu? J'ai lu que CentOS est 100% compatible binaire. Est-ce la même chose pour la version la plus récente d'Ubuntu?

Citoyen concerné
la source
1
«100% compatible binaire» n'a pas de sens: compatible avec quoi? Comme le dit Caleb, la réponse à cela est avec RHEL.
Gilles 'SO- arrête d'être méchant'

Réponses:

3

Les binaires Linux Standard Base (LSB) sont censés être compatibles entre les distributions qui prennent en charge LSB. CentOS prend en charge LSB. Le support LSB est également disponible dans Ubuntu, mais je ne sais pas si les packages LSB appropriés sont installés par défaut ou non. Il est possible de tester si une application est compatible binaire.

Notez que LSB est controversé, à la fois la norme elle-même et si / combien d'impact il a eu.

Alexandre
la source
15

Un exécutable compilé pour une distribution Linux fonctionnera sur une autre distribution si cette autre distribution possède les bibliothèques partagées requises. CentOS a des versions de bibliothèque assez anciennes, donc les versions d'Ubuntu peuvent être trop récentes; mais souvent si Ubuntu ne possède que libfoo5et libfoo6et si vous en avez besoin, libfoo3vous pouvez le récupérer à partir d'une version antérieure d'Ubuntu.

CentOS et Ubuntu utilisent des systèmes d'emballage différents: rpm vs deb. Vous pouvez convertir un rpm en deb avec alien. Le package résultant peut être ou non installable selon que vous disposez des dépendances requises. Il peut être plus facile de convertir le rpm en une archive simple (à nouveau avec alien) et de le décompresser dans un répertoire séparé sous /optou /usr/local.

Si le programme ne contient pas de liste de dépendances, vous pouvez exécuter ldd /path/to/binarypour voir les bibliothèques dont il a besoin. Vous verrez une sortie comme libfoo.so.4 => not foundsi quelque chose manquait.

Gilles 'SO- arrête d'être méchant'
la source
Comment utilisez-vous la fonction "étranger"? sur l'invite de commande Gnome?
Concerned_Citizen
@GTyler Oui, alienc'est un programme en ligne de commande. Je ne sais pas s'il y a une interface graphique autour. Si vous n'êtes pas familier avec la ligne de commande, je vous recommande d'essayer d'obtenir un package binaire pour Ubuntu.
Gilles 'SO- arrête d'être méchant'
12

CentOS est «100% compatible binaire» avec son homologue commercial , RedHat Enterprise Linux . Parce que RHEL est un système sous licence comprenant des contrats de support et diverses choses d'entreprise, tout le monde ne veut pas l'exécuter. Cependant, dans un monde open source, tout le développement doit être partagé, alors même s'ils facturent les contrats de support, les médias et autres, ils doivent toujours partager la source. CentOS est un ré-emballage de cela pour le fournir à la communauté, gratuitement.

De plus, la «compatibilité à 100%» ne s'applique qu'aux versions équivalentes de RHEL et CentOS . Les versions des bibliothèques changent avec chaque version principale, mais comme ces projets sont synchronisés, vous pouvez échanger des packages entre eux tant qu'ils sont tous les deux configurés pour la même version principale.

Les différences entre les distributions, en particulier les distributions basées sur RPM comme CentOS et celles basées sur Debian comme Ubuntu, peuvent être légion, et un paquet donné ne sera pas portable entre elles. Cependant, les systèmes globaux sont à peu près les mêmes, les logiciels développés pour l'un peuvent généralement être facilement compilés pour l'autre, il suffit de les compiler et de les emballer un peu différemment. Si vous souhaitez extraire toutes les bonnes versions de bibliothèque, les binaires de l'une fonctionneront en fait sur une autre. Voir la réponse de Gilles .

Caleb
la source
0

CentOS est stable à long terme et possède donc des bibliothèques plus anciennes avec lesquelles les binaires compilés sur les systèmes plus récents ne seront pas liés. CentOS utilise le gestionnaire de paquets rpm et Ubuntu utilise Debian apt. Les packages ne sont donc même pas compatibles.

Généralement, si vous le voulez sur CentOS et qu'il ne l'a pas déjà, vous devrez créer un RPM à partir de la source, sur une autre machine CentOS.

Keith
la source