gpt4 book ai didi

linux - 在部署脚本中查找已安装的包时,是否应该检查所有可能的路径?

转载 作者:太空宇宙 更新时间:2023-11-04 12:36:33 25 4
gpt4 key购买 nike

我正在为我的网络应用程序创建部署脚本。

该应用程序依赖于系统中的某些包,例如邮政系统。

目前我正在使用这样的代码:

if ! [ -x "$(command -v psql)" ]; then
echo 'psql is not installed.' >&2
sh ./install_postgres.sh
fi

不过,我不能确定如果它不在路径上,那么它就没有安装。可能该包位于某处但未暴露在 PATH 中。

那么,我是应该查看文件夹并尝试找到我需要的包,还是在 PATH 中查看足以了解它是否以标准方式安装?

最佳答案

也许,您应该采取不同的方法。

我推荐的方法,多年来一直这样做

  • 使用发行版的标准包维护工具 (RPM/DEB) 构建您的应用程序。
  • 然后,您的应用程序应在构建包时列出其依赖项。
  • 安装您的软件包时,也会安装依赖项。
  • 使用 CM(Chef、Ansible)安装包。

这种方式有以下好处

  • 可重复使用。
  • 可以回滚;如果你正确地版本化你的构建。
  • 完全自动化;您可以使用 Jenkins 或常规 bash 构建软件包。

还有一个办法

  • 使用 CM(Chef、Ansible);然后让它安装依赖项,然后安装您的应用程序。

我不推荐后一种方式,因为你失去了回滚的能力;众所周知,这对生产不利。

关于linux - 在部署脚本中查找已安装的包时,是否应该检查所有可能的路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41566337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com