RedHat et SUSE ont une longue tradition Linux d'entreprise et ont réussi à produire et à tester ces packages. Au fil du temps, il y aura plus d'exemples de paquets qui ont été testés pour fonctionner sur Ubuntu. En fait, de nombreux packages de ce type depuis l'année dernière sont testés pour fonctionner avec Ubuntu. Comme Canonical conclut des accords avec plus de fournisseurs, il y aura plus de packages certifiés Ubuntu.
Pour votre première question: si vous voulez créer un programme qui s'exécute sur toutes les distributions, créez un exécutable statique (par rapport à dynamique). Un statically-linked
exécutable ne dépend pas des bibliothèques système, il peut donc fonctionner entre les distributions, tant que l'architecture (comme Intel / AMD) est la même.
Voici un programme,
int main(void)
{
printf("Hello, World!\n");
return 0;
}
Compilons comme d'habitude,
$ gcc helloworld.c -o helloworld
$ ./helloworld
Hello, World!
$ ldd helloworld
libc.so.6 => /lib/libc.so.6 (0x00007f3cc3481000)
...
$
$ gcc helloworld.c -static -o helloworld_static
$ ./helloworld
Hello, World!
$ ldd helloworld_static
not a dynamic executable
$
Alors, que pouvez-vous faire avec ce programme VHDL? Obtenez le fichier .rpm et convertissez-le en .deb en utilisant alien . Ensuite, installez. Si ça a marché, ça va. Si cela ne fonctionne pas, utilisez ldd
pour déterminer quel fichier de bibliothèque est manquant. Dans le pire des cas, créez une machine virtuelle pour ces autres distributions Linux et exécutez-y le programme.