红帽和SUSE都有着悠久的企业Linux传统,并成功地为它们生产和测试了这些软件包。随着时间的推移,将会有更多经过测试可在Ubuntu上运行的软件包的例子出现。事实上,自去年以来,许多这样的软件包都已经经过测试,可以与Ubuntu一起使用。随着Canonical与更多供应商达成协议,将会有更多经过Ubuntu认证的软件包。
对于您的第一个问题:如果您想创建一个在所有发行版上运行的程序,请创建一个静态(相对于动态)可执行文件。一个静态链接的可执行文件不依赖于系统库,因此只要架构(如Intel/AMD)相同,就可以在不同的发行版之间工作。
这是一个程序,
int main(void)
{
printf("Hello, World!\n");
return 0;
}
让我们正常编译。
$ 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
$
那么,你可以用那个VHDL程序做什么呢?下载.rpm文件并使用
alien将其转换为.deb文件。然后进行安装。如果成功了,就没问题了。如果不成功,使用
ldd
命令找出缺失的库文件是哪个。在最糟糕的情况下,为其他Linux发行版创建一个虚拟机,在那里运行该程序。