Macに Postgres.app をインストールしましたが、正常に動作しません。インストールを完了し、アプリアイコンがメニューバーにあり、ポート5432でリッスンしていると表示されますが、コマンドラインから実行しようとすると、次のようになります。
~ $ psql
zsh: correct 'psql' to 'sl' [nyae]? n
zsh: command not found: psql
以前はHomebrew経由でPostgreSQLをインストールしていましたが、Postgres.appをインストールする前に削除しました。 Mac OS X Lionを実行しています。
私はどんな助けにも感謝します、私のマシンで本当にPostgreSQLを走らせたいです。
Postgres.appのpsql
バイナリはアプリケーションバンドル内にあり、適切なディレクトリをPATH
に追加する必要があります。 fine manual から:
$PATH
を設定しますPostgres.appには、多くのコマンドラインツールが含まれています。それらを使用する場合は、
$PATH
変数を構成する必要があります。bash(OS Xではデフォルトのシェル)を使用している場合は、次の行を
~/.bash_profile
に追加します。export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/latest/bin
[...]
したがって、zsh設定ファイルのPATH
設定を調整して、
Contents/Versions/latest/bin
Postgres.app
バンドル内のディレクトリ。
私はこれを2014年4月の時点で読んでおり、私のPostgresアプリに関する限り、パスに含める必要があるディレクトリは少し異なります。
これを含める必要がありました:
PATH="/Applications/Postgres.app/Contents/Versions/9.3/bin:$PATH"
端末でpsqlを実行できます。
Postgresを更新するときに再度変更する必要がないように、バージョンの代わりに/ latestを使用する必要があります。
方法: http://postgresapp.com/documentation/cli-tools.html
次に実行します:
. ~/.bash_profile
.bash_profileをリロードして、追加した関数を更新します。
zshシェルの場合変更があります.zshrc
:
PSQL_PATH="/Applications/Postgres.app/Contents/Versions/latest/bin"
PATH="$PATH:$PSQL_PATH"
プロンプト時:
exec $Shell
which psql
これはばかげているように見えるかもしれませんが、Postgres.appをどこにインストールしたか知りたいですか? mu is too short
の回答で提案されているように、ドキュメントには/Applications/Postgres.app/Contents/MacOS/bin
をパスに追加することが記載されています。ただし、これには/Applications/
フォルダにPostgres.appがインストールされている必要があります。
Stack OverflowやGoogle経由のその他のリソースで見つけたより複雑なソリューションを試す前に、Postgres.appが適切な場所にインストールされていることを確認する必要があります。 psql
は他の場所の前の/Applications/
にあるため、Postgres.appを/Applications/Postgres.app
に移動するのと同じくらい簡単です。
または、Postgres.appへの任意のパスを使用できます。したがって、ホームディレクトリに配置する場合は、export PATH="~/Postgres.app/Contents/MacOS/bin:$PATH"
を使用できます。
HTH
ZSH端末では、上記のソリューションを試す前に、まずPostgresをインストールする必要があります。 Hombrew
を使用している間、最初に、
brew install postgres
次に、which psql
によってインストールされているかどうかを確認します
私は以前のUbuntuユーザーで、現在OSXにいます。「which sql」および「pg_restore」コマンドを、開いたターミナルから直接実行しようとしても機能しませんでした。象のアイコンをクリックして、「Open psql」でターミナルを開きました。 psqlコンソールを終了し、そのターミナルでコマンドを書くと、すべてが機能しました。