Am compilat și instalat cu succes cea mai recentă versiune PostgreSQL (17.4) pe Ubuntu ARM32.

Comenzile din acest articol provin în principal din documentația oficială PostgreSQL. Am testat efectiv fiecare comandă din acest articol.

Puteți vedea sistemele pe care se poate instala cu succes aici Fermă de construcție PostgreSQL

Compilare și instalare PostgreSQL 17.4

1. Creați un director și accesați directorul

mkdir postgresql && cd postgresql
  • mkdir postgresql: Creează un director nou numit postgresql.
  • cd postgresql: Accesează directorul postgresql tocmai creat.

2. Descărcați codul sursă PostgreSQL

wget https://ftp.postgresql.org/pub/source/v17.4/postgresql-17.4.tar.bz2
  • wget: Descarcă un fișier de la URL-ul specificat.
  • https://..../postgresql-17.4.tar.bz2: Link de descărcare pentru pachetul sursă comprimat al versiunii PostgreSQL 17.4. Dacă linkul nu mai este valid, puteți căuta singur un link nou.

3. Dezarhivați pachetul de cod sursă

tar xjf postgresql-17.4.tar.bz2
  • tar: Utilizat pentru a procesa fișierele comprimate .tar.

  • xjf: Opțiuni pentru dezarhivarea fișierelor tar:

    • x: Dezarhivează fișierele.
    • j: Utilizează formatul de compresie bzip2 (.bz2).
    • f: Specifică fișierul care trebuie dezarhivat.
  • postgresql-17.4.tar.bz2: Numele fișierului care trebuie dezarhivat.

4. Accesați directorul de cod sursă dezarhivat

cd postgresql-17.4
  • Accesează directorul de cod sursă PostgreSQL 17.4 dezarhivat.

5. Instalați pachetele dependente

sudo apt install libssl-dev libsystemd-dev libxml2-dev libreadline-dev
  • sudo apt install: Utilizează managerul de pachete apt pentru a instala pachetele.
  • libssl-dev, libsystemd-dev, libxml2-dev, libreadline-dev: Instalează bibliotecile de dezvoltare necesare pentru compilarea PostgreSQL, respectiv biblioteca SSL, biblioteca Systemd, biblioteca XML și biblioteca Readline.

6. Configurați opțiunile de compilare

./configure --prefix=/usr/local/pgsql --with-openssl --with-libxml --with-systemd
  • ./configure: Pregătește mediul de compilare pentru PostgreSQL.
  • --prefix=/usr/local/pgsql: Specifică directorul de instalare PostgreSQL ca /usr/local/pgsql.
  • --with-openssl: Activează suportul OpenSSL.
  • --with-libxml: Activează suportul XML.
  • --with-systemd: Activează suportul Systemd.

7. Compilați codul sursă

make -j$(nproc)
  • make: Inițiază procesul de compilare.
  • -j$(nproc): Utilizează nproc (numărul de nuclee CPU ale sistemului) pentru a executa sarcini de compilare în paralel, accelerând procesul de compilare.

8. Instalați PostgreSQL

sudo make install
  • sudo make install: Utilizează sudo pentru a executa instalarea cu permisiuni de administrator, make install va instala fișierele compilate în sistem, instalând în directorul /usr/local/pgsql specificat în comanda ./configure anterioară.

9. Setați variabilele de mediu

Utilizați un editor de text 1. Editați fișierul /etc/profile:

sudo nano /etc/profile
  • sudo: Indică rularea comenzii cu permisiuni de superutilizator (administrator). Deoarece modificarea fișierului /etc/profile necesită permisiuni de administrator.
  • nano: Acesta este un editor de text, utilizat frecvent în mediile terminal pentru editarea fișierelor.
  • /etc/profile: Acesta este un fișier de configurare global, utilizat pentru a seta variabilele de mediu și configurarea de pornire la nivelul sistemului. Toți utilizatorii vor executa setările din acest fișier când se conectează la sistem.
  1. Adăugați variabilele de mediu:
export PATH=/usr/local/pgsql/bin:$PATH
  • export: Utilizat pentru a seta o variabilă de mediu, făcând-o disponibilă în procesul curent și în subprocesele.
  • PATH: Aceasta este o variabilă de mediu care conține o listă de directoare cu fișiere executabile din sistem. Când execută o comandă, sistemul va căuta comanda în directoarele enumerate în variabila PATH.
  • /usr/local/pgsql/bin: Acesta este directorul cu fișiere executabile ale bazei de date PostgreSQL, adăugarea acestuia înseamnă că fișierele executabile din acest director (cum ar fi psql) vor fi recunoscute de sistem.
  • :$PATH: Aici, $PATH reprezintă căile existente, adăugând noua cale /usr/local/pgsql/bin în fața PATH-ului existent. În acest fel, sistemul va verifica mai întâi noul director și apoi va verifica căile existente.

Această comandă are rolul de a adăuga directorul cu fișiere executabile PostgreSQL la variabila de mediu PATH a sistemului, asigurându-vă că puteți rula direct comenzile PostgreSQL (cum ar fi psql) în linia de comandă, fără a fi nevoie să furnizați calea completă. Setările modificate se vor aplica tuturor utilizatorilor

