Installare PostgreSQL via Homebrew
Probabilmente la maggior parte degli utenti OS X conosce Homebrew
, ma Homebrew è un gestore di pacchetti per OS X che permette di installare ed eseguire facilmente un’enorme libreria di applicazioni e utilità con facilità.
Non passeremo attraverso l’intero (anche se breve) processo di installazione di Homebrew, ma se volete installare Homebrew e usarlo per la gestione di PostgreSQL, controllate il comando di installazione sulla documentazione ufficiale. Se non sei sicuro che Homebrew sia installato, prova il comando which brew
dal terminale per verificare.
Una volta che Homebrew è installato, puoi installare PostgreSQL lanciando i seguenti comandi nel tuo terminale:
$ brew update$ brew doctor$ brew install postgres
I primi due comandi servono per aggiornare Homebrew e segnalare qualsiasi potenziale problema (se necessario). Poi, naturalmente, brew install postgres
è il comando a linea singola per l’installazione di PostgreSQL.
Dovreste vedere una buona quantità di informazioni utili nell’output durante l’installazione, molte delle quali dovrebbero essere copiate per essere usate nelle prossime sezioni.
Usare un LaunchAgent e un plist per lanciare PostgreSQL all’avvio
Nella maggior parte dei casi, probabilmente vorrai che PostgreSQL venga lanciato all’avvio del tuo sistema, quindi dovrai dire al tuo computer che questo è il tuo desiderio.
Prima di tutto, dovrai creare una directory dove far risiedere il tuo LaunchAgents
(se la directory non esiste già). LaunchAgents
in OS X sono semplici script usati da launchd
che fanno sì che il sistema esegua programmi o codice all’avvio.
Crea la tua user
directory specifica LaunchAgents
con questo comando, se necessario:
$ mkdir -p ~/Library/LaunchAgents
Ora avrete bisogno di creare un link simbolico dallo script che permetta effettivamente a Postgres di girare nella directory LaunchAgents
. Un link simbolico è simile alla creazione di una nuova copia di un file da usare in un’altra directory, ma poiché il link è “simbolico”, il link è solo un indirizzo di inoltro: qualsiasi richiesta fatta a quella posizione del link simbolico viene effettivamente “inoltrata” o reindirizzata a dove risiede effettivamente il file reale.
Link al file plist
(elenco delle proprietà) che è stato generato da Homebrew e metti quel nuovo link simbolico in LaunchAgents
con questo comando:
$ ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents
Nota: Controllate due volte che il comando sia corretto: dovrebbe essere stato parte dell’output di installazione menzionato sopra quando Homebrew ha installato Postgres inizialmente.
Finalmente, carichiamo il nuovo file LaunchAgent
del link simbolico usando il comando launchctl load
, che è specificamente ciò che informa il computer di eseguire questo script e avviare Postgres quando il computer si avvia. Di nuovo, il comando esatto da inserire per la propria installazione sarà un output durante l’installazione di Postgres di Homebrew, ma dovrebbe assomigliare a questo:
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
Avviare manualmente PostgreSQL
Per avviare manualmente Postgres senza riavviare, di nuovo si dovrebbe essere in grado di utilizzare il comando che è stato emesso durante l’installazione, così:
$ postgres -D /usr/local/var/postgres
Questo tenterà di lanciare Postgres in modalità daemon
, il che significa che verrà eseguito come processo in background senza prendere il controllo del vostro terminale.
Avviare/Fermare PostgreSQL senza Homebrew
Nel caso in cui tu non abbia (o non voglia usare) Homebrew per Postgres, ma hai già Postgres installato, puoi anche avviarlo manualmente con pg_ctl
, che è la utility di lancio fornita da Postgres stesso.
Questo avvierà Postgres (assumendo le directory di default):
$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
E questo fermerà Postgres:
pg_ctl -D /usr/local/var/postgres stop -s -m fast
Risoluzione dei problemi di avvio: Hai eseguito initdb?
In alcuni casi, se hai problemi nell’eseguire Postgres, assicurati di aver eseguito una volta il comando initdb
, che fa sì che Postgres inizializzi il cluster di database per una nuova installazione e ti permette di connetterti con l’utente postgres
predefinito.