Installazione di PostgreSQL 19.0 Beta su MacOS
PostgreSQL
e' un potente DBMS relazionale Open Source noto per
la robustezza e la ricchezza di funzionalita'.
Questo documento descrive l'installazione della versione
PostgreSQL 19.0 Beta1
[NdA che e' disponibile da oggi 2026-06-04] su MacOS.
Si tratta di un'installazione particolare perche' effettuata su una versione Beta,
senza strumenti di gestione dei pacchetti e su un sistema operativo generalmente non utilizzato
per ospitate un DB server.
Per una descrizione di un'installazione normale consigliamo di leggere piuttosto:
Installazione di PostgreSQL 12+ su Ubuntu,
Installazione di PostgreSQL 11 su CentOS 8.
Ma se davvero volete installare una versione Beta su vostro Mac...
continuate a leggere!
Installazione
La modalita' che seguiremo non e' quella consigliata per un'installazione di produzione su MacOS
e non e' quella che uso abitualmente
[NdA la mia preferenza va ad Homebrew].
Ma con le versioni beta non ci sono molte alternative: o si compilano i sorgenti o si scaricano i binari,
come faremo nel seguito.
Una volta scaricati e decompressi i binari gentilmente compilati da EDB e disponibili sul
link dedicato,
i passi per installare PostgreSQL 19.0-beta1 sono:
xattr -rd com.apple.quarantine ~/Downloads/postgresql-19.0-beta1-osx-binaries
export PG19=~/Downloads/postgresql-19.0-beta1-osx-binaries/pgsql
export PATH="$PG19/bin:$PATH"
export PGPORT=5433
mkdir -p ~/pg19beta/data
initdb -D ~/pg19beta/data
vi ~/pg19beta/data/postgresql.conf
# port=5433
# shared_preload_libraries='pg_stat_statements,pg_plan_advice,pg_stash_advice'
pg_ctl -D ~/pg19beta/data -l ~/pg19beta/logfile start
psql postgres
create database mydb;
^D
psql mydb
CREATE EXTENSION pg_stat_statements;
CREATE EXTENSION pg_stash_advice;
alter user postgres with password 'XYZ';
Gia' fatto!
I comandi dovrebbero essere chiari...
Ma se non lo fossero ecco la descrizione di ogni passo:
- Per poter eseguire i binari non notarizzati e scaricati da web e' necessario togliere la quarantena.
- Definiamo variabili per il PATH della versione 19 scegliendo una porta differente dal default per non entrare
in conflitto con altre installazioni.
- Creiamo la directory che ospitera' la base dati.
- Inizializziamo l'istanza. Il comando crea l'intera struttura del database ed i file di configurazione.
- Vanno configurati i parametri di tuning (file postgresql.conf) di PostgreSQL;
un esempio di configurazione si trova in questa paginetta [NdA un po' vecchiotta].
E' importante configurare il listen_addresses, la porta e le librerie dinamiche dei moduli che useremo
come l'estensione pg_stat_statements.
- Facciamo partire l'istanza.
PostgreSQL e' pronto per essere usato.
- Accediamo con l'interprete SQL.
Creiamo una base dati (non e' consigliabile utilizzare il database postgres).
Dal psql si esce con Ctrl-D.
- Accediamo con l'interprete SQL sulla base dati appena creata.
Aggiungiamo le estensioni necessarie (ho riportato la fondamentale pg_stat_statements ed una novita' della PG19,
ma spesso ne servono di piu').
Ultimo come passo ma non per importanza: impostiamo una password, ovviamente non usate XYZ.
Naturalmente serve molto di piu' per
completare le impostazioni di sicurezza... ma al momento basta cosi'.
Ora e' possibile provare le nuove funzionalita' disponibili nella versione
PostgreSQL19:
REPACK,
pg_stat_advice,
SQL/PGQ,
ON CONFLICT DO SELECT,
64-bit MultiXactOffset,
MERGE/SPLIT PARTITIONS,
...
Gestione
Con la configurazione effettuata e' possibile utilizzare in parallelo due differenti versioni
di PostgreSQL sullo stesso Mac. Ad esempio possiamo utilizzare la versione installata con Homebrew
senza alcuna variazione ai comandi:
% brew services list
Name Status User File
...
postgresql@18 started user ~/Library/LaunchAgents/homebrew.mxcl.postgresql@18.plist
% psql
psql (18.4 (Homebrew))
user=# select version();
version
----------------------------------------------------------------------------------------------------------------------------------
PostgreSQL 18.4 (Homebrew) on aarch64-apple-darwin25.4.0, compiled by Apple clang version 21.0.0 (clang-2100.0.123.102), 64-bit
Mentre per utilizzare la versione 19.0 Beta1 e' sufficiente impostare alcune variabili d'ambiente
e poi lanciare lo stesso comando:
% export PG19=~/Downloads/postgresql-19.0-beta1-osx-binaries/pgsql
% export PATH="$PG19/bin:$PATH"
% export PGPORT=5433
% psql
psql (19beta1)
user=# select version();
version
--------------------------------------------------------------------------------------------------------------------
PostgreSQL 19beta1 on x86_64-apple-darwin24.6.0, compiled by Apple clang version 17.0.0 (clang-1700.6.3.2), 64-bit
Intallazione pgvector
Per installare l'ultima versione di pg_vector sulla versione PG19 Beta1
ho dovuto applicare qualche modifica:
cd /tmp
git clone --branch v0.8.3 https://github.com/pgvector/pgvector.git
cd pgvector
# make clean # Se erano state eseguite compilazioni precedenti...
CURRENT_SDK=$(xcrun --show-sdk-path)
make \
PG_CONFIG=/Users/meo/Downloads/postgresql-19.0-beta1-osx-binaries/pgsql/bin/pg_config \
CFLAGS="-O2 -arch arm64 -isysroot $CURRENT_SDK" \
CPPFLAGS="-isysroot $CURRENT_SDK" \
LDFLAGS="-arch arm64 -isysroot $CURRENT_SDK"
make install \
PG_CONFIG=/Users/meo/Downloads/postgresql-19.0-beta1-osx-binaries/pgsql/bin/pg_config \
CFLAGS="-O2 -arch arm64 -isysroot $CURRENT_SDK" \
CPPFLAGS="-isysroot $CURRENT_SDK" \
LDFLAGS="-arch arm64 -isysroot $CURRENT_SDK"
# Riavvio PostgreSQL e da psql
CREATE EXTENSION vector;
News
Il 16 luglio 2026 e' stata pubblicata la versione PG 19 Beta2!
Non vi sono novita' particolari ma solo una serie di fix come riportato
nell'annuncio ufficiale.
Varie ed eventuali
Su MacOS la rimozione della quarantena dai file scaricati con xattr
evita il noioso problema di dover approvare manualmente
ogni singolo eseguibile ed ogni libreria:
Naturalmente va fatto solo se si e' certi della provenienza dei file.
Buon divertimento!