2010-03-10 165 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和其他人制定的严格的棉绒指导方针,然而软件包工作得很好。

最好的安装体验,你可以提供一个用户被允许他们使用自己的母语包管理器安装(和更新)软件。

相关问题