我已經編寫了一個應用程序,它至今還不是開源的,我希望在各種Linux發行版中分發可執行文件。做這件事的最好方法是什麼,我已經看了一下.rpm和.deb包裝,但是我找不到它是否可以用於二進制文件。理想情況下,我喜歡OS X上的PackageMaker或Windows上的常規安裝程序,它會自動將其複製到/ usr/bin中。這是.rpm和.deb軟件包的用途,還是我必須捆綁一個自動執行它的shell腳本?在Linux發行版中分發二進制應用程序
回答
RPM和DEB包是在Linux中分發二進制包的兩種主要機制。 RPM由RedHat及其衍生產品(Fedora,CentOS)使用,DEB在Debian和Ubuntu中使用。
.rpm和.deb文件本身通常是「啞」檔案,並且通過預安裝的幫助程序應用程序安裝到文件系統中的正確位置。您不必擔心編寫腳本來安裝文件,除非它是一個非常複雜的應用程序,需要特殊的每個系統配置。
通常的模式我看到分發二進制文件:
- 釋放一個compessed壓縮包(.tar.gz .tar.bz2格式或),並讓發行打包擔心細節。這適用於流行的應用程序,但如果它是新發布的,則沒有人會關心您的應用程序打包它。
- 作爲壓縮包發佈,加上RPM和/或DEB包(取決於客戶的需求)。擁有受支持發行版的客戶可以安裝預先製作的軟件包。任何使用不尋常的發行版的人都可能很樂意從tarball安裝。
rpm和deb將存儲二進制文件。您需要爲每個發行版或發行版變體提供不同的二進制文件,這是因爲在不同的發行版中,路徑不同。
我建議先從兩個你有rpm和deb和釘這兩個發行版。然後,也許做一個混雜的發行版,讓人們可以提取和目錄結構,並自行復制和處理權限。
另外,對於deb等內容,您可以將網站設置爲存儲庫。這使得人們可以很容易地添加repo並在ubuntu中獲取/安裝deb。很多第三方封閉源代碼開發者都這樣做。
這就是.rpm和.deb文件所做的,但是您必須確保installee發行版能夠處理.rpm和.deb文件。如果你想要確保可以在多個發行版中運行,但不確定它們是否具有正確的程序包管理器,那麼你幾乎不得不求助於shell腳本方法。我建議,如果你能擺脫它,建立你的二進制文件都 .rpm和.deb - 這樣,你可以獲得大部分的發行版,並允許用戶以他們舒適和熟悉的方式進行安裝與,你不必嘗試推出自己的安裝程序/卸載程序的shell腳本。
您應該爲您正式支持的每個Linux發行版提供本地軟件包(因爲您正式支持它們,您將對它們進行測試,因此做到這一點應該是微不足道的),並提供一個.tar.gz哪些人可以參加其他活動。
用戶可以隨時爲自己的.rpm等製作一些你不支持的外星人發行版;但除非它在官方支持的操作系統上無法使用,否則他們無法向您投訴。
您正式支持哪些操作系統?您顯然需要對它們進行測試(至少,您需要在每個發行版上的每個操作系統上通過所有迴歸測試套件)。
如果您支持多種體系結構,這當然很複雜。
MojoSetup是一個用戶友好的,完美的交叉distro解決方案和良好的許可(zlib,非常寬容)。它需要的是任何Linux發行版附帶的標準sh
外殼。它還允許通過創建freedesktop.org規範快捷方式來實現桌面快捷方式,這些快捷方式幾乎適用於Linux的所有圖形環境(只需在不同分辨率的PNG中進行轉儲並填充.desktop文件的空白)即可支持。
安裝程序使用非常簡單的Lua編程語言編寫腳本,並有幾個示例安裝腳本in the Mercurial repository以及一個漫長的教程。還有許多年來將其開發工作備份到輕量級的跨發行版安裝程序。
- 1. Linux發行版二進制兼容性
- 2. 如何使Linux的Qt應用程序的二進制分發
- 3. 在Linux中分發QT應用程序
- 4. 如何在Linux發行版中託管asp.net Web應用程序
- 5. 哪個Linux發行版在Rails中進行開發?
- 6. 運行二進制WSGI應用程序
- 7. Linux的哪個發行版最適合Java Web應用程序?
- 8. 清單。在發佈版本中執行二進制時出錯
- 9. 使用API密鑰分發開源應用程序的二進制文件
- 10. 在OSX上分發二進制庫
- 11. iOS:如何分發「並行」應用程序版本進行即席測試
- 12. 轉換iPhone應用程序,通用二進制(第二部分)
- 13. 在Linux上開發Spotify應用程序
- 14. 存儲在應用程序二進制
- 15. 分發用OpenCV構建的程序的二進制可執行文件?
- 16. 如何從distutils二進制發行版中去除源代碼?
- 17. 在應用程序中使用CGI二進制程序
- 18. 在Mysql中分發Java應用程序
- 19. boost版本在Linux發行版
- 20. 如何使用python二進制發行版發佈數據文件?
- 21. nwjs如何在Linux上分發應用程序?
- 22. logparser二進制文件分發
- 23. 分發應用程序的
- 24. 分發IronPython應用程序
- 25. 分發TideSDK應用程序
- 26. iPhone應用程序分發
- 27. 分發Python應用程序
- 28. 分發VFP應用程序
- 29. 分發應用程序WebWorks
- 30. 分發Perl應用程序
還請注意,如果您希望應用程序在其上運行,您將專門針對64位計算機和/或更具異國情調的處理器維護不同的RPM/deb版本。 – Gnudiff 2009-08-16 09:20:26