macOSに完全なPostgresなしでpsqlをインストールする正しい方法?


99

公式ページはそのような場合について言及していません。しかし、多くのユーザーpsqlはローカルデータベースなしで十分です(私はAWSにそれを持っています)。醸造にはありませんpsql


方法がないという公式ダウンロードページにリンクしているのに、なぜこれを行うには「正しい方法」があると思いますか?
Ssswift 2017年

MacPortsの上の方のために、ここで私がやったことだ:superuser.com/questions/305031/...
sudoの

4
@Ssswift道がないとは言わない、道があるとは言わない。
sudo

回答:


248

また、homebrewを使用してlibpqをインストールすることもできます。

brew install libpq

これにより、Postgresをインストールしなくても、psql、pg_dump、およびその他のクライアントユーティリティが多数提供されます。

次に、インストールディレクトリをパスに追加します。私の場合、ディレクトリの場所は次のとおりです。

/usr/local/Cellar/libpq/10.3/bin

14
シンボリックリンクを作成した後は魅力のように機能します:ln -s /usr/local/Cellar/libpq/10.3/bin/psql / usr / local / bin / psql
Engrost

20
あなたも行うことができますbrew link --force libpqが、それはあなたが望まない/必要としないかもしれない他のシンボリックリンクの束を作成します。
デイブ

2
symlinks du jour ln -s /usr/local/Cellar/libpq/11.3/bin/psql /usr/local/bin/psql/ ln -s /usr/local/Cellar/libpq/11.3/bin/pg_dump /usr/local/bin/pg_dump/ln -s /usr/local/Cellar/libpq/11.3/bin/pg_restore /usr/local/bin/pg_restore
hotzen '15年

libpqバージョンに依存しないシンボリックリンク:for cmd in psql pg_dump pg_restore; do ln -s ../opt/libpq/bin/$cmd /usr/local/bin/$cmd; done
David Hull

PATH=/usr/local/opt/libpq/bin:$PATHlibpqインストールするバージョンによって変更されないディレクトリ名を使用して、すべてのコマンドを一度にパスに追加します。
ジョージホーキンス

42

Homebrewには、実際にはpostgresの式しかありませんpsql。ツールをインストールするだけの特定の式はありません。

したがって、psqlアプリケーションを取得するための「正しい方法」は、実際に postgres式であり、「警告」セクションの下部に、実際にはデータベースを実行しないことがわかります。システムにファイルを置くだけです。 :

$  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デーモンが実行されていないことを確認するには、インストールされている自作のサービスを確認します。

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

Homebrew Servicesがインストールされていない場合は、

$ brew tap homebrew/services

...この機能を利用できます。Homebrew Servicesの詳細については、Homebrew Servicesがどのように機能するかを説明するこの優れたブログ投稿をお読みください。


1
これは実際には「postgresをインストールせずにpsql(およびおそらく他のpostgresユーティリティ)をインストールする方法」という質問に答えるものではありません。@PPSの回答stackoverflow.com/a/49689589/2469559が正しいものです。
Benjamin R

2
IMO、これはbrew linkステップを必要としないため、より良いオプションです。式のkeg_only宣言により、libpqとのリンクを強制する必要があります。この特定の複雑さを考えると、私はこの答えを、質問が行うことを行うための「正しい」方法であると考えています。多くのユーザーが、libpqただしアプローチをいます。
Andrew Bobulsky

35

libpq 11.2
MacOSおよびzshまたはbash

以下の作品

  1. インストール libpq
brew install libpq
  1. PATHを更新する

    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

1
echo 'export PATH="/usr/local/opt/libpq/bin:$PATH"' >> ~/.bash_profilebashを使用している場合。
HenryC

1
@HenryCはい、bashの方がはるかに一般的です。私の答えはzshに基づいていました。
CK

10

libpqをインストールします。

 brew install libpq

次に、シンボリックリンクを作成します。

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

それが役に立てば幸い。


9

本当にpostgresqlが必要ない場合は、libraを使用するためにパスを変更する必要はありませんlibpq。リンクするだけです。ドキュメントはそれがそうではない唯一の理由がPostgreSQLパッケージとの衝突を避けるためであると言います。

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

手動でシンボリックリンクを作成する必要がないことが気に入っています。これは受け入れられる答えになるはずです。ありがとうございました!
demisx

0

特に、複数のバージョンのpostgresをサポートする必要がある場合は、これらすべてが本当に満足できるものではないことがわかりました。はるかに簡単な解決策は、バイナリをここからダウンロードすることです:

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

そして、単に実行可能バージョンを実行します psql、作業しているデータベースと一致さ追加の手順を実行する必要はありません。

例:

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.