Compatibilité binaire sous Linux

Bonjour à tous,

Je m’interroge sur la compatibilité binaire sous Linux :

un binaire compilé sur une “Redhat version N” est-il compatible (c’est à dire exécutable directement sans compilation) avec

  • Une Redhat version N+1 ?
  • Une Redhat version N-1 ?
  • Une autre distribution ?

Dans tous ces cas, le considère que l’on travail uniquement sur plateforme x86 et que dans tous les cas, on est capable d’installer la bonne version de la libc …

Dans le cas de la compatibilité avec une Redhat version N-1 et une autre distribution, quel est le paramêtre déterminant la compatibilité ? est-ce le numéro de version du kernel ?

Merci d’avance pour toute information sur le sujet !

Version N+1 : oui dans 95% des cas
Version N-1 : ça dépend si …

La réponse est la même que pour Solaris.
Avec les autres distrib, si il n’y a pas trop de différences au niveau du noyau,libc et plein d’autres truc (voir les dépendances du programme en question) il ne devrait pas y avoir trop de problème même si du bidouillage peut être nécessaire (par ex : RedHat <-> SuSE)

Fais gaffe en changeant ta libc, si tu passe de la 2.3 à la 2.2, tout ce qui est linké dynamiquement avec la 2.3 (càd 99% des progs) ne fonctionneront plus, l’inverse devrait passer

Pour le noyau on s’en fiche un peu en général (faut faire gaffe avec les NPTL sur un noyau 2.6, c’est pas compatible avec un noyau 2.4)

Version N+1 : oui dans 95% des cas
As tu des exemples ou connais tu des raisons pour les 5% des cas restants ?

même si du bidouillage peut être nécessaire (par ex : RedHat <-> SuSE)
de quel genre de bidouillage parles tu ?

Version N+1 : oui dans 95% des cas
As tu des exemples ou connais tu des raisons pour les 5% des cas restants ?
Non, c’est juste pour me préserver :P. Ca peut être des bibliothèques de fonctions qui ont disparu ou dont une version plus récente casse une API (en général, recompiler résoud le prob)

même si du bidouillage peut être nécessaire (par ex : RedHat <-> SuSE)
Des fichiers qui ne sont pas forcément placé là où il faut. Fichiers de conf, scripts d’initialisation en particulier mais il peut y avoir d’autres trucs. Faut se renseigner sur les standards que respectent les distrib en particulier la LSB et la FHS (ou FSH, j’sais plus)

tout depend des librairies que tu utilises.
d’une maniere generale, ca devrait rouler pour des distributions de la meme generation et pour des distrib plus recentes.

Mais pour les anciennes distrib, il faut consulter des evolutions des librairies et les changements eventuels.

c’est pareil sous windows…