Linux单机版';安装';Postgresql的应用

Linux单机版';安装';Postgresql的应用,linux,postgresql,deployment,Linux,Postgresql,Deployment,为了便于部署,我想作为应用程序的一部分安装Postgres。是否可以包含一个已经编译并可运行的Postgres版本,该版本可以作为进程启动?我可以在Windows和MacOS版本上做这样的事情,但在这方面还没有发现任何关于Linux的东西。也许有人曾经尝试过这一点,可以分享一些见解……您还没有说明您使用的是什么linux操作系统 假设它是Redhat变体,为什么不将应用程序打包为RPM包呢?然后,您可以声明对标准Postgres软件包的依赖关系,该软件包将自动安装。如果您使用的是基于Debian

为了便于部署,我想作为应用程序的一部分安装Postgres。是否可以包含一个已经编译并可运行的Postgres版本,该版本可以作为进程启动?我可以在Windows和MacOS版本上做这样的事情,但在这方面还没有发现任何关于Linux的东西。也许有人曾经尝试过这一点,可以分享一些见解……

您还没有说明您使用的是什么linux操作系统

假设它是Redhat变体,为什么不将应用程序打包为RPM包呢?然后,您可以声明对标准Postgres软件包的依赖关系,该软件包将自动安装。如果您使用的是基于Debian的系统,同样的原则也适用,只是不同的打包格式


从用户的角度来看,操作系统的本机打包格式始终是安装应用程序的最简单方式。只需要努力将其正确打包。

您可以在PostgreSQL官方网站的以下页面中找到跨平台二进制文件:

  • 为了便于GUI。运行安装程序,请使用提供的链接
  • 如果您的目标机器上没有安装X,或者您希望使用shell脚本自动化安装过程,那么您可以从
我在“交叉分发包”和“图形安装程序”下找到了这些链接

我引述以下几页:

注意:交叉分发包未与特定于平台的打包系统完全集成

您必须具有root权限才能安装这些软件包,但是,不会更改任何系统库文件。这些二进制文件所需的支持库作为安装的一部分包含在本地。这是一种“特殊的调味汁”,允许相同的二进制文件在不同的linux发行版上运行


如果您这样做,请使用非默认端口,以免与任何本地PostgreSQL安装冲突。是的,谢谢。这是一个值得考虑的问题……你的主要问题是不只是一个“Linux”。您需要做大量的工作来处理与libc的兼容性,准备绑定您自己的大多数其他lib版本,在启动二进制文件之前,使用包装器脚本设置环境变量,如
LD\u LIBRARY\u PATH
,甚至在你考虑支持不同架构(X64,X86,ARM,…)之前,Linux下的封装二进制二进制文件是有挑战性的。认真考虑让Linux用户安装他们自己的PG。我真的不知道PASGRESs依赖什么,但只是想听听有人尝试过这个。我可能可以更多地限制Linux(仅限x64,可能是某个发行版),但需要一些自包含且不依赖于任何安装的东西。在最坏的情况下,我需要接受你的建议。依赖项在某种程度上是可配置的,并且依赖于发行版/版本。编译它并使用
ldd
检查二进制文件,就像在Windows上使用Dependency Walker一样。它可能是一种Debian发行版。软件包安装的问题是,它将在系统范围内安装,我不希望这样。@orange不理解为什么系统端安装会出现这样的问题。单个Postgres数据库完全可以承载多个数据库实例。您确实要求“轻松”部署—打包您的应用程序意味着您可以利用操作系统的应用程序管理功能。别忘了升级和删除。我刚刚注意到。运行安装程序也可以接受命令行开关。