Jeg har med succes kompileret og installeret den seneste version af PostgreSQL (17.4) på Ubuntu ARM32.

Kommandoerne i denne artikel stammer hovedsageligt fra PostgreSQL’s officielle dokumentation. Jeg har faktisk testet hver kommando i denne artikel.

Du kan se systemer, der kan installeres med succes, her: PostgreSQL build farm

Kompilering og installation af PostgreSQL 17.4

1. Opret en mappe og gå ind i mappen

mkdir postgresql && cd postgresql
  • mkdir postgresql: Opretter en ny mappe med navnet postgresql.
  • cd postgresql: Går ind i den netop oprettede postgresql-mappe.

2. Download PostgreSQL-kildekode

wget https://ftp.postgresql.org/pub/source/v17.4/postgresql-17.4.tar.bz2
  • wget: Downloader en fil fra den angivne URL.
  • https://..../postgresql-17.4.tar.bz2: Downloadlink til den komprimerede kildekode pakke af PostgreSQL version 17.4. Hvis linket er ugyldigt, kan du selv finde et nyt link.

3. Udpak kildekodepakken

tar xjf postgresql-17.4.tar.bz2
  • tar: Bruges til at behandle .tar-komprimerede filer.

  • xjf: Valgmuligheder for at udpakke tar-filer:

    • x: Udtrækker filer.
    • j: Bruger bzip2-komprimeringsformat (.bz2).
    • f: Angiver den fil, der skal udpakkes.
  • postgresql-17.4.tar.bz2: Navnet på den fil, der skal udpakkes.

4. Gå ind i den udpakkede kildekodemappe

cd postgresql-17.4
  • Gå ind i den udpakkede PostgreSQL 17.4-kildekodemappe.

5. Installer afhængighedspakker

sudo apt install libssl-dev libsystemd-dev libxml2-dev libreadline-dev
  • sudo apt install: Bruger apt-pakkehåndteringen til at installere pakker.
  • libssl-dev, libsystemd-dev, libxml2-dev, libreadline-dev: Installer udviklingsbibliotekerne, der kræves til PostgreSQL-kompilering, nemlig SSL-biblioteket, Systemd-biblioteket, XML-biblioteket og Readline-biblioteket.

6. Konfigurer kompileringsindstillinger

./configure --prefix=/usr/local/pgsql --with-openssl --with-libxml --with-systemd
  • ./configure: Forbereder PostgreSQL’s kompileringsmiljø.
  • --prefix=/usr/local/pgsql: Angiver PostgreSQL-installationsmappen som /usr/local/pgsql.
  • --with-openssl: Aktiverer OpenSSL-support.
  • --with-libxml: Aktiverer XML-support.
  • --with-systemd: Aktiverer Systemd-support.

7. Kompiler kildekoden

make -j$(nproc)
  • make: Starter kompileringsprocessen.
  • -j$(nproc): Bruger nproc (antallet af CPU-kerner i systemet) til at udføre kompileringsopgaver parallelt, hvilket fremskynder kompileringsprocessen.

8. Installer PostgreSQL

sudo make install
  • sudo make install: Bruger sudo til at udføre installationen med administratorrettigheder. make install installerer de kompilerede filer i systemet, og installerer dem i den /usr/local/pgsql-mappe, der er angivet i den tidligere ./configure-kommando.

9. Indstil miljøvariabler

Brug en teksteditor 1. Rediger /etc/profile-filen:

sudo nano /etc/profile
  • sudo: Angiver, at kommandoen køres med superbruger- (administrator-) rettigheder. Dette skyldes, at ændring af filen /etc/profile kræver administratorrettigheder.
  • nano: Dette er en teksteditor, der ofte bruges i terminalmiljøer til at redigere filer.
  • /etc/profile: Dette er en global konfigurationsfil, der bruges til at indstille systemomfattende miljøvariabler og opstartskonfigurationer. Alle brugere udfører indstillingerne i denne fil, når de logger på systemet.
  1. Tilføj miljøvariabler:
export PATH=/usr/local/pgsql/bin:$PATH
  • export: Bruges til at indstille en miljøvariabel, så den er tilgængelig i den aktuelle proces og underprocesser.
  • PATH: Dette er en miljøvariabel, der indeholder en liste over mapperne med eksekverbare filer i systemet. Når systemet udfører en kommando, søger det efter kommandoen baseret på de mapper, der er angivet i variablen PATH.
  • /usr/local/pgsql/bin: Dette er mappen med eksekverbare filer i PostgreSQL-databasen, og tilføjelse af den betyder, at de eksekverbare filer (f.eks. psql) i denne mappe genkendes af systemet.
  • :$PATH: Her repræsenterer $PATH den oprindelige eksisterende sti, og den nye sti /usr/local/pgsql/bin føjes til begyndelsen af den eksisterende PATH. På denne måde kontrollerer systemet først den nye mappe og derefter den oprindelige sti.

Virkningen af denne kommando er at føje PostgreSQL’s eksekverbare filmappe til systemets miljøvariabel PATH, hvilket sikrer, at PostgreSQL-kommandoer (f.eks. psql) kan køres direkte i kommandolinjen uden at skulle angive den fulde sti. De ændrede indstillinger træder i kraft for alle brugere.

