Zarówno RedHat, jak i SUSE mają długą tradycję Linuksa dla przedsiębiorstw i udało im się wyprodukować i przetestować te pakiety. Z biegiem czasu pojawi się więcej przykładów pakietów, które zostały przetestowane pod kątem działania na Ubuntu. W rzeczywistości wiele takich pakietów od zeszłego roku jest testowanych pod kątem współpracy z Ubuntu. W miarę jak Canonical zawiera umowy z większą liczbą dostawców, będzie więcej pakietów z certyfikatem Ubuntu.
Pierwsze pytanie: jeśli chcesz stworzyć program działający we wszystkich dystrybucjach, utwórz statyczny (w porównaniu do dynamicznego) plik wykonywalny. Plik statically-linked
wykonywalny nie zależy od bibliotek systemowych, dlatego może działać między dystrybucjami, o ile architektura (taka jak Intel / AMD) jest taka sama.
Oto program
int main(void)
{
printf("Hello, World!\n");
return 0;
}
Skompilujmy jak zwykle,
$ 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
$
Co więc możesz zrobić z tym programem VHDL? Pobierz plik .rpm i przekonwertuj go na .deb, używając alien . Następnie zainstaluj. Jeśli zadziałało, wszystko w porządku. Jeśli to nie działa, użyj, ldd
aby dowiedzieć się, którego pliku biblioteki brakuje. W najgorszym przypadku utwórz maszynę wirtualną dla innych dystrybucji systemu Linux i uruchom tam program.