Hvordan installere PostgreSQL ved hjelp av kildekode i Linux


PostgreSQL, et åpen kildekode relasjonsdatabaseadministrasjonssystem, er kjent for sine robuste funksjoner og utvidbarhet. Mens mange Linux-distribusjoner gir PostgreSQL gjennom pakkebehandlerne, gir installering fra kilden større tilpasning og kontroll.

I denne artikkelen vil vi forklare hvordan du installerer PostgreSQL 16 ved å bruke kildekodeinstallasjon på Linux-systemer.

For de som søker en enklere installasjonsmetode fra distribusjonspakkebehandleren, følg veiledningene nedenfor:

Forutsetninger

Før du går inn i PostgreSQL-installasjonsprosessen, sørg for at systemet ditt oppfyller følgende forutsetninger:

  • En Linux-distribusjon (i denne veiledningen bruker vi Debian til demonstrasjonsformål).
  • Et Linux-system med en ikke-rootbruker med sudo-rettigheter.
  • Viktige utviklingsverktøy som GCC og Make er installert.

1. Installer Prerequisites på Linux

Installer først viktige utviklingsverktøy som GCC og Make ved å bruke distribusjonspakkebehandlingen som vist.

På RHEL-baserte distribusjoner som CentOS, Fedora, Rocky Linux og Alma Linux:

sudo yum groupinstall development-tools
sudo yum install zlib-devel readline-devel libicu-devel

På Debian-baserte distribusjoner som Ubuntu og Linux Mint.

sudo apt install gcc build-essential zlib1g-dev libreadline6-dev libicu-dev pkg-config

2. Last ned PostgreSQL-kildekoden

Når nødvendige forutsetninger er installert, last ned kildekoden tar-filen fra det offisielle postgres-nettstedet ved å bruke følgende wget-kommando direkte på systemet. I skrivende stund er den siste versjonen PostgreSQL 16.1.

wget https://ftp.postgresql.org/pub/source/v16.1/postgresql-16.1.tar.bz2

Deretter bruker du tar-kommandoen til å pakke ut den nedlastede tarball-filen. En ny katalog kalt postgresql-16.1 vil bli opprettet.

tar -xvf postgresql-16.1.tar.bz2
cd postgresql-16.1/
ls -l

Eksempelutdata:

-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. Konfigurer PostgreSQL fra kilde

Siden postgres er en åpen kildekode-database, kan den bygges fra kildekode i henhold til ens behov/krav. vi kan tilpasse bygge- og installasjonsprosessen ved å oppgi ett eller flere kommandolinjealternativer for ulike tilleggsfunksjoner.

Bruk følgende kommando for å få hjelp med ulike alternativer og konfigurasjonsbruk, som vist.

./configure --help

Kjør nå konfigureringsskriptet, som vil sjekke systemet ditt for avhengigheter og konfigurere bygget deretter.

./configure

4. Installer PostgreSQL fra kilden

Når den er konfigurert, bruk følgende kommandoer for å bygge og installere PostgreSQL fra kilden.

make
sudo make install

5. Opprette Postgres-bruker

Opprett nå en postgres-bruker og katalog som skal brukes som en data-katalog for initialisering av databaseklyngen. Eieren av denne data-katalogen bør være en postgres-bruker og tillatelsene bør være 700 også angi en bane for postgresql-binærfiler for enkelhets skyld.

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. Initialisere Postgres-databasen

Initialiser nå databasen ved å bruke følgende kommando som postgres-bruker før du bruker noen postgres-kommandoer.

su postgres
initdb -D /pgdatabase/data/ -U postgres -W

Hvor -D er plasseringen for denne databaseklyngen, eller vi kan si at det er datakatalogen der vi ønsker å initialisere databaseklyngen, -U for databasens superbrukernavn og < kode>-W for passordforespørsel for db-superbruker.

For mer informasjon og alternativer kan vi referere til initdb --help.

7. Start PostgreSQL-tjenesten

Etter initialisering av databasen, start databaseklyngen, eller hvis du trenger å endre porten eller lytte til adressen til serveren, rediger filen /pgdatabase/data/postgresql.conf i datakatalogen til databaseserveren.

nano /pgdatabase/data/postgresql.conf

Start nå PostgreSQL-tjenesten.

pg_ctl -D /pgdatabase/data/ start

Etter å ha startet databasen, kontroller statusen til postgres-serverprosessen ved å bruke følgende ps- og netstat-kommandoer.

ps -ef |grep -i postgres
netstat -apn |grep -i 51751

Vi kan se at databaseklyngen kjører bra, og oppstartslogger kan bli funnet på stedet spesifisert med -l-alternativet mens du starter databaseklyngen.

pg_ctl -D /pgdatabase/data/ -l logfile start

8. Koble til PostgreSQL

Koble nå til databaseklyngen og lag en database ved å bruke følgende kommandoer.

psql -p 5432
postgres=# create database test;
postgres=# \l to list all databases in cluster
postgres=# \q to quit form postgres console

Hvis du ser etter et grafisk verktøy kalt pgAdmin for å administrere PostgreSQL-en din, følg disse veiledningene for å installere pgAdmin på Linux-distribusjonen.

Konklusjon

Du har installert PostgreSQL fra kilden på Linux-systemet ditt. Denne prosessen gir fleksibilitet og kontroll over PostgreSQL-installasjonen din, slik at du kan skreddersy den til dine spesifikke krav.