Comment installer psql sans Postgres complet sur macOS?


99

La page officielle ne mentionne pas un tel cas. Mais de nombreux utilisateurs n'ont besoin que d' psqlune base de données locale (je l'ai sur AWS). Brew n'ont pas psql.


Pourquoi pensez-vous qu'il existe une «bonne façon» de faire cela, étant donné que vous avez lié à la page de téléchargement officielle, qui dit qu'il n'y a pas de moyen?
Ssswift

Pour ceux sur MacPorts, voici ce que j'ai fait: superuser.com/questions/305031/…
sudo

4
@Ssswift Cela ne dit pas qu'il n'y a pas de moyen, mais ne dit pas qu'il y a un moyen.
sudo

Réponses:


250

Vous pouvez également utiliser homebrew pour installer libpq.

brew install libpq

Cela vous donnerait psql, pg_dump et tout un tas d'autres utilitaires clients sans installer Postgres.

Vous ajoutez ensuite le répertoire d'installation à votre chemin. Dans mon cas, l'emplacement du répertoire est:

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

14
Fonctionne comme un charme après la création du lien symbolique: ln -s /usr/local/Cellar/libpq/10.3/bin/psql / usr / local / bin / psql
Engrost

20
Vous pouvez également le faire, brew link --force libpqmais cela créera un tas d'autres liens symboliques dont vous pourriez ne pas vouloir / avoir besoin.
Dave

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

Liens symboliques qui ne dépendent pas de la version 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:$PATHpour ajouter toutes les commandes à votre chemin en une seule fois, en utilisant un nom de répertoire qui ne change pas avec la version libpqque vous installez.
George Hawkins le

42

Homebrew n'a vraiment que la formule postgres , et n'a pas de formule spécifique qui installe uniquement l' psqloutil.

Donc, la "bonne façon" d'obtenir l' psqlapplication est en effet d'installer la formule postgres , et vous verrez vers le bas de la section "mises en garde" qu'elle n'exécute pas réellement la base de données, elle met simplement les fichiers sur votre système :

$  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

Vous pouvez maintenant utiliser psqlpour vous connecter à des serveurs Postgres distants, sans en exécuter un local, bien que vous puissiez le faire si vous le souhaitez vraiment.

Pour vérifier que le postgresdémon local n'est pas en cours d'exécution, vérifiez vos services homebrew installés:

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

Si vous n'avez pas installé les services Homebrew ,

$ brew tap homebrew/services

... et vous obtiendrez cette fonctionnalité. Pour plus d'informations sur les services Homebrew , lisez cet excellent article de blog qui explique comment cela fonctionne .


1
Cela ne répond pas réellement à la question, qui se résume à "comment installer psql (et peut-être d'autres utilitaires postgres) SANS installer postgres". La réponse de @ PPS stackoverflow.com/a/49689589/2469559 est la bonne.
Benjamin R

2
OMI, c'est la meilleure option car elle ne nécessite pas l' brew linkétape. Forcer le lien avec libpq est nécessaire en raison de la déclaration keg_only dans la formule. Compte tenu de cette complication spécifique , je maintiens cette réponse comme étant la manière «correcte» de faire ce que la question demande. Je reconnais que de nombreux utilisateurs préféreront toujours l' libpqapproche.
Andrew Bobulsky

36

libpq 11.2
MacOS & zsh ou bash

ci-dessous fonctionne

  1. installer libpq
brew install libpq
  1. mettre à jour PATH

    si vous utilisez zsh:

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

    si vous utilisez 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_profilesi vous utilisez bash.
HenryC

1
@HenryC oui, merci, bash est beaucoup plus courant, ma réponse était basée sur zsh.
CK

10

Installez libpq:

 brew install libpq

Ensuite, créez un lien symbolique:

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

J'espère que ça aide.


9

Si vous n'avez vraiment pas besoin de postgresql, vous n'avez même pas besoin de modifier votre chemin pour utiliser libra, il suffit de créer un lien libpq. La documentation indique que la seule raison pour laquelle ce n'est pas le cas est d'éviter les conflits avec le package PostgreSQL.

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

J'aime le fait que je n'ai pas à créer le lien symbolique manuellement. Cela devrait être la réponse acceptée. Je vous remercie!
demisx

0

J'ai trouvé tout cela vraiment insatisfaisant, surtout si vous devez prendre en charge plusieurs versions de postgres. Une solution BEAUCOUP plus simple consiste à télécharger les binaires ici:

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

Et lancez simplement la version exécutable de psql celle qui correspond à la base de données sur laquelle vous travaillez sans aucune étape supplémentaire.

exemple:

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.