我正在开发一个小型跨平台应用程序,需要一些关于如何在Linux上安装它的建议。我在Windows中使用InnoSetup,在OSX中使用应用程序捆绑包,但我不知道如何在Linux中安装我的应用程序,是否有任何适用于Linux的开源安装程序创建工具?
谢谢。
我正在开发一个小型跨平台应用程序,需要一些关于如何在Linux上安装它的建议。我在Windows中使用InnoSetup,在OSX中使用应用程序捆绑包,但我不知道如何在Linux中安装我的应用程序,是否有任何适用于Linux的开源安装程序创建工具?
谢谢。
标准的、强大的、普遍可用的*nix系统(不仅限于此)安装程序是Autotools。
# the user will install like so:
./configure --with-stuff
make # if package is from source
make install
您还可以提供特定于发行版的安装程序,例如在 RedHat 或 CentOS 上使用 RPM,在 Debian、Ubuntu 上使用 deb,不过一旦您拥有 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宏系统等问题时会感到困惑。但请注意,这是大多数人使用的方式,一旦掌握就很容易。
看一下InstallJammer。你可以为Windows和Linux编写一个单一的项目,而Mac支持很快就会到来。
InstallJammer的活跃开发已经停止。所有版本的源代码都可用,并且将始终保持如此,但您的努力可能更好地花在一个正在积极开发的安装程序上。
- Paolo Fulgoni我开始编写 unistall 是为了在各种发行版上安装二进制包时的情况。
它试图做一些事情:
apt-get install libncurses5-dev
,如果使用RHEL/Fedora/CentOS,则会知道使用yum install libncurses-devel
我保留该存储库,因为它充满了有用的内容,但是我很快放弃了针对Linux发行版的install sheild
类型程序的想法。你会发现,为.deb、.rpm和(可能)slackware .tgz格式制作可安装的软件包要好得多。
可以使用类似checkinstall的工具将其集成到构建系统中。请注意,checkinstall生成的软件包并不总是完美的,根据Debian和其他人制定的严格lint准则,但软件包仍然可以正常工作。
您可以为用户提供的最佳安装体验是允许他们使用本地软件包管理器安装(和更新)您的软件。