为Linux应用程序创build一个安装程序

我正在开发一个小型的跨平台应用程序,我需要一些关于如何在Linux中安装它的build议。 我在Windows中使用InnoSetup和OSX中的应用程序包,但我不知道如何让我的应用程序安装在Linux中,是否有Linux的开源安装程序创build者?

谢谢。

Solutions Collecting From Web of "为Linux应用程序创build一个安装程序"

* nix系统上的标准所有强大的安装程序(而不仅仅是) Autotools 。

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

您也可以在RedHat或CentOS上提供分发特定的安装程序(如RPM) ,或者Debian,Ubuntu,但是一旦您有Autotools分发的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 

Autotools也被称为“GNU构建系统”,有点吓人一见,新用户在遇到古代m4宏观系统等公司时感到困惑。 但不是一个好处,这是大多数人做这件事的方式,而且一旦你掌握了它就很容易。

学习资源

如果可能的话,选择不需要安装程序,但使用简单的抽取 – 运行方法。 这将允许用户将文件放在任何地方并运行。

但是,您还有其他选项,例如:

  1. 使用autoconf ,
  2. 使用CMake ,
  3. 使用像IZPack这样的Java安装程序
  4. 等等

看看InstallJammer 。 您可以为Windows和Linux安装程序编写单个项目,Mac支持即将推出。

写一个非常强大的makefile! 或者使用CMake

当我不得不在各种发行版上安装二进制包时,我开始写一些防止出现的情况。

它试图做一些事情:

  • 实现OS类型和软件包管理器,允许您使用系统软件包管理器来引入程序可能需要的任何依赖项。 例如,如果使用debian / ubuntu,它会知道使用apt-get install libncurses5-dev ,如果使用RHEL / Fedora / CentOS, yum install libncurses-devel
  • 了解如果需要,使用什么机制来更新init
  • 创建一个安全的卸载程序
  • 在任何shell(bash,dash,zsh,pdksh,busybox ash等)上工作

我把这个回购留下来,因为它有很多有用的东西,但是我很快放弃了 Linux发行版的install sheild类型程序的想法。 你会发现,为.deb,.rpm和(可能)slackware .tgz格式生成可安装的软件包要好得多。

这可以使用checkinstall等工具集成到您的构建系统中。 请注意,checkinstall生成的软件包并不总是完美的,根据Debian和其他人制定的严格的棉花指导原则,软件包工作得很好。

您可以为用户提供的最佳安装体验是允许他们使用本机软件包管理器来安装(并更新)您的软件。