完全な PostgreSQL をインストールせずに PSQL をインストールする
この記事は、完全な PostgreSQL サーバー パッケージをインストールせずに psql
をインストールする手順を説明するために特別にまとめられています。
PostgreSQL を完全にインストールせずに psql
をインストールする
完全な PostgreSQL を使用せずに psql
をインストールする手順には、技術的で複雑なコマンドは含まれません。 代わりに、数分しかかからない簡単な手順です。
PostgreSQL サーバー パッケージ全体をインストールせずに psql
を使用する手順には、完全な Postgres をインストールせずに psql
を使用するために使用される Homebrew ソフトウェアの助けが必要です。
インストールに進む前に、以下の psql
と PostgreSQL の違いを理解しましょう。
psql
と PostgreSQL サーバーの違い
PostgreSQL サーバーは psql
とは異なります。 このセクションは、記事全体でこれら 2つの用語の混同を避けるために、事前に 2つの用語を区別するように特別に記述されています。
PostgreSQL は、すべての異なるクライアント接続から独立して実行されるサーバーです。 pg_ctl
コマンドまたは init
スクリプトは、サーバーを起動および停止します。
クライアントが接続する前に、サーバーを起動する必要があります。 一方、psql
はコマンドライン クライアントです。 これは、PostgreSQL サーバーに対する端末ベースのフロントエンド
です。
psql
はサーバーに接続されており、クエリを入力して PostgreSQL に発行し、結果を確認できます。 ファイルからクエリを入力するか、コマンド ライン引数を使用できます。
いずれにせよ、クエリは PostgreSQL サーバーに対する発行であり、結果はユーザーに表示されます。 したがって、PostgreSQL サーバーと psql
は 2つの異なるものであることを明確にする必要があります。
完全な PostgreSQL サーバー パッケージをインストールせずに psql
をインストールする
Homebrew ソフトウェアにより、ユーザーは完全な PostgreSQL パッケージをインストールしなくても psql
を簡単に使用できるようになりました。 代わりに、いくつかのコマンドを実行するだけで、PostgreSQL サーバーの機能と共に psql
を使用できます。
この記事には、psql
を使用する 2つの方法が含まれています。 最初の方法では、ユーザーが PostgreSQL サーバー パッケージをインストールする必要はありません。 ただし、2 番目の方法では、バックエンドで実行する PostgreSQL サーバー パッケージをインストールする必要があります。
プロセスを簡単に実行できるように、両方の手順について詳しく説明します。
解決策 1: Homebrew ソフトウェアを使用して PostgreSQL サーバーなしで psql
をインストールする
このソリューションは Homebrew ソフトウェアを使用し、PostgreSQL サーバーをインストールする必要はありません。 PostgreSQL サーバーなしで psql
を使用するプロセスについては、以下で説明します。
まず、Homebrew ソフトウェアを使用して libpq
をインストールします。 次のコマンドでこのタスクを実行できます。
brew install libpq
libpq
のインストールが成功すると、psql
、pg_dump
、およびその他のいくつかのクライアント ユーティリティが提供されます。 これらのクライアント ユーティリティを使用するために、PostgreSQL サーバーをインストールする必要はありません。
ユーザーには、完全な PostgreSQL サーバー パッケージに含まれているものと同じユーティリティが提供されます。 さらに、brew はクライアント ユーティリティを"keg-only"
としてインストールします。
インストールされたファイルは、共有の bin
、lib
、およびその他のディレクトリにリンクされていません。 代わりに、これらのバイナリを使用するには、これらのバイナリをリンクしてパスに追加する必要があります。
バイナリをリンクする 3つの異なる手順を以下に示します。
-
ファイルをリンクする最初の手順は、
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
バイナリの
パス
がecho 'export PATH="/opt/homebrew/opt/libpq/bin:$PATH"' >> ~/.zshrc
に更新されている可能性があることを思い出してください。 -
-
path
を更新する代わりに、必要なユーティリティのsymlinks
を作成します。symlink
を作成する例は次のとおりです。ln -s /usr/local/Cellar/libpq/10.3/bin/psql /usr/local/bin/psql
上記のコマンドでは、
10.3
の代わりにインストール済みのバージョンを使用する必要があります。 -
バイナリを
path
にリンクするために使用できる最後の手順は、Homebrew ソフトウェアにすべてのバイナリをpath
にリンクするように指示することです。 たとえば、次のコマンドはこのタスクを実行します。brew link --force libpq
この手順の問題は、後で PostgreSQL パッケージをインストールできないことです。 さらに、このコマンドは、必要のない多くの
symlinks
を作成します。
解決策 2: Homebrew ソフトウェアを使用して、PostgreSQL サーバーで psql
をインストールする
psql
を取得するための 2つ目の解決策は、PostgreSQL サーバーをダウンロードすることです。 ただし、サーバーは使用されません。 Homebrew には postgres
コマンドがありますが、psql
コマンドはありません。
PostgreSQL パッケージは、Homebrew 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 launched, 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
コマンドは、リモートの PostgreSQL サーバーに接続できるようになりました。 このプロセスでは、システム上でローカル サーバーが実行されません。
インストールされている Homebrew サービスを確認することでも確認できます。
> brew services list
Name Status User Plist
mysql stopped
postgresql stopped
Homebrew サービスは、インストールされていなくてもアクセスできます。 次のコマンドを使用して機能を取得できます。
> brew tap homebrew/services
したがって、最初の解決策では、完全な PostgreSQL サーバー パッケージをインストールせずに psql
を使用できます。 一方、2 番目のソリューションでは、PostgreSQL サーバーのインストール後に psql
を使用できるようになります。
ただし、2 番目のソリューションでは、ローカル PostgreSQL サーバーを実行せずにリモート サーバーに接続できます。
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub