Tanto RedHat como SUSE tienen una larga tradición de Linux empresarial y lograron que esos paquetes sean producidos y probados para ellos. A medida que pase el tiempo, habrá más ejemplos de paquetes que han sido probados para funcionar en Ubuntu. De hecho, muchos de estos paquetes desde el año pasado están probados para funcionar con Ubuntu. A medida que Canonical llegue a acuerdos con más proveedores, habrá más paquetes certificados por Ubuntu.
Para su primera pregunta: si desea crear un programa que se ejecute en todas las distribuciones, cree un ejecutable estático (en comparación con dinámico). Un statically-linked
ejecutable no depende de las bibliotecas del sistema, por lo tanto, puede funcionar entre distribuciones, siempre que la arquitectura (como Intel / AMD) sea la misma.
Aquí hay un programa,
int main(void)
{
printf("Hello, World!\n");
return 0;
}
Vamos a compilar como de costumbre
$ 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
$
Entonces, ¿qué puedes hacer con ese programa VHDL? Obtenga el archivo .rpm y conviértalo a .deb usando alien . Luego, instale. Si funcionó, estás bien. Si no funciona, use ldd
para averiguar qué archivo de biblioteca falta. En el peor de los casos, cree una máquina virtual para esas otras distribuciones de Linux y ejecute el programa allí.