Uspješno sam kompajlirao i instalirao najnoviju verziju PostgreSQL-a (17.4) na Ubuntu ARM32.

Naredbe u ovom članku uglavnom potječu iz službene dokumentacije PostgreSQL-a. Praktično sam testirao svaku naredbu u ovom članku.

Možete vidjeti sustave na kojima je instalacija uspješna ovdje PostgreSQL farma za izgradnju

Kompajliranje i instalacija PostgreSQL 17.4

1. Stvaranje direktorija i ulazak u direktorij

mkdir postgresql && cd postgresql
  • mkdir postgresql: Stvara novi direktorij pod nazivom postgresql.
  • cd postgresql: Ulazi u upravo stvoreni direktorij postgresql.

2. Preuzimanje izvornog koda PostgreSQL-a

wget https://ftp.postgresql.org/pub/source/v17.4/postgresql-17.4.tar.bz2
  • wget: Preuzima datoteku s navedenog URL-a.
  • https://..../postgresql-17.4.tar.bz2: Poveznica za preuzimanje komprimirane izvorne datoteke PostgreSQL verzije 17.4. Ako poveznica ne radi, možete sami pronaći novu.

3. Raspakiravanje izvorne datoteke

tar xjf postgresql-17.4.tar.bz2
  • tar: Koristi se za obradu .tar komprimiranih datoteka.

  • xjf: Opcije za raspakiravanje tar datoteke:

    • x: Raspakirava datoteku.
    • j: Koristi bzip2 format kompresije (.bz2).
    • f: Određuje datoteku za raspakiravanje.
  • postgresql-17.4.tar.bz2: Naziv datoteke za raspakiravanje.

4. Ulazak u raspakirani direktorij izvornog koda

cd postgresql-17.4
  • Ulazak u raspakirani direktorij izvornog koda PostgreSQL 17.4.

5. Instalacija ovisnosti

sudo apt install libssl-dev libsystemd-dev libxml2-dev libreadline-dev
  • sudo apt install: Koristi upravitelj paketa apt za instaliranje paketa.
  • libssl-dev, libsystemd-dev, libxml2-dev, libreadline-dev: Instalira razvojne biblioteke potrebne za kompajliranje PostgreSQL-a, a to su SSL biblioteka, Systemd biblioteka, XML biblioteka i Readline biblioteka.

6. Konfiguracija opcija kompajliranja

./configure --prefix=/usr/local/pgsql --with-openssl --with-libxml --with-systemd
  • ./configure: Priprema okruženje za kompajliranje PostgreSQL-a.
  • --prefix=/usr/local/pgsql: Određuje direktorij instalacije PostgreSQL-a kao /usr/local/pgsql.
  • --with-openssl: Omogućuje podršku za OpenSSL.
  • --with-libxml: Omogućuje podršku za XML.
  • --with-systemd: Omogućuje podršku za Systemd.

7. Kompajliranje izvornog koda

make -j$(nproc)
  • make: Pokreće proces kompajliranja.
  • -j$(nproc): Koristi nproc (broj jezgri CPU-a sustava) za paralelno izvršavanje zadataka kompajliranja, ubrzavajući proces.

8. Instalacija PostgreSQL-a

sudo make install
  • sudo make install: Koristi sudo za izvršavanje instalacije s administratorskim ovlastima, make install instalira kompajlirane datoteke u sustav, u direktorij /usr/local/pgsql koji je specificiran u prethodnoj naredbi ./configure.

9. Postavljanje varijabli okruženja

Koristite uređivač teksta 1. Uređivanje datoteke /etc/profile:

sudo nano /etc/profile
  • sudo: Označava pokretanje naredbe s administratorskim (superkorisničkim) ovlastima. Izmjena datoteke /etc/profile zahtijeva administratorske ovlasti.
  • nano: To je uređivač teksta, koji se često koristi u terminalnom okruženju za uređivanje datoteka.
  • /etc/profile: To je globalna konfiguracijska datoteka, koja se koristi za postavljanje sistemskih varijabli okruženja i konfiguracije pokretanja. Svi korisnici će prilikom prijave u sustav izvršiti postavke iz ove datoteke.
  1. Dodavanje varijabli okruženja:
export PATH=/usr/local/pgsql/bin:$PATH
  • export: Koristi se za postavljanje varijable okruženja, čineći je dostupnom u trenutnom i podređenim procesima.
  • PATH: To je varijabla okruženja, koja sadrži popis direktorija s izvršnim datotekama u sustavu. Sustav pri izvršavanju naredbe pretražuje naredbu prema direktorijima navedenim u varijabli PATH.
  • /usr/local/pgsql/bin: To je direktorij s izvršnim datotekama PostgreSQL baze podataka, a njegovo dodavanje znači da će sustav prepoznati izvršne datoteke (kao što je psql) u tom direktoriju.
  • :$PATH: Ovdje $PATH predstavlja postojeće putanje, a nova putanja /usr/local/pgsql/bin se dodaje ispred postojećeg PATH. Na taj način sustav prvo provjerava novi direktorij, a zatim provjerava postojeće putanje.

Svrha ove naredbe je dodati direktorij izvršnih datoteka PostgreSQL-a u varijablu okruženja PATH sustava, osiguravajući da se PostgreSQL naredbe (kao što je psql) mogu izravno pokrenuti u naredbenom retku, bez potrebe za navođenjem pune putanje. Izmijenjene postavke će se primijeniti na sve korisnike

Inicijalizacija PostgreSQL baze podataka

Ove se naredbe uglavnom koriste za ručnu konfiguraciju PostgreSQL poslužitelja baze podataka na Linux poslužitelju, uključujući stvaranje PostgreSQL sistemskog korisnika, inicijalizaciju baze podataka, pokretanje servisa baze podataka i njegovo registriranje kao systemd servis, kako bi se automatski pokretao prilikom pokretanja sustava.

1. Stvaranje PostgreSQL korisnika

sudo useradd -m -U -r -d /var/lib/postgresql -s /bin/bash postgres
  • sudo: Izvršava naredbu s administratorskim ovlastima.
  • useradd: Stvara novog korisnika.
  • -m: Stvara home direktorij za korisnika.
  • -U: Istovremeno stvara korisničku grupu s istim imenom kao i korisničko ime.
  • -r: Stvara sistemskog korisnika (UID sistemskog korisnika je manji od 1000, ne koristi se za prijavu).
  • -d /var/lib/postgresql: Određuje home direktorij kao /var/lib/postgresql.
  • -s /bin/bash: Određuje shell kao /bin/bash.
  • postgres: Korisničko ime.

Ova naredba stvara sistemskog korisnika postgres posvećenog PostgreSQL-u.


2. Promjena vlasnika PostgreSQL direktorija

sudo chown postgres /usr/local/pgsql
  • chown postgres /usr/local/pgsql: Mijenja vlasnika direktorija /usr/local/pgsql u korisnika postgres, omogućujući mu čitanje i pisanje u taj direktorij.

3. Postavljanje lozinke za PostgreSQL korisnika

sudo passwd postgres
  • passwd postgres: Mijenja lozinku za korisnika postgres.

4. Prebacivanje na PostgreSQL korisnika

su postgres
  • su postgres: Prebacuje se na korisnika postgres, kako bi se mogle koristiti naredbe vezane uz PostgreSQL.

5. Inicijalizacija baze podataka

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
  • initdb -D /usr/local/pgsql/data: Inicijalizira pohranu baze podataka u direktoriju /usr/local/pgsql/data.

6. Pokretanje PostgreSQL baze podataka

/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
  • postgres -D /usr/local/pgsql/data: Pokreće bazu podataka kao proces postgres, pohranjujući podatke u direktoriju /usr/local/pgsql/data.

7. U drugoj terminalskoj sesiji, ulazak u bazu podataka

su postgres
/usr/local/pgsql/bin/psql
  • psql: PostgreSQL-ov alat za interaktivnu naredbenu liniju, ulazak u shell baze podataka.

8. Postavljanje lozinke za korisnika baze podataka

ALTER USER postgres WITH PASSWORD 'your_new_password';
  • Mijenja lozinku korisnika baze podataka postgres.

9. Stvaranje systemd servisa

sudo nano /etc/systemd/system/postgresql.service
  • nano /etc/systemd/system/postgresql.service: Uređuje systemd konfiguracijsku datoteku, omogućujući da se PostgreSQL pokreće kao servis.

Sadržaj konfiguracijske datoteke:

[Unit]
Description=Poslužitelj 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=Poslužitelj PostgreSQL: Opisuje da je ovaj servis PostgreSQL poslužitelj.
  • After=network-online.target: Čeka da mrežna veza bude dostupna prije pokretanja PostgreSQL-a.
  • User=postgres: Pokreće se kao korisnik postgres.
  • ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data: Pokreće PostgreSQL poslužitelj.
  • ExecReload=/bin/kill -HUP $MAINPID: Šalje HUP signal prilikom ponovnog učitavanja.
  • KillMode=mixed: Mješoviti način zaustavljanja.
  • KillSignal=SIGINT: Signal za zaustavljanje PostgreSQL procesa.
  • TimeoutSec=infinity: Vrijeme čekanja postavljeno na beskonačno.

10. Omogućavanje systemd servisa

sudo systemctl daemon-reload
sudo systemctl start postgresql
sudo systemctl status postgresql
sudo systemctl enable postgresql
  • daemon-reload: Ponovno učitava systemd konfiguraciju, omogućujući da nova postgresql.service stupi na snagu.
  • start postgresql: Pokreće PostgreSQL servis.
  • status postgresql: Provjerava status pokretanja PostgreSQL-a.
  • enable postgresql: Omogućuje automatsko pokretanje PostgreSQL-a pri pokretanju sustava.

Svrha ovih naredbi je:

  1. Stvoriti postgres korisnika posebno namijenjenog za pokretanje PostgreSQL-a.
  2. Inicijalizirati direktorij za pohranu baze podataka.
  3. Pokrenuti PostgreSQL bazu podataka i ući u psql interaktivnu naredbenu liniju.
  4. Konfigurirati systemd da PostgreSQL radi kao sistemski servis i podržava automatsko pokretanje prilikom pokretanja sustava.

Na taj način PostgreSQL poslužitelj može normalno raditi i može se automatski pokrenuti prilikom pokretanja sustava.

Referentni materijali

PostgreSQL: Dokumentacija: 17: Poglavlje 17. Instalacija iz izvornog koda

Ostale verzije ove web stranice

Ovaj članak ima verzije na različitim jezicima.

Ako želite objaviti komentar, posjetite sljedeću web stranicu:

ZH EN ZH-TW JA

Ove web stranice podržavaju samo pregledavanje, ne možete objaviti komentare ili poruke, ali nude više jezičnih opcija i brže se učitavaju:

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

Ovaj je članak pomoću AI-a preveden s kineskog (pojednostavljenog) na hrvatski jezik.