源代码不开放或免费,因此安装时编译不是一个选项。到目前为止,我见过的开发人员:
- 提供一个 tar.gz 文件,由用户将其解压缩到合适的位置。
- 提供带有 install.sh 脚本的 .tar.gz 来运行基本安装程序,甚至可能提示用户输入安装选项。
- 提供RPM和/或deb文件,允许用户继续使用他们熟悉的本机包管理工具来安装/升级/卸载。
希望支持最多数量的 Linux 发行版,让用户的生活尽可能轻松,同时维护尽可能少的构建/打包/安装基础设施。
寻找有关如何打包我的软件的建议。
答案1
我认为有两种看待它的方法。
一种是针对最流行的 Linux,为每个 Linux 提供本机软件包,并按流行程度顺序提供软件包。几年前,这意味着首先为 Red Hat 类型的 Linux 提供 RPM,然后在时间允许的情况下为每个不太流行的基于 RPM 的 Linux 重建源 RPM。这就是为什么 Mandriva RPM 通常比 Red Hat 或 SuSE RPM 稍旧的原因。不过,随着 Ubuntu 在过去几年中如此流行,您可能希望从 .deb 开始,然后再添加 RPM。
另一个是尝试瞄准目标全部立即提供 Linux,这正是那些提供二进制 tarball 的人正在尝试的。作为系统管理员和最终用户,我真的不喜欢这个选项。此类 tarball 会将文件分散在您解压它们的系统中,并且以后无法进行卸载、包验证、智能升级等细节。
您可以尝试混合方法:适用于最流行的 Linux 的本机软件包,以及适用于奇怪的 Linux 和出于某种原因不喜欢软件包管理器的老派系统管理员的二进制 tarball。
答案2
我的偏好始终是软件包(rpm|deb 等)。根据软件的性质,可能值得为特定发行版(rhel/centos 等)定位软件包,但您可能永远无法为每个人提供足够的软件包。
安装脚本就可以了,具体要看脚本。对我来说,非打包软件最重要的是可以轻松地将其安装在我选择的位置。
答案3
游戏倾向于使用安装程序(以前的 Loki Installer,现在的 MojoSetup),它将游戏干净地安装到前缀中并处理图标等内容。