我想通过在不同的操作系统版本中安装来测试我的程序。我的开发计算机是Ubuntu。我可以通过在VirtualBox中安装并运行我的程序来测试其他Linux版本吗?
虽然现在对我来说并不重要,但我想尝试不同的事情,看看会发生什么。
此外,Linux中运行的程序在Unix OS中运行的可能性是多少?该程序不是开源的,我只能分发预先构建的二进制文件。
答案 0 :(得分:4)
让我们从顶部开始。你已经用某种编程语言在一些Linux发行版上构建了一个程序。你还没有告诉我们哪个。
如果它在C中,那么你的前两个问题是硬件和glibc。通过硬件,我主要意味着32位与64位,但同样值得注意的是Linux在PPC,ARM和SPARC上运行。
如果您有64位系统,则可以运行32位VM并进行测试。
写入较新版本的glibc的程序通常适用于旧版本,但不是相反。因此,如果您需要支持较旧的发行版,则必须在那里构建。
对于大多数程序而言,glibc版本是内核版本的适当代理,但如果你努力工作,你也可以创建内核版本依赖。
如果您的程序是C ++,那么您还有一个额外的担心:C ++ / libstdc ++运行时。并非所有发行版都具有运行所有可能程序所需的共享库。
在某些情况下,编译并链接到旧版g ++的程序将无法在较新的发行版中找到它所需的libstdc ++。
然后你提到'Unix'。在任何实际意义上,在现代世界中都没有Unix这样的东西。您可能需要支持多种系统,您可能会担心这些>
维护整个动物园的代码是一项很重要的工作,不能轻易进行。
答案 1 :(得分:1)
没有单一的“Unix OS”。您可以在VM中设置FreeBSD或类似功能,以便使用非Linux操作系统进行测试。
答案 2 :(得分:1)
如果应用程序是封闭源代码,您需要提供一种分发应用程序的好方法。您必须指定所需库等内容。此外,您可能必须为各种体系结构(arm,x86,x64等)提供大量构建。有许多Linux发行版和Unix变种--RedHat,SuSE,Debian,FreeBSD等。你可以有很多组合来解决这个问题。