2010-03-21 101 views
2

我想通过在不同的操作系统版本中安装它来测试我的程序。我的开发电脑是Ubuntu。我可以通过在VirtualBox中安装它们并在那里运行我的程序来测试其他哪些Linux版本?在不同的操作系统中测试程序

虽然现在对我来说并不重要,但我想尝试一些不同的事情,看看会发生什么。

此外,Linux中运行的程序在Unix操作系统中有什么机会?该程序不是开源的,我只能分发预构建的二进制文件。

回答

4

让我们从顶部开始。你已经用一些编程语言在一些Linux发行版上构建了一个程序。你没有告诉我们哪个。

如果它在C中,那么你的前两个问题是硬件和glibc。通过硬件,我的主要意思是32位与64位,但也值得注意的是Linux可以在PPC,ARM和SPARC上运行。

如果您有一个64位系统,您可以运行一个32位虚拟机并进行测试。

写入较新版本的glibc的程序通常适用于旧版本,但不是相反。所以,如果你需要支持一个较老的发行版,你必须在那里建立。

对于大多数程序,glibc版本是内核版本的充分替代品,但是如果您足够努力地工作,您也可以创建内核版本依赖性。

如果你的程序是C++,那么你有一个额外的担心:C++/libstdC++运行时。并非所有发行版都具有运行所有可能程序所需的共享库。

在某些情况下,编译并链接到较旧版本的g ++的程序无法在较新的发行版中找到它所需的libstdC++。

然后你提到'Unix'。在现代世界中,没有任何实际意义上的Unix这样的东西。有几种系统可能需要支持,你可能会担心这里>

  1. BSD系列:netbsd/freebsd。你可以在虚拟机中运行它们。你不能期望二进制文件能够传递。
  2. (Open)Solaris:您可以在虚拟机中运行此功能,至少对于英特尔芯片来说。你不能期望二进制文件能够传递。
  3. HP-UX:您无法在虚拟机中运行此操作。
  4. AIX:您无法在虚拟机中运行此操作。

在整个动物园里工作的维护代码是一项很大的工作,不要轻易承担。

1

没有单一的“Unix操作系统”。您可以在虚拟机中设置FreeBSD或类似软件,以便使用非Linux操作系统进行测试。

1

如果您的应用程序是封闭源代码,您需要想出一个分配应用程序的好方法。你将不得不指定所需的库等东西。另外,您可能需要为各种体系结构(arm,x86,x64等)提供大量的构建。有很多Linux发行版和Unix变体--RedHat,SuSE,Debian,FreeBSD等等。你将有很多组合来解决。