Initialisering af PostgreSQL-database

Disse kommandoer bruges hovedsageligt til manuelt at konfigurere PostgreSQL databaseserveren på en Linux-server, herunder oprettelse af en PostgreSQL-systembruger, initialisering af databasen, start af databaseserveren og registrering af den som en systemd-tjeneste, så den automatisk starter ved opstart.

1. Opret en PostgreSQL-bruger

sudo useradd -m -U -r -d /var/lib/postgresql -s /bin/bash postgres
  • sudo: Udfør kommandoen med superbrugerrettigheder.
  • useradd: Opret en ny bruger.
  • -m: Opret brugerens hjemmemappe.
  • -U: Opret samtidig en brugergruppe med samme navn som brugernavnet.
  • -r: Opret en systembruger (systembrugerens UID er lavere end 1000 og bruges ikke til login).
  • -d /var/lib/postgresql: Angiv hjemmemappen til /var/lib/postgresql.
  • -s /bin/bash: Angiv shellen til /bin/bash.
  • postgres: Brugernavn.

Denne kommando opretter en PostgreSQL-dedikeret systembruger postgres.


2. Skift ejeren af PostgreSQL-mappen

sudo chown postgres /usr/local/pgsql
  • chown postgres /usr/local/pgsql: Ændrer ejeren af mappen /usr/local/pgsql til brugeren postgres, så de kan læse og skrive til mappen.

3. Indstil adgangskoden for PostgreSQL-brugeren

sudo passwd postgres
  • passwd postgres: Rediger adgangskoden for postgres-brugeren.

4. Skift til PostgreSQL-brugeren

su postgres
  • su postgres: Skift til postgres-brugeren for at bruge PostgreSQL-relaterede kommandoer.

5. Initialiser databasen

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
  • initdb -D /usr/local/pgsql/data: Initialiserer databaselageret i mappen /usr/local/pgsql/data.

6. Start PostgreSQL-databasen

/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
  • postgres -D /usr/local/pgsql/data: Starter databasen med postgres-processen, hvor dataene gemmes i mappen /usr/local/pgsql/data.

7. I en anden terminalsession skal du gå ind i databasen

su postgres
/usr/local/pgsql/bin/psql
  • psql: PostgreSQL’s kommandolinje interaktive værktøj, der bruges til at gå ind i database-shell.

8. Indstil adgangskoden til databasebrugeren

ALTER USER postgres WITH PASSWORD 'your_new_password';
  • Rediger adgangskoden til databasebrugeren postgres.

9. Opret en systemd-tjeneste

sudo nano /etc/systemd/system/postgresql.service
  • nano /etc/systemd/system/postgresql.service: Rediger systemd-konfigurationsfilen for at lade PostgreSQL køre som en tjeneste.

Filens indhold:

[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: Beskriver, at denne tjeneste er en PostgreSQL-server.
  • After=network-online.target: Venter på, at netværksforbindelsen er tilgængelig, før PostgreSQL startes.
  • User=postgres: Kører som postgres-brugeren.
  • ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data: Starter PostgreSQL-serveren.
  • ExecReload=/bin/kill -HUP $MAINPID: Sender et HUP-signal ved genindlæsning.
  • KillMode=mixed: Blandet afslutningstilstand.
  • KillSignal=SIGINT: Signal til afslutning af PostgreSQL-processen.
  • TimeoutSec=infinity: Timeout er sat til uendelig.

10. Aktiver systemd-tjenesten

sudo systemctl daemon-reload
sudo systemctl start postgresql
sudo systemctl status postgresql
sudo systemctl enable postgresql
  • daemon-reload: Genindlæser systemd-konfigurationen for at få den nye postgresql.service til at træde i kraft.
  • start postgresql: Starter PostgreSQL-tjenesten.
  • status postgresql: Kontrollerer PostgreSQL’s driftstilstand.
  • enable postgresql: Starter PostgreSQL automatisk ved opstart.

Formålet med disse kommandoer er:

  1. Opret en postgres-bruger, der er specielt beregnet til at køre PostgreSQL.
  2. Initialiser databasens lagermappe.
  3. Start PostgreSQL-databasen, og gå ind i den interaktive psql-kommandolinje.
  4. Konfigurer systemd til at køre PostgreSQL som en systemtjeneste og understøtte automatisk opstart.

På denne måde kan PostgreSQL-serveren køre normalt og kan startes automatisk, når systemet starter.

Referencer

PostgreSQL: Dokumentation: 17: Kapitel 17. Installation fra kildekode

Andre versioner af denne webside

Denne artikel er tilgængelig på flere sprog.

Hvis du vil skrive en kommentar, kan du besøge følgende webside:

ZH EN ZH-TW JA

Disse websider understøtter kun browsing og tillader ikke at skrive kommentarer eller beskeder, men de tilbyder flere sprogmuligheder og har kortere indlæsningstider:

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

Denne artikel er oversat fra kinesisk (forenklet) til dansk af AI.