linux - 为 Linux 应用程序编写通用安装程序的最佳方法?

标签 linux installation

我们有一个 Linux 服务器应用程序,它由许多开源工具以及我们自己编写的程序组成。理想情况下,我们希望能够在任何常见的 Linux 发行版上安装此应用程序。

过去,我们编写了 perl 脚本来自动安装此应用程序。不幸的是,由于不同 Linux 发行版的特性,这些安装脚本中的逻辑变得非常复杂,并且可能随着每个受支持发行版的新版本发布而改变。因此,维护安装程序成为项目中最耗时的部分之一!

我正在寻求帮助,无论是框架、文档还是代码示例,它们都可以减轻这个过程的痛苦。以下是我们的安装程序需要做的事情类型:

  • 创建用户/群组帐户

  • 创建具有特定所有权和权限的目录树

  • 安装开源应用程序,可能会在安装过程中从源代码编译它们

  • 将预编译的二进制文件、脚本、配置文件和文档插入特定目录

  • 注册init类启动和关闭脚本

  • 生成加密 key

  • 验证与中央服务器的连接

最佳答案

除了安装程序方法,我认为比在安装时使用单个脚本更好的方法是拥有一个构建系统,该系统生成适合安装在您必须支持的每个系统上的 .deb 或 .rpm 文件。

穷人的方法可能是使用 checkinstall ,它从通过“make install”安装的文件创建包。因此,您将在每个系统上构建您的应用程序,并以发行版的 native 格式神奇地创建包。

关于linux - 为 Linux 应用程序编写通用安装程序的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/254054/

相关文章:

php - 如何安装比 Yum 安装的 PHP 版本更新的版本?

linux - Linux内核中syscalls.h中函数的实现在哪里

c++ - 如何部署 C++ DLL

Linux opencv独立安装: not found in CMake

python -/usr/bin/clang 命令在 MacOS 上尝试 pip 安装 TA-lib 失败

.net - 安装后程序集依赖关系发生变化

python - 在 Docker Alpine Linux 3.3 中无法使用 OpenSSL 1.0.2g 和 Python 2.7 出现 "pip install cryptography"

python - 语音识别错误 Python

linux - Linux 进程是否可以通过致命信号或调用 `exit(2)` 以外的机制死亡?

java - 在 Java 中使用 Hadoop