Modo corretto per installare psql senza Postgres completo su macOS?


99

La pagina ufficiale non menziona questo caso. Ma molti utenti hanno bisogno solo psqlsenza un database locale (ce l'ho su AWS). Brew non ce l'hanno psql.


Perché pensi che esista un "modo corretto" per farlo, dato che ti sei collegato alla pagina di download ufficiale, che dice che non c'è un modo?
Ssswift

Per quelli su MacPort, ecco cosa ho fatto: superuser.com/questions/305031/…
sudo

4
@Ssswift Non dice che non c'è un modo, semplicemente non dice che c'è un modo.
sudo

Risposte:


250

Puoi anche usare homebrew per installare libpq.

brew install libpq

Questo ti darebbe psql, pg_dump e un sacco di altre utilità client senza installare Postgres.

Quindi aggiungi la directory di installazione al tuo percorso. Nel mio caso, la posizione della directory è:

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

14
Funziona a meraviglia dopo aver creato il collegamento simbolico: ln -s /usr/local/Cellar/libpq/10.3/bin/psql / usr / local / bin / psql
Engrost

20
Potresti anche farlo, brew link --force libpqma questo creerà un sacco di altri collegamenti simbolici che potresti non volere / aver bisogno.
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

Collegamenti simbolici che non dipendono dalla versione di 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:$PATHper aggiungere tutti i comandi al tuo percorso in una volta sola, utilizzando un nome di directory che non cambia con la versione di libpqquella che installi.
George Hawkins,

42

Homebrew ha solo la formula postgres e non ha alcuna formula specifica che installa solo lo psqlstrumento.

Quindi il "modo corretto" per ottenere l' psqlapplicazione è in effetti installare la formula postgres , e vedrai in fondo alla sezione "avvertenze" che in realtà non esegue il database, ma mette semplicemente i file sul tuo sistema :

$  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

Ora puoi usarlo psqlper connetterti a server Postgres remoti e non ne eseguirai uno locale, anche se potresti farlo se lo volessi davvero.

Per verificare che il postgresdemone locale non sia in esecuzione, controlla i servizi homebrew installati:

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

Se non hai installato Homebrew Services , basta

$ brew tap homebrew/services

... e otterrai questa funzionalità. Per ulteriori informazioni sui servizi Homebrew , leggi questo eccellente post sul blog che spiega come funziona .


1
Questo in realtà non risponde alla domanda, che si riduce a "come installo psql (e forse altre utilità postgres) SENZA installare postgres". La risposta di @ PPS stackoverflow.com/a/49689589/2469559 è quella corretta.
Benjamin R

2
IMO, questa è l'opzione migliore perché non richiede il brew linkpassaggio. Forzare il collegamento con libpq è necessario a causa della dichiarazione keg_only nella formula. Data questa specifica complicazione , sostengo che questa risposta sia il modo "corretto" di fare ciò che la domanda chiede. Riconosco che molti utenti preferiranno comunque l' libpqapproccio.
Andrew Bobulsky,

36

libpq 11.2
MacOS e zsh o bash

sotto funziona

  1. installare libpq
brew install libpq
  1. aggiorna PATH

    se usi zsh:

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

    se usi 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_profilese stai usando bash.
HenryC

1
@HenryC sì, grazie, bash è molto più comune, la mia risposta era basata su zsh.
CK

10

Installa libpq:

 brew install libpq

Quindi, crea un collegamento simbolico:

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

Spero che sia d'aiuto.


9

Se davvero non hai bisogno di postgresql, non devi nemmeno modificare il tuo percorso per usare libra, basta collegare libpq. I documenti dicono che l'unica ragione per cui non lo è è per evitare conflitti con il pacchetto PostgreSQL.

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

Mi piace il fatto di non dover creare manualmente il collegamento simbolico. Questa dovrebbe essere la risposta accettata. Grazie!
demisx

0

Ho trovato tutti questi elementi davvero insoddisfacenti, soprattutto se devi supportare più versioni di postgres. Una soluzione MOLTO più semplice è scaricare i binari qui:

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

Ed esegui semplicemente la versione eseguibile di psqlquella corrispondente al database su cui stai lavorando senza passaggi aggiuntivi.

esempio:

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.