PSQL命令未找到。

6
我正在使用 Mac OS X 10.5.8 操作系统。我使用 macports 安装了 Postgresql 9.1,它被安装在 /opt/local/lib/postgresql91 目录下,并创建了一个 bin 文件夹,其中包含 psql 和其他 Unix 可执行文件。
据我所知,这是 postgresql 程序的核心部分(我之所以这样说是因为其他 postgresql 文件被安装在我的系统的其他部分,我不确定那些文件是用来做什么的)。
我编辑了我的 .profile 文件,将路径添加到 postgresql91/bin 并运行 source ~/.profile
echo $PATH

确认路径是否存在。但是当我在命令行中输入 psql 时,会显示 "command not found"

我不明白我还需要做什么。


1
这个问题与 Stack Overflow 的主题无关,建议将其转移到 superuser.com。请编辑问题以包括 echo $PATHls /opt/local/lib/postgresql91/bin/ 的复制粘贴输出。同时也要包含完整、准确的错误信息文本 - Craig Ringer
至于“PostgreSQL程序的核心” - Pg是客户端服务器。 psql是客户端。 postgres是服务器,但通常在计算机启动时启动或通过pg_ctl手动控制,而不是直接启动。 PostgreSQL教程将有助于解释其中许多内容。 - Craig Ringer
在升级到Postgres 12并接受默认设置后,我遇到了一个问题。Postgres已经被移动了。因此,我在.zshrc中添加了alias psql='/Library/PostgreSQL/12/bin/psql'(或者可能添加到.bash_profile)。 - Greg
这篇关于相关问题的回答可能对你有所帮助:https://dev59.com/52Ei5IYBdhLWcg3w0O-Q#20928837 - Vincent
1个回答

0

苹果在过程中进行了几次默认 shell 的更改。这个问题中呈现的核心错误是命令未找到。我将建议如何解决这个问题。

首先,让我们找到我们安装了 Postgresql 的位置:

find / -type f -name psql -print | sort

这会定位系统中所有名为psql的文件。这应该只报告一个条目。请注意可能会出现许多错误(例如find:/private/var/agentx:Permission denied)。您可以安全地忽略它们。

对于您的系统,二进制文件位于此处:/opt/local/lib/postgresql91/bin/psql我使用homebrew,所以我的位置在这里:/opt/homebrew/bin/psql

将末尾的psql去掉。那就是目录。我们将在下面使用它。

打开Terminal.app,通常位于应用程序的实用程序目录中。

运行此命令:

open -e .profile ; open -e .cshrc ; open -e .zshrc; open -e .login; open -e .bash_profile

忽略任何错误,例如:

The file /Users/risner/.zshrc does not exist.
The file /Users/risner/.login does not exist.

在打开的文件中,您可能会看到像“.cshrc”或“.login”的“set path =”和其他文件的“PATH =”之类的行。
通过添加目录路径/opt/local/lib/postgresql91/bin/将上面的目录路径添加到所有路径行中。例如,在使用空格分隔的“.cshrc”或“.login”中,您可以更改:
set path = ($HOME/bin /bin /sbin /usr/bin /usr/sbin /usr/X11R6/bin)

转换为这样:

set path =($HOME/bin /bin /sbin /usr/bin /usr/sbin /usr/X11R6/bin /opt/local/lib/postgresql91/bin)

对于其他用分隔的情况,请更改:

export PATH="~/bin:$PATH"

export PATH="~/bin:/opt/local/lib/postgresql91/bin:$PATH"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接