Sono riuscito a compilare e installare l’ultima versione di PostgreSQL (17.4) su Ubuntu ARM32.
I comandi in questo articolo provengono principalmente dalla documentazione ufficiale di PostgreSQL. Ho testato personalmente ogni comando in questo articolo.
Puoi vedere qui il sistema in cui è possibile installare con successo PostgreSQL Build Farm
Compilazione e installazione di PostgreSQL 17.4
1. Crea la directory e accedi alla directory
mkdir postgresql && cd postgresql
mkdir postgresql
: crea una nuova directory chiamatapostgresql
.cd postgresql
: accede alla directorypostgresql
appena creata.
2. Scarica il codice sorgente di PostgreSQL
wget https://ftp.postgresql.org/pub/source/v17.4/postgresql-17.4.tar.bz2
wget
: scarica il file dall’URL specificato.https://..../postgresql-17.4.tar.bz2
: link per scaricare il pacchetto sorgente compresso della versione 17.4 di PostgreSQL. Se il link non funziona, puoi trovare un nuovo link da solo.
3. Decomprimi il pacchetto del codice sorgente
tar xjf postgresql-17.4.tar.bz2
-
tar
: utilizzato per gestire i file compressi.tar
. -
xjf
: opzioni per decomprimere il filetar
:x
: decomprime il file.j
: utilizza il formato di compressione bzip2 (.bz2).f
: specifica il file da decomprimere.
-
postgresql-17.4.tar.bz2
: il nome del file da decomprimere.
4. Accedi alla directory del codice sorgente decompresso
cd postgresql-17.4
- Accede alla directory del codice sorgente decompresso di PostgreSQL 17.4.
5. Installa i pacchetti dipendenti
sudo apt install libssl-dev libsystemd-dev libxml2-dev libreadline-dev
sudo apt install
: utilizza il gestore di pacchettiapt
per installare i pacchetti.libssl-dev
,libsystemd-dev
,libxml2-dev
,libreadline-dev
: installa le librerie di sviluppo necessarie per la compilazione di PostgreSQL, ovvero la libreria SSL, la libreria Systemd, la libreria XML e la libreria Readline.
6. Configura le opzioni di compilazione
./configure --prefix=/usr/local/pgsql --with-openssl --with-libxml --with-systemd
./configure
: prepara l’ambiente di compilazione di PostgreSQL.--prefix=/usr/local/pgsql
: specifica la directory di installazione di PostgreSQL come/usr/local/pgsql
.--with-openssl
: abilita il supporto OpenSSL.--with-libxml
: abilita il supporto XML.--with-systemd
: abilita il supporto Systemd.
7. Compila il codice sorgente
make -j$(nproc)
make
: avvia il processo di compilazione.-j$(nproc)
: utilizzanproc
(il numero di core della CPU del sistema) per eseguire attività di compilazione in parallelo, accelerando il processo di compilazione.
8. Installa PostgreSQL
sudo make install
sudo make install
: utilizzasudo
per eseguire l’installazione con i privilegi di amministratore,make install
installerà i file compilati nel sistema, installandoli nella directory/usr/local/pgsql
specificata nel comando./configure
precedente.
9. Imposta le variabili d’ambiente
Utilizzare un editor di testo 1. Modifica il file /etc/profile
:
sudo nano /etc/profile
sudo
: indica l’esecuzione del comando con i privilegi di superutente (amministratore), poiché la modifica del file/etc/profile
richiede i privilegi di amministratore.nano
: è un editor di testo, comunemente usato in ambienti terminale per modificare i file./etc/profile
: questo è un file di configurazione globale, utilizzato per impostare variabili d’ambiente e configurazioni di avvio a livello di sistema. Tutti gli utenti eseguono le impostazioni in questo file quando accedono al sistema.
- Aggiungi variabili d’ambiente:
export PATH=/usr/local/pgsql/bin:$PATH
export
: utilizzato per impostare una variabile d’ambiente in modo che sia disponibile nel processo corrente e nei processi figlio.PATH
: questa è una variabile d’ambiente che contiene l’elenco delle directory dei file eseguibili nel sistema. Quando si esegue un comando, il sistema cerca il comando in base alle directory elencate nella variabilePATH
./usr/local/pgsql/bin
: questa è la directory dei file eseguibili del database PostgreSQL, aggiungerla significa che i file eseguibili in questa directory (comepsql
) verranno riconosciuti dal sistema.:$PATH
: qui$PATH
rappresenta il percorso esistente, aggiungendo il nuovo percorso/usr/local/pgsql/bin
all’inizio delPATH
originale. In questo modo, il sistema controllerà prima la nuova directory, quindi controllerà il percorso originale.
Lo scopo di questo comando è aggiungere la directory dei file eseguibili di PostgreSQL alla variabile d’ambiente PATH
del sistema, assicurando che i comandi di PostgreSQL (come psql
) possano essere eseguiti direttamente nella riga di comando senza fornire il percorso completo. Le impostazioni modificate avranno effetto su tutti gli utenti.
Inizializza il database PostgreSQL
Questi comandi vengono utilizzati principalmente per configurare manualmente il server di database PostgreSQL su un server Linux, inclusa la creazione di un utente di sistema PostgreSQL, l’inizializzazione del database, l’avvio del servizio di database e la sua registrazione come servizio systemd
per l’avvio automatico all’avvio.
1. Crea un utente PostgreSQL
sudo useradd -m -U -r -d /var/lib/postgresql -s /bin/bash postgres
sudo
: esegue il comando con i privilegi di superutente.useradd
: crea un nuovo utente.-m
: crea la directory home dell’utente.-U
: crea contemporaneamente un gruppo di utenti con lo stesso nome dell’utente.-r
: crea un utente di sistema (l’UID dell’utente di sistema è inferiore a 1000, non utilizzato per l’accesso).-d /var/lib/postgresql
: specifica la directory home come/var/lib/postgresql
.-s /bin/bash
: specifica la shell come/bin/bash
.postgres
: nome utente.
Questo comando crea un utente di sistema dedicato postgres
per PostgreSQL.
2. Modifica il proprietario della directory PostgreSQL
sudo chown postgres /usr/local/pgsql
chown postgres /usr/local/pgsql
: cambia il proprietario della directory/usr/local/pgsql
all’utentepostgres
, consentendogli di leggere e scrivere nella directory.
3. Imposta la password dell’utente PostgreSQL
sudo passwd postgres
passwd postgres
: modifica la password dell’utentepostgres
.
4. Passa all’utente PostgreSQL
su postgres
su postgres
: passa all’utentepostgres
per utilizzare i comandi relativi a PostgreSQL.
5. Inizializza il database
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
initdb -D /usr/local/pgsql/data
: inizializza l’archiviazione del database nella directory/usr/local/pgsql/data
.
6. Avvia il database PostgreSQL
/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
postgres -D /usr/local/pgsql/data
: avvia il database come processopostgres
, i dati vengono archiviati nella directory/usr/local/pgsql/data
.
7. In un’altra sessione del terminale, accedi al database
su postgres
/usr/local/pgsql/bin/psql
psql
: strumento interattivo da riga di comando di PostgreSQL, accede alla shell del database.
8. Imposta la password per l’utente del database
ALTER USER postgres WITH PASSWORD 'your_new_password';
- Modifica la password dell’utente del database
postgres
.
9. Crea un servizio systemd
sudo nano /etc/systemd/system/postgresql.service
nano /etc/systemd/system/postgresql.service
: modifica il file di configurazionesystemd
, consentendo a PostgreSQL di essere eseguito come servizio.
Contenuto del file di configurazione:
[Unit]
Description=PostgreSQL server
#Documentation=man:postgres(1)
After=network-online.target
Wants=network-online.target
[Service]
Type=notify
User=postgres
ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
ExecReload=/bin/kill -HUP $MAINPID
KillMode=mixed
KillSignal=SIGINT
TimeoutSec=infinity
[Install]
WantedBy=multi-user.target
Description=PostgreSQL server
: descrive che il servizio è il server PostgreSQL.After=network-online.target
: attende che la connessione di rete sia disponibile prima di avviare PostgreSQL.User=postgres
: eseguito come utentepostgres
.ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
: avvia il server PostgreSQL.ExecReload=/bin/kill -HUP $MAINPID
: invia il segnaleHUP
durante il ricaricamento.KillMode=mixed
: modalità di terminazione mista.KillSignal=SIGINT
: segnale per terminare il processo PostgreSQL.TimeoutSec=infinity
: timeout impostato su infinito.
10. Abilita il servizio systemd
sudo systemctl daemon-reload
sudo systemctl start postgresql
sudo systemctl status postgresql
sudo systemctl enable postgresql
daemon-reload
: ricarica la configurazionesystemd
, rendendo effettivo il nuovopostgresql.service
.start postgresql
: avvia il servizio PostgreSQL.status postgresql
: controlla lo stato di esecuzione di PostgreSQL.enable postgresql
: avvia automaticamente PostgreSQL all’avvio.
Lo scopo di questi comandi è:
- Crea un utente
postgres
dedicato per eseguire PostgreSQL. - Inizializza la directory di archiviazione del database.
- Avvia il database PostgreSQL e accedi alla riga di comando interattiva
psql
. - Configura
systemd
per eseguire PostgreSQL come servizio di sistema e supporta l’avvio automatico all’avvio.
In questo modo, il server PostgreSQL può essere eseguito normalmente e può essere avviato automaticamente all’avvio del sistema.
Riferimenti
PostgreSQL: Documentazione: 17: Capitolo 17. Installazione dal codice sorgente
Altre versioni di questa pagina web
Questo articolo ha versioni in più lingue.
Se desideri pubblicare un commento, visita la seguente pagina web:
Queste pagine web supportano solo la navigazione, non la pubblicazione di commenti o messaggi, ma offrono più opzioni di lingua e tempi di caricamento più brevi:
ZH EN ZH-TW JA RU KO CS ES AR FR PT DE TR IT NL SV DA FI PL UK HE RO HU EL HR TH HI BN ID SW VI NO
Questo articolo è stato tradotto da Chinese (Simplified) a Italian da AI.