Depozitele implicite Ubuntu 22.04 și Debian 12 conțin versiuni PostgreSQL mai vechi (14, respectiv 15), fixate la momentul lansării distribuției. Pentru PostgreSQL 16 folosiți depozitul oficial PGDG (PostgreSQL Global Development Group), întreținut direct de comunitatea PostgreSQL și actualizat cu fiecare versiune minoră în ziua lansării.
Pe Ubuntu 22.04, adăugați cheia și depozitul astfel.
sudo apt install -y curl ca-certificates
sudo install -d /usr/share/postgresql-common/pgdg
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo tee /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc
sudo sh -c 'echo "deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
sudo apt update
sudo apt install -y postgresql-16 postgresql-client-16
Pe Debian 12 (Bookworm) pașii sunt identici, cu diferența că lsb_release -cs întoarce „bookworm" în loc de „jammy". Dacă mașina nu are pachetul lsb-release instalat, adăugați-l înainte cu sudo apt install lsb-release, altfel comanda de mai sus eșuează silențios cu un nume de distribuție gol în fișierul pgdg.list.
Verificarea instalării
După instalare, serviciul pornește automat și creează un rol de sistem postgres fără parolă setată pentru autentificare prin rețea. Verificați versiunea instalată.
sudo -u postgres psql -c "SELECT version();"
Răspunsul trebuie să conțină „PostgreSQL 16", urmat de numărul versiunii minore, de exemplu 16.4 sau 16.6, în funcție de data instalării. Dacă apare o versiune 14 sau 15, depozitul PGDG nu a fost activat corect sau pachetul instalat a fost cel implicit din distribuție, nu cel din pgdg.list.
De ce nu depozitul implicit al distribuției
Ubuntu și Debian înghețu versiunea de PostgreSQL la momentul lansării distribuției și nu o schimbă până la următoarea versiune majoră a sistemului de operare, din motive de stabilitate. Practic, pe Ubuntu 22.04 fără PGDG rămâneți blocat pe PostgreSQL 14 timp de ani, fără indexurile și funcțiile adăugate în versiunile 15 și 16, cum ar fi îmbunătățirile de performanță la MERGE sau la paralelizarea interogărilor. Pe un server de producție cu trafic real, această diferență de versiune contează la fiecare interogare complexă.
Greșeală frecventă
O greșeală des întâlnită pe servere de hosting este instalarea PostgreSQL în paralel cu un pachet MySQL sau MariaDB deja activ pe portul standard, fără verificarea porturilor ocupate. PostgreSQL ascultă implicit pe portul 5432, diferit de portul 3306 folosit de MySQL, deci cele două pot coexista, dar rețineți acest detaliu dacă administrați un server cPanel sau LiteSpeed unde MySQL rulează deja și instalați PostgreSQL separat pentru o aplicație nouă. Verificați portul liber înainte de instalare cu sudo ss -tlnp | grep 5432.