我正在尝试为在Linux系统上运行的程序创建安装脚本。我选择Bash作为安装脚本,我想知道是否有任何有效的方法来安装独立于系统软件包管理器的软件包。我知道Debian使用aptitude,Redhat使用黄狗更新程序等。鉴于包管理器的多样性,似乎需要很多if语句,其中检查分发并将其与默认包管理器匹配。
除了检查发行版外,我唯一能想到的就是让脚本手动下载包源并构建它们。我不确定受欢迎的项目是如何做到这一点的,但我很想知道。
答案 0 :(得分:1)
你的问题似乎很明显。只需让你的脚本在/usr/local/bin
中安装一些选项,为那些想要为他们的发行版创建一个包装器以便轻松覆盖目标的人(通常使用/usr/bin
),理想情况下只需设置{{3} }})。 Linux标准库应告诉您在何处同样安装辅助文件,库等。
顺便说一句,Debian上的核心包管理器是dpkg
,而在Red Hat上是rpm
。
答案 1 :(得分:0)
您不是第一个遇到此问题的人。基本上,有两种不同的解决方案。
示例:
Docker会检测您的操作系统并将自己的存储库添加到本地包管理器。这可能是您的选择,具体取决于您的项目规模。
您可能听说过以下3行:
./configure
make
make install
Make不是唯一的选择,还有其他构建系统,它们基本相同。
还有很多开源项目,在那里进行本地编译,然后将文件移动/复制到正确的位置是首选的安装方法(有时只是开发版本)
示例: