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 nazivompostgresql
.cd postgresql
: Ulazi u upravo stvoreni direktorijpostgresql
.
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 raspakiravanjetar
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 paketaapt
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)
: Koristinproc
(broj jezgri CPU-a sustava) za paralelno izvršavanje zadataka kompajliranja, ubrzavajući proces.
8. Instalacija PostgreSQL-a
sudo make install
sudo make install
: Koristisudo
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.
- 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 varijabliPATH
./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 jepsql
) u tom direktoriju.:$PATH
: Ovdje$PATH
predstavlja postojeće putanje, a nova putanja/usr/local/pgsql/bin
se dodaje ispred postojećegPATH
. 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 korisnikapostgres
, omogućujući mu čitanje i pisanje u taj direktorij.
3. Postavljanje lozinke za PostgreSQL korisnika
sudo passwd postgres
passwd postgres
: Mijenja lozinku za korisnikapostgres
.
4. Prebacivanje na PostgreSQL korisnika
su postgres
su postgres
: Prebacuje se na korisnikapostgres
, 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 procespostgres
, 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đujesystemd
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 korisnikpostgres
.ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
: Pokreće PostgreSQL poslužitelj.ExecReload=/bin/kill -HUP $MAINPID
: ŠaljeHUP
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čitavasystemd
konfiguraciju, omogućujući da novapostgresql.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:
- Stvoriti
postgres
korisnika posebno namijenjenog za pokretanje PostgreSQL-a. - Inicijalizirati direktorij za pohranu baze podataka.
- Pokrenuti PostgreSQL bazu podataka i ući u
psql
interaktivnu naredbenu liniju. - 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:
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.