2010-03-21 45 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等等。你將有很多組合來解決。

相關問題