我正在尝试在运行 debian8 的服务器上安装 PostgreSQL 服务器。
我使用 apt 安装了软件包postgresql-9.5
,但似乎缺少一些程序。
我试图创建一个集群,但initdb
在服务器上找不到,我以标准用户身份尝试,甚至postgres
尝试root
。
当我查看时,/usr/lib/postgresql/9.5/bin/
那里没有initdb
任何pg_ctl
程序。
我是否忘记安装任何附加软件包以使其正常工作?
答案1
initdb
是 pgdg 提供的包的一部分postgresql-9.5
,它应该位于您找不到它的地方。
$ dpkg -S initdb postgresql-9.5:/usr/share/locale/it/LC_MESSAGES/initdb-9.5.mo postgresql-9.5:/usr/share/locale/zh_CN/LC_MESSAGES/initdb-9.5.mo postgresql-9.5:/usr/share/locale/ko/LC_MESSAGES/initdb-9.5.mo postgresql-9.5:/usr/share/postgresql/9.5/man/man1/initdb.1.gz postgresql-9.5:/usr/share/locale/fr/LC_MESSAGES/initdb-9.5.mo PostgreSQL-9.5:/usr/lib/postgresql/9.5/bin/initdb postgresql-9.5:/usr/share/locale/ja/LC_MESSAGES/initdb-9.5.mo postgresql-9.5:/usr/share/locale/pt_BR/LC_MESSAGES/initdb-9.5.mo postgresql-9.5:/usr/share/locale/cs/LC_MESSAGES/initdb-9.5.mo postgresql-9.5:/usr/share/locale/pl/LC_MESSAGES/initdb-9.5.mo postgresql-9.5:/usr/share/locale/ru/LC_MESSAGES/initdb-9.5.mo postgresql-9.5:/usr/share/locale/de/LC_MESSAGES/initdb-9.5.mo postgresql-9.5:/usr/share/locale/sv/LC_MESSAGES/initdb-9.5.mo postgresql-9.5:/usr/share/locale/es/LC_MESSAGES/initdb-9.5.mo
如果您没有initdb
在应该所在的目录中找到它,这是不正常的,所以您可能需要仔细检查,也许可以考虑重新安装该包。
但是 anywayinitdb
并不打算在 Debian 中直接调用,这就是它不在 PATH 中的原因。Debian 的 postgres 软件包在所有这些命令之上都带有一个抽象层,以允许多个版本的 postgres 同时运行。
这里有介绍:https://wiki.debian.org/PostgreSql以及 pg_wrapper、pg_ctlcluster、pg_createcluster 等手册页中的详细信息,以及其他一些 pg_* 命令。
此外,安装主 postgresql 包时会自动创建一个默认集群,因此您通常甚至不必创建一个,并且在安装后可以通过在帐户psql
下运行来访问默认数据库postgres
。