Jeg har lykkes med å kompilere og installere den nyeste versjonen av PostgreSQL (17.4) på Ubuntu ARM32.

Kommandoene i denne artikkelen kommer hovedsakelig fra den offisielle PostgreSQL-dokumentasjonen. Jeg har faktisk testet hver kommando i denne artikkelen.

Du kan se systemet som kan installeres her PostgreSQL bygggård

Kompilere og installere PostgreSQL 17.4

1. Opprett mappe og gå inn i mappen

mkdir postgresql && cd postgresql
  • mkdir postgresql: Oppretter en ny mappe som heter postgresql.
  • cd postgresql: Går inn i mappen postgresql som nettopp ble opprettet.

2. Last ned PostgreSQL-kildekoden

wget https://ftp.postgresql.org/pub/source/v17.4/postgresql-17.4.tar.bz2
  • wget: Laster ned filen fra den angitte URL-en.
  • https://..../postgresql-17.4.tar.bz2: Nedlastingslenken for den komprimerte kildekode-pakken for PostgreSQL 17.4-versjonen. Hvis lenken er ugyldig, kan du finne en ny lenke selv.

3. Pakk ut kildekode-pakken

tar xjf postgresql-17.4.tar.bz2
  • tar: Brukes til å behandle .tar-komprimerte filer.

  • xjf: Alternativer for å pakke ut tar-filen:

    • x: Pakker ut filen.
    • j: Bruker bzip2-komprimeringsformatet (.bz2).
    • f: Angir filen som skal pakkes ut.
  • postgresql-17.4.tar.bz2: Filnavnet som skal pakkes ut.

4. Gå inn i den utpakkede kildekodemappen

cd postgresql-17.4
  • Gå inn i den utpakkede PostgreSQL 17.4-kildekodemappen.

5. Installer avhengighetspakker

sudo apt install libssl-dev libsystemd-dev libxml2-dev libreadline-dev
  • sudo apt install: Bruker apt-pakkebehandleren til å installere pakker.
  • libssl-dev, libsystemd-dev, libxml2-dev, libreadline-dev: Installerer utviklingsbibliotekene som kreves for PostgreSQL-kompilering, henholdsvis SSL-biblioteket, Systemd-biblioteket, XML-biblioteket og Readline-biblioteket.

6. Konfigurer kompileringsalternativer

./configure --prefix=/usr/local/pgsql --with-openssl --with-libxml --with-systemd
  • ./configure: Forbereder PostgreSQL-kompileringsmiljøet.
  • --prefix=/usr/local/pgsql: Angir PostgreSQL-installasjonsmappen som /usr/local/pgsql.
  • --with-openssl: Aktiverer OpenSSL-støtte.
  • --with-libxml: Aktiverer XML-støtte.
  • --with-systemd: Aktiverer Systemd-støtte.

7. Kompiler kildekoden

make -j$(nproc)
  • make: Starter kompileringsprosessen.
  • -j$(nproc): Bruker nproc (antall CPU-kjerner i systemet) til å utføre kompileringsjobber parallelt, noe som akselererer kompileringsprosessen.

8. Installer PostgreSQL

sudo make install
  • sudo make install: Bruker sudo for å utføre installasjonen med administratorrettigheter, make install installerer de kompilerte filene i systemet, og installerer dem i /usr/local/pgsql-mappen som er spesifisert i den forrige ./configure-kommandoen.

9. Angi miljøvariabler

Bruk tekstredigeringsprogram 1. Rediger /etc/profile-filen:

sudo nano /etc/profile
  • sudo: Angir at kommandoen kjøres med superbrukerrettigheter (administrator). Fordi endring av /etc/profile-filen krever administratorrettigheter.
  • nano: Dette er en tekstredigeringsprogram, som ofte brukes i terminalmiljøer for å redigere filer.
  • /etc/profile: Dette er en global konfigurasjonsfil som brukes til å angi systemomfattende miljøvariabler og oppstartskonfigurasjoner. Alle brukere vil utføre innstillingene i denne filen når de logger på systemet.
  1. Legg til miljøvariabler:
export PATH=/usr/local/pgsql/bin:$PATH
  • export: Brukes til å angi en miljøvariabel slik at den er tilgjengelig i gjeldende og underprosesser.
  • PATH: Dette er en miljøvariabel som inneholder en liste over kataloger med kjørbare filer i systemet. Når systemet utfører en kommando, vil det søke etter kommandoen basert på katalogene som er oppført i PATH-variabelen.
  • /usr/local/pgsql/bin: Dette er katalogen for kjørbare filer for PostgreSQL-databasen. Å legge den til betyr at de kjørbare filene (som psql) i denne katalogen vil bli gjenkjent av systemet.
  • :$PATH: Her representerer $PATH den opprinnelige eksisterende banen, og legger til den nye banen /usr/local/pgsql/bin foran den eksisterende PATH. På denne måten vil systemet sjekke den nye katalogen først, og deretter sjekke den opprinnelige banen.

