Come installare PostgreSQL utilizzando il codice sorgente in Linux
PostgreSQL, un sistema di gestione di database relazionali open source, è ampiamente rinomato per le sue robuste funzionalità ed estensibilità. Sebbene molte distribuzioni Linux forniscano PostgreSQL tramite i propri gestori di pacchetti, installarlo dal sorgente consente maggiore personalizzazione e controllo.
In questo articolo spiegheremo come installare PostgreSQL 16 utilizzando l'installazione del codice sorgente su sistemi Linux.
Per coloro che cercano un metodo di installazione più semplice dal gestore dei pacchetti di distribuzione, seguire le guide seguenti:
Prerequisiti
Prima di immergerti nel processo di installazione di PostgreSQL, assicurati che il tuo sistema soddisfi i seguenti prerequisiti:
- Una distribuzione Linux (in questa guida utilizzeremo Debian a scopo dimostrativo).
- Un sistema Linux con un utente non root con privilegi sudo.
- Sono installati strumenti di sviluppo essenziali come GCC e Make.
1. Installa i prerequisiti su Linux
Innanzitutto, installa gli strumenti di sviluppo essenziali come GCC e Make utilizzando il gestore dei pacchetti di distribuzione come mostrato.
Nelle distribuzioni basate su RHEL come CentOS, Fedora, Rocky Linux e Alma Linux:
sudo yum groupinstall development-tools
sudo yum install zlib-devel readline-devel libicu-devel
Su distribuzioni basate su Debian come Ubuntu e Linux Mint.
sudo apt install gcc build-essential zlib1g-dev libreadline6-dev libicu-dev pkg-config
2. Scarica il codice sorgente PostgreSQL
Una volta installati i prerequisiti necessari, scarica il file tar del codice sorgente dal sito Web ufficiale di Postgres utilizzando il seguente comando wget direttamente sul sistema. Al momento della stesura di questo articolo, la versione più recente è PostgreSQL 16.1.
wget https://ftp.postgresql.org/pub/source/v16.1/postgresql-16.1.tar.bz2
Successivamente, utilizza il comando tar per estrarre il file tarball scaricato. Verrà creata una nuova directory denominata postgresql-16.1.
tar -xvf postgresql-16.1.tar.bz2
cd postgresql-16.1/
ls -l
Esempio di output:
-rw-r--r--. 1 tecmint tecmint 365 Nov 7 03:34 aclocal.m4
drwxr-xr-x. 2 tecmint tecmint 4096 Nov 7 03:47 config
-rwxr-xr-x. 1 tecmint tecmint 584560 Nov 7 03:34 configure
-rw-r--r--. 1 tecmint tecmint 87292 Nov 7 03:34 configure.ac
drwxr-xr-x. 61 tecmint tecmint 4096 Nov 7 03:47 contrib
-rw-r--r--. 1 tecmint tecmint 1192 Nov 7 03:34 COPYRIGHT
drwxr-xr-x. 3 tecmint tecmint 4096 Nov 7 03:47 doc
-rw-r--r--. 1 tecmint tecmint 4288 Nov 7 03:34 GNUmakefile.in
-rw-r--r--. 1 tecmint tecmint 277 Nov 7 03:34 HISTORY
-rw-r--r--. 1 tecmint tecmint 64601 Nov 7 03:48 INSTALL
-rw-r--r--. 1 tecmint tecmint 1875 Nov 7 03:34 Makefile
-rw-r--r--. 1 tecmint tecmint 102017 Nov 7 03:47 meson.build
-rw-r--r--. 1 tecmint tecmint 6266 Nov 7 03:34 meson_options.txt
-rw-r--r--. 1 tecmint tecmint 1213 Nov 7 03:34 README
drwxr-xr-x. 16 tecmint tecmint 4096 Nov 7 03:48 src
3. Configura PostgreSQL dall'origine
Poiché postgres è un database open source, può essere creato dal codice sorgente in base alle proprie esigenze/richieste. possiamo personalizzare il processo di creazione e installazione fornendo una o più opzioni della riga di comando per varie funzionalità aggiuntive.
Utilizzare il comando seguente per assistenza con le varie opzioni e l'utilizzo della configurazione, come mostrato.
./configure --help
Ora esegui lo script di configurazione, che controllerà le dipendenze del tuo sistema e configurerà la build di conseguenza.
./configure
4. Installa PostgreSQL dal sorgente
Una volta configurato, utilizza i seguenti comandi per creare e installare PostgreSQL dall'origine.
make
sudo make install
5. Creazione dell'utente Postgres
Ora crea un utente postgres e una directory da utilizzare come directory data per inizializzare il cluster di database. Il proprietario di questa directory data dovrebbe essere un utente postgres e le autorizzazioni dovrebbero essere 700 inoltre impostare un percorso per i binari postgresql per la nostra comodità.
sudo useradd postgres
sudo passwd postgres
sudo mkdir -p /pgdatabase/data
sudo chown -R postgres: /pgdatabase/data
sudo sh -c "echo 'export PATH=$PATH:/opt/PostgreSQL/bin' > /etc/profile.d/postgres.sh"
source /etc/profile.d/postgres.sh
6. Inizializzazione del database Postgres
Ora inizializza il database utilizzando il seguente comando come utente postgres prima di utilizzare qualsiasi comando postgres.
su postgres
initdb -D /pgdatabase/data/ -U postgres -W
Dove -D
è la posizione per questo cluster di database o possiamo dire che è la directory dei dati in cui vogliamo inizializzare il cluster di database, -U
per il nome del superutente del database e -W
per la richiesta della password per il superutente db.
Per maggiori informazioni e opzioni possiamo fare riferimento a initdb --help
.
7. Avvia il servizio PostgreSQL
Dopo aver inizializzato il database, avvia il cluster del database o, se hai bisogno di cambiare la porta o ascoltare l'indirizzo del server, modifica il file /pgdatabase/data/postgresql.conf nella directory data di il server della banca dati.
nano /pgdatabase/data/postgresql.conf
Ora avvia il servizio PostgreSQL.
pg_ctl -D /pgdatabase/data/ start
Dopo aver avviato il database, verifica lo stato del processo del server postgres utilizzando i seguenti comandi ps e netstat.
ps -ef |grep -i postgres
netstat -apn |grep -i 51751
Possiamo vedere che il cluster di database funziona correttamente e che i log di avvio possono essere trovati nella posizione specificata con l'opzione -l
durante l'avvio del cluster di database.
pg_ctl -D /pgdatabase/data/ -l logfile start
8. Connettiti a PostgreSQL
Ora connettiti al cluster di database e crea un database utilizzando i seguenti comandi.
psql -p 5432
postgres=# create database test;
postgres=# \l to list all databases in cluster
postgres=# \q to quit form postgres console
Se stai cercando uno strumento grafico chiamato pgAdmin per gestire il tuo PostgreSQL, segui queste guide per installare pgAdmin sulla tua distribuzione Linux.
Conclusione
Hai installato con successo PostgreSQL dal sorgente sul tuo sistema Linux. Questo processo fornisce flessibilità e controllo sulla tua installazione PostgreSQL, permettendoti di adattarla alle tue esigenze specifiche.