首页 > 解决方案 > 在 CentOS 8 中从 pgdg 存储库安装 postgresql12-server 后找不到 pg_ctl

问题描述

我最近通过 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用户也找不到它。(我以为里面有一个带有 PATH 的 .bash_profile 但事实并非如此)

标签: linuxpostgresqlbashcentosenvironment

解决方案


如何解决这个问题?

  • 在中创建文件/etc/profile.d/pgsql.sh

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

#!/bin/bash
PATH=${PATH}:/usr/pgsql-12/bin
export PATH
  • 运行此命令以更新当前 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:
[...]

就这样!


推荐阅读