在 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
以下作品
- 安装
libpq
brew install libpq
更新路径
如果使用 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;'
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
以下作品
- 安装
libpq
brew install libpq
更新路径
如果使用 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;'