pg_ctl 在 CentOS 8 中从 pgdg 存储库安装 postgresql12-server 后未找到

pg_ctl is not found after install postgresql12-server from pgdg repository in CentOS 8

我最近通过 PostgreSQL 官方存储库(不是 CentOS)安装了 PostgreSQL 12。 (https://yum.postgresql.org/12/redhat/rhel-8-x86_64)

但是,pg_ctl命令在设置过程后未找到。

我做过:

rpm -ql postgresql12-server |grep pg_ctl
/usr/pgsql-12/bin/pg_ctl
/usr/pgsql-12/share/man/man1/pg_ctl.1

PATH 环境变量中没有加载 pgsql-12 目录。我看了一下里面 /etc/profile.d/ 我知道了:

ls /etc/profile.d/
colorgrep.csh  colorxzgrep.csh  colorzgrep.csh  csh.local  gawk.sh   lang.sh   less.sh
colorgrep.sh   colorxzgrep.sh   colorzgrep.sh   gawk.csh   lang.csh  less.csh  sh.local

所以...我没有找到任何以 pgsql 命名或引用的文件。

我执行:

grep -rlio pgsql /etc/profile.d/

我什么都没得到...所以,我明白为什么 Bash 没有找到 pg_ctl。

postgres用户也找不到。 (我以为里面有一个 .bash_profile 和 PATH 但它不是)

如何解决?

  • /etc/profile.d/pgsql.sh

    中创建文件
  • 添加以下行并保存文件:

#!/bin/bash
PATH=${PATH}:/usr/pgsql-12/bin
export PATH
  • 运行 更新当前路径:
source /etc/profile.d/pgsql.sh
  • 现在检查路径:
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/pgsql-12/bin
  • 运行 pg_ctl --help:
pg_ctl is a utility to initialize, start, stop, or control a PostgreSQL server.

Usage:
[...]

就这些了!