2010-03-10 136 views
32

我正在開發一個小型的跨平臺應用程序,我需要一些關於如何在Linux中安裝它的建議。我在Windows中使用InnoSetup和在OSX中使用應用程序包,但我不知道如何讓我的應用程序安裝在Linux中,Linux中是否有任何開源安裝程序創建者?爲Linux應用程序創建安裝程序

謝謝。

+1

只是爲了好奇着想,如果你想要的答案,它有什麼作用?它寫了什麼? =) – Marcelo 2010-03-10 18:22:30

回答

16

標準在* nix系統中所有強大的普遍可用的安裝程序(而不是隻)是Autotools

# the user will install like so: 
./configure --with-stuff 
make # if package is from source 
make install 

您也可以提供像在RedHat或CentOS的一個RPMdeb適用於Debian,Ubuntu發行版特定的安裝程序,但一旦你通過自動工具吐盡Makefile文件,使這些是輕而易舉的事。

# the user will install like so: 
yum install your-package-1.0.rpm # on redhat or 
apt-get install your-package-1.0.deb # on debian 

自動工具也被稱爲「GNU編譯系統」是一見鍾情有點嚇人,和滿足的事情就像古代m4宏系統&合作,當新用戶感到困惑。但是nota bene這是大多數人做這件事的方式,一旦你掌握了它就很容易。

Learning resources

+1

只寫一個乾淨的'autotools'設置,讓鄉親分佈計算出其餘爲他們的暫時需求。 – 2010-03-10 18:31:43

+3

+1爲自動工具;它只需要一點點專業知識就可以使用自動工具。 這裏有一個鏈接:http://www.lrde.epita.fr/~adl/dl/autotools.pdf – rmk 2010-03-10 18:36:54

+0

@rmk我希望把該PDF在我的答案,但無法找到它。 – clyfe 2010-03-10 21:44:43

2

如果可能,選擇不需要安裝程序,但使用簡單的抽取 - 運行方法。這將允許用戶將文件放在任何他們想要的位置並運行它。

但是,你有其他選擇,如:

  1. 使用autoconf
  2. 使用CMake
  3. 使用Java安裝像IZPack
2

取看看InstallJammer。您可以爲Windows和Linux安裝程序編寫單個項目,並且Mac支持即將推出。

+0

我看InstallJammer此刻,它看起來非常有前途爲止!謝謝。 – JWood 2010-03-27 16:23:40

+1

不幸的是,該項目已經停止'InstallJammer的主動開發已經停止。該源代碼適用於所有版本,並且將始終保持如此狀態,但您的努力可能會更好地花費在開發活動中的安裝程序上。 – 2014-03-31 09:49:18

1

我開始寫unistall的情況下,你必須在各種發行版上安裝二進制包。

它試圖做幾件事情:

  • 實現的操作系統類型和包管理器,允許你使用系統軟件包管理器中,你的程序可能需要的任何依賴關係拉。例如,它就會知道,如果使用使用apt-get install libncurses5-dev於Debian/Ubuntu,yum install libncurses-devel如果使用RHEL/Fedora的/ CentOS的
  • 瞭解什麼樣的機制用來更新初始化,如果需要的話
  • 創建一個安全未安裝
  • 工作在任何shell(bash中,破折號,zsh中,pdksh程序,busybox的灰分等)

我離開回購,因爲它充滿有用位的,但是我快速上install sheild型方案的想法放棄了適用於Linux發行版。您會發現,爲.deb,.rpm和(可能)slackware .tgz格式生成可安裝的軟件包要好得多。

這可以使用像checkinstall工具集成到您的構建系統。請注意,checkinstall生成的軟件包並不總是完美的,根據Debian和其他人制定的嚴格的棉絨指導方針,然而軟件包工作得很好。

最好的安裝體驗,你可以提供一個用戶被允許他們使用自己的母語包管理器安裝(和更新)軟件。

相關問題