Debian 上的 Postgresql 安装似乎分为三个文件夹位置:
配置:/etc/postgresql
二进制文件:/usr/lib/postgresql
数据:/var/lib/postgresql
我了解拆分配置文件和数据的好处,但是,二进制文件的位置让我感到困惑 - 为什么它不简单地位于 /usr/bin 中?
更重要的是,为什么有些二进制文件会进入 /usr/bin 而其他二进制文件会进入 /usr/lib ?
答案1
Debian 发行版政策规定配置文件、二进制文件和数据存储在这三个不同的位置。造成这种情况的原因有多种,包括:
- 包之间的一致性
- 更容易知道要备份、审核、调整哪些目录等。
- 可以以只读方式挂载 /usr
二进制文件分为两个目录的原因与 Debian 如何允许并行安装 PostgreSQL 的多个主要版本有关。对此进行详细说明/usr/share/doc/postgresql-common/architecture.html
。总之:
- 所有程序都存储在
/usr/lib/postgresql/X.Y/bin
. - 对于服务器端程序,您可以直接使用完整路径调用它们,或者使用 Debian 包装器来
pg_ctlcluster
访问它们。 - 对于客户端程序,符号链接被放入
/usr/bin
该指向pg_wrapper
,它会自动找出要调用的正确版本。
答案2
对于大多数服务来说,这种拆分非常典型。我使用的是 Fedora,但大多数发行版在根据文件类型将文件组织到指定区域方面都做了同样的事情。
看一下 Postgres SQL 服务器:
- 配置文件进入
/etc/
- 可执行文件进入
/usr/bin
- 图书馆进入
/usr/lib64/pgsql/
- 区域设置信息进入
/usr/share/locale/
- 手册页和文档进入
/usr/share/
- 数据进入
/var/lib/
usr/lib/postgresql
在您的情况下拥有库目录(相当于我的安装)的原因/usr/lib64/pgsql/
是应用程序可以使用 Postgres 提供的函数库。这些函数包含在这些库中。
因此,作为应用程序开发人员,您可以链接此处的库,将函数调用合并到 Postgres 和您的应用程序中。这些库通常会包含 API 文档,并且 Postgres 的开发人员确保通过这些库指定其 API 并正常工作,以便使用它们的应用程序可以保证它们能够在该特定版本中正常工作Postgres 的。