Inițializarea bazei de date PostgreSQL

Aceste comenzi sunt utilizate în principal pentru a configura manual serverul de baze de date PostgreSQL pe un server Linux, inclusiv crearea unui utilizator de sistem PostgreSQL, inițializarea bazei de date, pornirea serviciului de baze de date și înregistrarea acestuia ca serviciu systemd, astfel încât să pornească automat la pornire.

1. Creați utilizatorul PostgreSQL

sudo useradd -m -U -r -d /var/lib/postgresql -s /bin/bash postgres
  • sudo: Execută comanda cu permisiuni de superutilizator.
  • useradd: Creează un utilizator nou.
  • -m: Creează directorul home al utilizatorului.
  • -U: Creează și un grup de utilizatori cu același nume ca și numele de utilizator.
  • -r: Creează un utilizator de sistem (UID-ul utilizatorului de sistem este mai mic de 1000, nu este utilizat pentru conectare).
  • -d /var/lib/postgresql: Specifică directorul home ca /var/lib/postgresql.
  • -s /bin/bash: Specifică shell-ul ca /bin/bash.
  • postgres: Nume de utilizator.

Această comandă creează un utilizator de sistem dedicat PostgreSQL, postgres.


2. Schimbați proprietarul directorului PostgreSQL

sudo chown postgres /usr/local/pgsql
  • chown postgres /usr/local/pgsql: Schimbă proprietarul directorului /usr/local/pgsql în utilizatorul postgres, permițându-i să citească și să scrie în director.

3. Setați parola utilizatorului PostgreSQL

sudo passwd postgres
  • passwd postgres: Modifică parola utilizatorului postgres.

4. Comutați la utilizatorul PostgreSQL

su postgres
  • su postgres: Comută la utilizatorul postgres, astfel încât să puteți utiliza comenzile aferente PostgreSQL.

5. Inițializați baza de date

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
  • initdb -D /usr/local/pgsql/data: Inițializează stocarea bazei de date în directorul /usr/local/pgsql/data.

6. Porniți baza de date PostgreSQL

/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
  • postgres -D /usr/local/pgsql/data: Pornește baza de date ca proces postgres, datele sunt stocate în directorul /usr/local/pgsql/data.

7. Într-o altă sesiune de terminal, accesați baza de date

su postgres
/usr/local/pgsql/bin/psql
  • psql: Instrumentul de interacțiune în linia de comandă PostgreSQL, accesează shell-ul bazei de date.

8. Setați parola utilizatorului bazei de date

ALTER USER postgres WITH PASSWORD 'your_new_password';
  • Modifică parola utilizatorului bazei de date postgres.

9. Creați un serviciu systemd

sudo nano /etc/systemd/system/postgresql.service
  • nano /etc/systemd/system/postgresql.service: Editează fișierul de configurare systemd, permițând rularea PostgreSQL ca serviciu.

Conținutul fișierului de configurare:

[Unit]
Description=Server PostgreSQL
#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=Server PostgreSQL: Descrie că acest serviciu este serverul PostgreSQL.
  • After=network-online.target: Așteaptă ca conexiunea de rețea să fie disponibilă înainte de a porni PostgreSQL.
  • User=postgres: Rulează ca utilizator postgres.
  • ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data: Pornește serverul PostgreSQL.
  • ExecReload=/bin/kill -HUP $MAINPID: Trimite semnalul HUP la reîncărcare.
  • KillMode=mixed: Mod de terminare mixt.
  • KillSignal=SIGINT: Semnal pentru terminarea procesului PostgreSQL.
  • TimeoutSec=infinity: Timeout setat la infinit.

10. Activați serviciul systemd

sudo systemctl daemon-reload
sudo systemctl start postgresql
sudo systemctl status postgresql
sudo systemctl enable postgresql
  • daemon-reload: Reîncarcă configurația systemd, făcând efectiv noul postgresql.service.
  • start postgresql: Pornește serviciul PostgreSQL.
  • status postgresql: Verifică starea de funcționare PostgreSQL.
  • enable postgresql: Pornește automat PostgreSQL la pornire.

Scopul acestor comenzi este:

  1. Crearea unui utilizator postgres dedicat pentru rularea PostgreSQL.
  2. Inițializarea directorului de stocare a bazei de date.
  3. Pornirea bazei de date PostgreSQL și accesarea liniei de comandă interactivă psql.
  4. Configurarea systemd pentru a rula PostgreSQL ca serviciu de sistem și pentru a accepta pornirea automată la pornire.

În acest fel, serverul PostgreSQL poate funcționa normal și poate porni automat când sistemul pornește.

Referințe

PostgreSQL: Documentație: 17: Capitolul 17. Instalare din codul sursă

Alte versiuni ale acestei pagini web

Acest articol are versiuni în mai multe limbi.

Dacă doriți să postați un comentariu, vă rugăm să vizitați următoarele pagini web:

ZH EN ZH-TW JA

Aceste pagini web acceptă doar navigarea, nu puteți posta comentarii sau mesaje, dar oferă mai multe opțiuni lingvistice și au un timp de încărcare mai scurt:

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

Acest articol a fost tradus din Chinese (Simplified) în Romanian prin AI.