當然是可以的,我經常把我在gentoo下面編譯好的程式,直接拷到我們的叢集上面執行,叢集執行的Rock OS應該類似CentOS,是RHEL的翻版。想要通用性的話,最簡單方案就是自帶*.so動態連結庫釋出,或者靜態編譯到可執行程式裡面。核心版本你一般不用管,一般的應用程式不會直接和核心互動;g++的版本一致肯定沒問題,但是一般也不需要嚴格一致,小版本的升級是保持ABI相容性的。很多人提到linux的依賴性和包管理器。但是:1. 依賴性是客觀存在於任何使用動態連結庫,vm等的作業系統的。Windows下面你安裝程式經常需要裝幾個x86 redistributable,.net framework之類的,這就是依賴性。Linux和windows下面的商業軟體的解決辦法也是一樣的,都是自帶這些東西,安裝的時候順便安裝了,或者提示使用者,要求使用者自己安裝。2. 包管理器是為了方便管理的,而不是專門給你增加限制的。你當然可以在包管理器之外安裝軟體,你的/opt和/usr/local裡面那些商業軟體,都是跳過包管理器安裝的,就跟windows下面的商業軟體安裝到你的c:\program files一樣。要說Linux相對於Win/Mac的相容性麻煩,唯一的問題在於發行版多。主流的發行版都會遵循統一的標準,二進位制發行的相容性不難做到。但是不排除你可能遇到還在使用gcc 3.x的發行版,但是Win/Mac遇上這種問題也沒轍,你現在能輕易做到發行的win軟體在windows 95上面執行麼?現在作業系統都是類似的,問題也都是類似共通的。如果一個作業系統有啥特別好的解決方案,別的系統也一定會實現。有人黑linux的依賴性,有人黑win檔案連續存放導致磁碟碎片以及不使用空餘記憶體做檔案快取,這些要麼是錯的,要麼是不知道多少年前的老黃曆了。各大作業系統絕對是共性遠大於異性。
當然是可以的,我經常把我在gentoo下面編譯好的程式,直接拷到我們的叢集上面執行,叢集執行的Rock OS應該類似CentOS,是RHEL的翻版。想要通用性的話,最簡單方案就是自帶*.so動態連結庫釋出,或者靜態編譯到可執行程式裡面。核心版本你一般不用管,一般的應用程式不會直接和核心互動;g++的版本一致肯定沒問題,但是一般也不需要嚴格一致,小版本的升級是保持ABI相容性的。很多人提到linux的依賴性和包管理器。但是:1. 依賴性是客觀存在於任何使用動態連結庫,vm等的作業系統的。Windows下面你安裝程式經常需要裝幾個x86 redistributable,.net framework之類的,這就是依賴性。Linux和windows下面的商業軟體的解決辦法也是一樣的,都是自帶這些東西,安裝的時候順便安裝了,或者提示使用者,要求使用者自己安裝。2. 包管理器是為了方便管理的,而不是專門給你增加限制的。你當然可以在包管理器之外安裝軟體,你的/opt和/usr/local裡面那些商業軟體,都是跳過包管理器安裝的,就跟windows下面的商業軟體安裝到你的c:\program files一樣。要說Linux相對於Win/Mac的相容性麻煩,唯一的問題在於發行版多。主流的發行版都會遵循統一的標準,二進位制發行的相容性不難做到。但是不排除你可能遇到還在使用gcc 3.x的發行版,但是Win/Mac遇上這種問題也沒轍,你現在能輕易做到發行的win軟體在windows 95上面執行麼?現在作業系統都是類似的,問題也都是類似共通的。如果一個作業系統有啥特別好的解決方案,別的系統也一定會實現。有人黑linux的依賴性,有人黑win檔案連續存放導致磁碟碎片以及不使用空餘記憶體做檔案快取,這些要麼是錯的,要麼是不知道多少年前的老黃曆了。各大作業系統絕對是共性遠大於異性。