在不同的操作系统中测试程序

时间:2010-03-21 19:11:07

标签: linux unix testing

我想通过在不同的操作系统版本中安装来测试我的程序。我的开发计算机是Ubuntu。我可以通过在VirtualBox中安装并运行我的程序来测试其他Linux版本吗?

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

此外,Linux中运行的程序在Unix OS中运行的可能性是多少?该程序不是开源的,我只能分发预先构建的二进制文件。

3 个答案:

答案 0 :(得分:4)

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

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

如果您有64位系统,则可以运行32位VM并进行测试。

写入较新版本的glibc的程序通常适用于旧版本,但不是相反。因此,如果您需要支持较旧的发行版,则必须在那里构建。

对于大多数程序而言,glibc版本是内核版本的适当代理,但如果你努力工作,你也可以创建内核版本依赖。

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

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

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

  1. BSD家族:netbsd / freebsd。您可以在VM中运行它们。你不能指望二进制文件可以随身携带。
  2. (Open)Solaris:您可以在VM中运行它,至少对于Intel芯片。你不能指望二进制文件可以随身携带。
  3. HP-UX:您无法在VM中运行它。
  4. AIX:您无法在VM中运行它。
  5. 维护整个动物园的代码是一项很重要的工作,不能轻易进行。

答案 1 :(得分:1)

没有单一的“Unix OS”。您可以在VM中设置FreeBSD或类似功能,以便使用非Linux操作系统进行测试。

答案 2 :(得分:1)

如果应用程序是封闭源代码,您需要提供一种分发应用程序的好方法。您必须指定所需库等内容。此外,您可能必须为各种体系结构(arm,x86,x64等)提供大量构建。有许多Linux发行版和Unix变种--RedHat,SuSE,Debian,FreeBSD等。你可以有很多组合来解决这个问题。