9

我已經編寫了一個應用程序,它至今還不是開源的,我希望在各種Linux發行版中分發可執行文件。做這件事的最好方法是什麼,我已經看了一下.rpm和.deb包裝,但是我找不到它是否可以用於二進制文件。理想情況下,我喜歡OS X上的PackageMaker或Windows上的常規安裝程序,它會自動將其複製到/ usr/bin中。這是.rpm和.deb軟件包的用途,還是我必須捆綁一個自動執行它的shell腳本?在Linux發行版中分發二進制應用程序

回答

6

RPM和DEB包是在Linux中分發二進制包的兩種主要機制。 RPM由RedHat及其衍生產品(Fedora,CentOS)使用,DEB在Debian和Ubuntu中使用。

.rpm和.deb文件本身通常是「啞」檔案,並且通過預安裝的幫助程序應用程序安裝到文件系統中的正確位置。您不必擔心編寫腳本來安裝文件,除非它是一個非常複雜的應用程序,需要特殊的每個系統配置。

通常的模式我看到分發二進制文件:

  • 釋放一個compessed壓縮包(.tar.gz .tar.bz2格式或),並讓發行打包擔心細節。這適用於流行的應用程序,但如果它是新發布的,則沒有人會關心您的應用程序打包它。
  • 作爲壓縮包發佈,加上RPM和/或DEB包(取決於客戶的需求)。擁有受支持發行版的客戶可以安裝預先製作的軟件包。任何使用不尋常的發行版的人都可能很樂意從tarball安裝。
+0

還請注意,如果您希望應用程序在其上運行,您將專門針對64位計算機和/或更具異國情調的處理器維護不同的RPM/deb版本。 – Gnudiff 2009-08-16 09:20:26

0

rpm和deb將存儲二進制文件。您需要爲每個發行版或發行版變體提供不同的二進制文件,這是因爲在不同的發行版中,路徑不同。

我建議先從兩個你有rpm和deb和釘這兩個發行版。然後,也許做一個混雜的發行版,讓人們可以提取和目錄結構,並自行復制和處理權限。

另外,對於deb等內容,您可以將網站設置爲存儲庫。這使得人們可以很容易地添加repo並在ubuntu中獲取/安裝deb。很多第三方封閉源代碼開發者都這樣做。

0

這就是.rpm和.deb文件所做的,但是您必須確保installee發行版能夠處理.rpm和.deb文件。如果你想要確保可以在多個發行版中運行,但不確定它們是否具有正確的程序包管理器,那麼你幾乎不得不求助於shell腳本方法。我建議,如果你能擺脫它,建立你的二進制文件 .rpm和.deb - 這樣,你可以獲得大部分的發行版,並允許用戶以他們舒適和熟悉的方式進行安裝與,你不必嘗試推出自己的安裝程序/卸載程序的shell腳本。

0

您應該爲您正式支持的每個Linux發行版提供本地軟件包(因爲您正式支持它們,您將對它們進行測試,因此做到這一點應該是微不足道的),並提供一個.tar.gz哪些人可以參加其他活動。

用戶可以隨時爲自己的.rpm等製作一些你不支持的外星人發行版;但除非它在官方支持的操作系統上無法使用,否則他們無法向您投訴。

您正式支持哪些操作系統?您顯然需要對它們進行測試(至少,您需要在每個發行版上的每個操作系統上通過所有迴歸測試套件)。

如果您支持多種體系結構,這當然很複雜。

1

MojoSetup是一個用戶友好的,完美的交叉distro解決方案和良好的許可(zlib,非常寬容)。它需要的是任何Linux發行版附帶的標準sh外殼。它還允許通過創建freedesktop.org規範快捷方式來實現桌面快捷方式,這些快捷方式幾乎適用於Linux的所有圖形環境(只需在不同分辨率的PNG中進行轉儲並填充.desktop文件的空白)即可支持。

安裝程序使用非常簡單的Lua編程語言編寫腳本,並有幾個示例安裝腳本in the Mercurial repository以及一個漫長的教程。還有許多年來將其開發工作備份到輕量級的跨發行版安裝程序。