在 macOS 上安装没有完整 Postgres 的 psql 的正确方法?

Correct way to install psql without full Postgres on macOS?

Official page这种情况就不提了。但是很多用户只需要 psql 而没有本地数据库(我在 AWS 上有)。 Brew 没有 psql.

你可以试试brew install postgresql

但这提供了一个很好的 GUI 来管理您的数据库https://postgresapp.com

Homebrew 真正只有 postgres 公式,并没有任何只安装 psql 工具的特定公式。

所以 "correct way" 获取 psql 应用程序确实是安装 postgres 公式,你会看到"caveats" 部分,它实际上 运行 数据库,它只是将文件放在您的系统上:

$  brew install postgres
==> Downloading https://homebrew.bintray.com/bottles/postgresql-9.6.5.sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring postgresql-9.6.5.sierra.bottle.tar.gz
==> /usr/local/Cellar/postgresql/9.6.5/bin/initdb /usr/local/var/postgres
==> Caveats
<snip>
To have launchd start postgresql now and restart at login:
  brew services start postgresql
Or, if you don't want/need a background service you can just run:
  pg_ctl -D /usr/local/var/postgres start
==> Summary
  /usr/local/Cellar/postgresql/9.6.5: 3,269 files, 36.7MB

现在您可以使用 psql 连接到远程 Postgres 服务器,而不是 运行 本地服务器,尽管如果您真的想的话也可以。

要验证本地 postgres 守护程序不是 运行ning,请检查您安装的自制软件服务:

$ brew services list
Name       Status  User Plist
mysql      stopped      
postgresql stopped      

如果您没有安装 Homebrew 服务,只需

$ brew tap homebrew/services

...您将获得此功能。有关 Homebrew 服务 的更多信息,请阅读 this excellent blog post that explains how it works

您也可以使用自制软件安装 libpq。

brew install libpq

这将为您提供 psql、pg_dump 和一大堆其他客户端实用程序,而无需安装 Postgres。

不幸的是,由于它提供了一些与完整 postgresql 包中包含的相同的实用程序,brew 将其安装为“keg-only”,这意味着默认情况下它不在 PATH 中。 Homebrew 会吐出一些关于如何在安装后将其添加到 PATH 的信息。在我的例子中是这样的:

echo 'export PATH="/usr/local/opt/libpq/bin:$PATH"' >> ~/.zshrc

或者,您可以为您需要的实用程序创建 symlinks。例如:

ln -s /usr/local/Cellar/libpq/10.3/bin/psql /usr/local/bin/psql

注意:使用安装版本而不是 10.3。

或者,您可以指示 homebrew“link 它的所有二进制文件无论如何都到 PATH”

 brew link --force libpq

但之后您将无法安装 postgresql 软件包。

libpq 11.2
MacOS & zsh or bash

以下作品

  1. 安装libpq
brew install libpq
  1. 更新路径

    如果使用 zsh:

    echo 'export PATH="/usr/local/opt/libpq/bin:$PATH"' >> ~/.zshrc
    source ~/.zshrc
    

    如果使用 bash:

    echo 'export PATH="/usr/local/opt/libpq/bin:$PATH"' >> ~/.bash_profile
    source ~/.bash_profile
    

安装 libpq:

 brew install libpq

然后,创建一个符号链接:

ln -s /usr/local/opt/libpq/bin/psql /usr/local/bin/psql

希望对您有所帮助。

如果您真的不需要 postgresql,那么您甚至不必更改使用 libra 的路径,只需 link libpq。文档说它不是的唯一原因是避免与 PostgreSQL 包冲突。

brew uninstall postgresql
brew install libpq
brew link --force libpq

我发现所有这些都非常令人不满意,尤其是当您必须支持多个版本的 postgres 时。一个更简单的解决方案是在此处下载二进制文件:

https://www.enterprisedb.com/download-postgresql-binaries

只需 运行 psql 的可执行版本即可匹配您正在使用的数据库,无需任何额外步骤。

示例:

./path/to/specific/version/bin/psql -c '\x' -c 'SELECT * FROM foo;'