O RedHat e o SUSE têm longa tradição no Linux corporativo e conseguiram produzir e testar esses pacotes. Com o passar do tempo, haverá mais exemplos de pacotes que foram testados para funcionar no Ubuntu. De fato, muitos desses pacotes desde o ano passado foram testados para funcionar com o Ubuntu. Como a Canonical faz acordos com mais fornecedores, haverá mais pacotes certificados pelo Ubuntu.
Para sua primeira pergunta: se você deseja criar um programa que seja executado em todas as distribuições, crie um executável estático (comparado ao dinâmico). Um statically-linked
executável não depende das bibliotecas do sistema; portanto, pode funcionar entre distribuições, desde que a arquitetura (como Intel / AMD) seja a mesma.
Aqui está um programa,
int main(void)
{
printf("Hello, World!\n");
return 0;
}
Vamos compilar normalmente,
$ 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
$
Então, o que você pode fazer com esse programa VHDL? Obtenha o arquivo .rpm e converta-o em .deb usando o alien . Então instale. Se funcionou, você está bem. Se não funcionar, use ldd
para descobrir qual arquivo de biblioteca está faltando. No pior cenário, crie uma máquina virtual para essas outras distribuições Linux e execute o programa lá.