Denne kommandoen brukes til å legge til PostgreSQLs kjørbare filkatalog i systemets miljøvariabel PATH, og sikrer at PostgreSQL-kommandoer (som psql) kan kjøres direkte i kommandolinjen uten å måtte oppgi hele banen. De endrede innstillingene vil gjelde for alle brukere

Initialiser PostgreSQL-databasen

Disse kommandoene brukes hovedsakelig til å manuelt konfigurere PostgreSQL databaseserveren på en Linux-server, inkludert å opprette en PostgreSQL-systembruker, initialisere databasen, starte databasetjenesten og registrere den som en systemd-tjeneste, slik at den automatisk starter ved oppstart.

1. Opprett PostgreSQL-bruker

sudo useradd -m -U -r -d /var/lib/postgresql -s /bin/bash postgres
  • sudo: Utfører kommandoen med superbrukerrettigheter.
  • useradd: Oppretter en ny bruker.
  • -m: Oppretter brukerens hjemmekatalog.
  • -U: Oppretter samtidig en brukergruppe med samme navn som brukernavnet.
  • -r: Oppretter en systembruker (systembruker-UID er lavere enn 1000, brukes ikke til å logge på).
  • -d /var/lib/postgresql: Angir hjemmekatalogen som /var/lib/postgresql.
  • -s /bin/bash: Angir shell som /bin/bash.
  • postgres: Brukernavn.

Denne kommandoen oppretter en PostgreSQL-dedikert systembruker postgres.


2. Endre eieren av PostgreSQL-mappen

sudo chown postgres /usr/local/pgsql
  • chown postgres /usr/local/pgsql: Endrer eieren av /usr/local/pgsql-mappen til postgres-brukeren, slik at den kan lese og skrive til denne mappen.

3. Angi passordet for PostgreSQL-brukeren

sudo passwd postgres
  • passwd postgres: Endrer passordet for postgres-brukeren.

4. Bytt til PostgreSQL-brukeren

su postgres
  • su postgres: Bytter til postgres-brukeren for å bruke PostgreSQL-relaterte kommandoer.

5. Initialiser databasen

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

6. Start PostgreSQL-databasen

/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
  • postgres -D /usr/local/pgsql/data: Starter databasen som en postgres-prosess, med datalagring i /usr/local/pgsql/data-mappen.

7. I en annen terminaløkt, gå inn i databasen

su postgres
/usr/local/pgsql/bin/psql
  • psql: PostgreSQLs kommandolinje-interaksjonsverktøy, går inn i databaseshellet.

8. Angi passordet for databasebrukeren

ALTER USER postgres WITH PASSWORD 'your_new_password';
  • Endrer passordet for databasebrukeren postgres.

9. Opprett systemd-tjeneste

sudo nano /etc/systemd/system/postgresql.service
  • nano /etc/systemd/system/postgresql.service: Redigerer systemd-konfigurasjonsfilen, slik at PostgreSQL kan kjøre som en tjeneste.

Konfigurasjonsfilens innhold:

[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 tjenesten er en PostgreSQL-server.
  • After=network-online.target: Venter til nettverkstilkoblingen er tilgjengelig før PostgreSQL startes.
  • User=postgres: Kjører som postgres-bruker.
  • ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data: Starter PostgreSQL-serveren.
  • ExecReload=/bin/kill -HUP $MAINPID: Sender HUP-signal ved omlasting.
  • KillMode=mixed: Blandet avslutningsmodus.
  • KillSignal=SIGINT: Signal for å avslutte PostgreSQL-prosessen.
  • TimeoutSec=infinity: Tidsavbrudd er satt til uendelig.

10. Aktiver systemd-tjeneste

sudo systemctl daemon-reload
sudo systemctl start postgresql
sudo systemctl status postgresql
sudo systemctl enable postgresql
  • daemon-reload: Laster inn systemd-konfigurasjonen på nytt, slik at den nye postgresql.service trer i kraft.
  • start postgresql: Starter PostgreSQL-tjenesten.
  • status postgresql: Sjekker PostgreSQLs kjørestatus.
  • enable postgresql: Starter PostgreSQL automatisk ved oppstart.

Formålet med disse kommandoene er:

  1. Opprette en postgres-bruker som er spesielt dedikert til å kjøre PostgreSQL.
  2. Initialisere databasens lagringskatalog.
  3. Starte PostgreSQL-databasen og gå inn i det interaktive psql-kommandolinjen.
  4. Konfigurere systemd slik at PostgreSQL kjører som en systemtjeneste og støtter automatisk oppstart ved oppstart.

På denne måten kan PostgreSQL-serveren kjøre normalt og kan startes automatisk når systemet starter.

Referansemateriell

PostgreSQL: Dokumentasjon: 17: Kapittel 17. Installasjon fra kildekode

Andre versjoner av denne nettsiden

Denne artikkelen finnes i flere språkversjoner.

Hvis du vil legge inn en kommentar, kan du gå til følgende nettside:

ZH EN ZH-TW JA

Disse nettsidene støtter bare visning, og kan ikke publisere kommentarer eller meldinger, men gir flere språkalternativer og kortere lastetider:

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 artikkelen er oversatt fra Chinese (Simplified) til Norwegian av AI.