Ik heb met succes de nieuwste versie van PostgreSQL (17.4) gecompileerd en geïnstalleerd op Ubuntu ARM32.

De commando’s in dit artikel zijn voornamelijk afkomstig uit de officiële PostgreSQL-documentatie. Ik heb elk commando in dit artikel daadwerkelijk getest.

Je kunt hier de systemen zien waarop de installatie succesvol is PostgreSQL-bouwboerderij

PostgreSQL 17.4 compileren en installeren

1. Maak een map en ga naar de map

mkdir postgresql && cd postgresql
  • mkdir postgresql: Maakt een nieuwe map met de naam postgresql.
  • cd postgresql: Gaat naar de zojuist gemaakte map postgresql.

2. Download de PostgreSQL-broncode

wget https://ftp.postgresql.org/pub/source/v17.4/postgresql-17.4.tar.bz2
  • wget: Downloadt een bestand van de opgegeven URL.
  • https://..../postgresql-17.4.tar.bz2: De downloadlink voor het gecomprimeerde broncodepakket van PostgreSQL versie 17.4. Als de link ongeldig is, kunt u zelf een nieuwe link zoeken.

3. Pak het broncodepakket uit

tar xjf postgresql-17.4.tar.bz2
  • tar: Wordt gebruikt om .tar-gecomprimeerde bestanden te verwerken.

  • xjf: Opties voor het uitpakken van een tar-bestand:

    • x: Bestand uitpakken.
    • j: Gebruikt bzip2-compressieformaat (.bz2).
    • f: Specificeert het bestand dat moet worden uitgepakt.
  • postgresql-17.4.tar.bz2: De naam van het bestand dat moet worden uitgepakt.

4. Ga naar de uitgepakte broncodemap

cd postgresql-17.4
  • Ga naar de uitgepakte PostgreSQL 17.4 broncodemap.

5. Installeer afhankelijkheidspakketten

sudo apt install libssl-dev libsystemd-dev libxml2-dev libreadline-dev
  • sudo apt install: Gebruikt de apt package manager om pakketten te installeren.
  • libssl-dev, libsystemd-dev, libxml2-dev, libreadline-dev: Installeer de ontwikkelbibliotheken die nodig zijn voor het compileren van PostgreSQL, namelijk de SSL-bibliotheek, Systemd-bibliotheek, XML-bibliotheek en Readline-bibliotheek.

6. Configureer compileropties

./configure --prefix=/usr/local/pgsql --with-openssl --with-libxml --with-systemd
  • ./configure: Bereidt de compileromgeving van PostgreSQL voor.
  • --prefix=/usr/local/pgsql: Specificeert de PostgreSQL-installatiemap als /usr/local/pgsql.
  • --with-openssl: Schakelt OpenSSL-ondersteuning in.
  • --with-libxml: Schakelt XML-ondersteuning in.
  • --with-systemd: Schakelt Systemd-ondersteuning in.

7. Compileer de broncode

make -j$(nproc)
  • make: Start het compilatieproces.
  • -j$(nproc): Gebruikt nproc (het aantal CPU-kernen van het systeem) om compilatietaken parallel uit te voeren, waardoor het compilatieproces wordt versneld.

8. Installeer PostgreSQL

sudo make install
  • sudo make install: Gebruik sudo om de installatie uit te voeren met beheerdersrechten, make install installeert de gecompileerde bestanden in het systeem en installeert ze in de map /usr/local/pgsql die is opgegeven in het vorige commando ./configure.

9. Omgevingsvariabelen instellen

Gebruik een teksteditor 1. Bewerk het bestand /etc/profile:

sudo nano /etc/profile
  • sudo: Geeft aan dat het commando wordt uitgevoerd met superuser (beheerders) rechten. Omdat het wijzigen van het bestand /etc/profile beheerdersrechten vereist.
  • nano: Dit is een teksteditor die vaak wordt gebruikt in terminalomgevingen om bestanden te bewerken.
  • /etc/profile: Dit is een globaal configuratiebestand dat wordt gebruikt om systeembrede omgevingsvariabelen en opstartconfiguraties in te stellen. Alle gebruikers voeren de instellingen in dit bestand uit wanneer ze inloggen op het systeem.
  1. Omgevingsvariabelen toevoegen:
export PATH=/usr/local/pgsql/bin:$PATH
  • export: Wordt gebruikt om een omgevingsvariabele in te stellen, zodat deze beschikbaar is in de huidige en onderliggende processen.
  • PATH: Dit is een omgevingsvariabele die een lijst bevat van de mappen met uitvoerbare bestanden in het systeem. Wanneer het systeem een commando uitvoert, zoekt het naar het commando op basis van de mappen die in de variabele PATH staan.
  • /usr/local/pgsql/bin: Dit is de map met uitvoerbare bestanden van de PostgreSQL-database. Het toevoegen ervan betekent dat de uitvoerbare bestanden (zoals psql) in deze map worden herkend door het systeem.
  • :$PATH: Hier staat $PATH voor het reeds bestaande pad, waarbij het nieuwe pad /usr/local/pgsql/bin wordt toegevoegd aan het begin van het bestaande PATH. Op deze manier controleert het systeem eerst de nieuwe map en vervolgens het bestaande pad.

Het effect van dit commando is het toevoegen van de map met uitvoerbare bestanden van PostgreSQL aan de omgevingsvariabele PATH van het systeem, zodat PostgreSQL-commando’s (zoals psql) direct vanaf de opdrachtregel kunnen worden uitgevoerd zonder dat een volledig pad hoeft te worden opgegeven. De gewijzigde instelling is van toepassing op alle gebruikers

Initialiseer de PostgreSQL-database

Deze commando’s worden voornamelijk gebruikt om handmatig een PostgreSQL databaseserver te configureren op een Linux-server, inclusief het maken van een PostgreSQL-systeemgebruiker, het initialiseren van de database, het starten van de databaseservice en het registreren ervan als een systemd-service, zodat deze automatisch wordt gestart bij het opstarten.

1. Maak een PostgreSQL-gebruiker aan

sudo useradd -m -U -r -d /var/lib/postgresql -s /bin/bash postgres
  • sudo: Voer een commando uit met superuser-rechten.
  • useradd: Maak een nieuwe gebruiker.
  • -m: Maak de home-map van de gebruiker aan.
  • -U: Maak tegelijkertijd een gebruikersgroep aan met dezelfde naam als de gebruikersnaam.
  • -r: Maak een systeemgebruiker aan (systeemgebruiker UID lager dan 1000, niet gebruikt om in te loggen).
  • -d /var/lib/postgresql: Specificeert de home-map als /var/lib/postgresql.
  • -s /bin/bash: Specificeert de shell als /bin/bash.
  • postgres: Gebruikersnaam.

Dit commando maakt een speciale systeemgebruiker postgres voor PostgreSQL.


2. Wijzig de eigenaar van de PostgreSQL-map

sudo chown postgres /usr/local/pgsql
  • chown postgres /usr/local/pgsql: Wijzigt de eigenaar van de map /usr/local/pgsql in de gebruiker postgres, zodat deze de map kan lezen en schrijven.

3. Stel het wachtwoord in voor de PostgreSQL-gebruiker

sudo passwd postgres
  • passwd postgres: Wijzigt het wachtwoord van de gebruiker postgres.

4. Schakel over naar de PostgreSQL-gebruiker

su postgres
  • su postgres: Schakelt over naar de gebruiker postgres, zodat PostgreSQL-gerelateerde commando’s kunnen worden gebruikt.

5. Initialiseer de database

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
  • initdb -D /usr/local/pgsql/data: Initialiseert de databaseopslag in de map /usr/local/pgsql/data.

6. Start de PostgreSQL-database

/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
  • postgres -D /usr/local/pgsql/data: Start de database met het postgres-proces, gegevens worden opgeslagen in de map /usr/local/pgsql/data.

7. Ga in een andere terminalsessie de database in

su postgres
/usr/local/pgsql/bin/psql
  • psql: De opdrachtregel-interactietool van PostgreSQL, ga naar de database-shell.

8. Stel het wachtwoord in voor de databasegebruiker

ALTER USER postgres WITH PASSWORD 'your_new_password';
  • Wijzigt het wachtwoord van de databasegebruiker postgres.

9. Maak een systemd-service

sudo nano /etc/systemd/system/postgresql.service
  • nano /etc/systemd/system/postgresql.service: Bewerk het systemd-configuratiebestand, zodat PostgreSQL als service kan worden uitgevoerd.

Configuratiebestand inhoud:

[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: Beschrijft dat deze service een PostgreSQL-server is.
  • After=network-online.target: Wacht tot de netwerkverbinding beschikbaar is voordat PostgreSQL wordt gestart.
  • User=postgres: Wordt uitgevoerd als de gebruiker postgres.
  • ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data: Start de PostgreSQL-server.
  • ExecReload=/bin/kill -HUP $MAINPID: Verzendt een HUP-signaal bij het herladen.
  • KillMode=mixed: Gemengde beëindigingsmodus.
  • KillSignal=SIGINT: Het signaal om het PostgreSQL-proces te beëindigen.
  • TimeoutSec=infinity: Time-out ingesteld op oneindig.

10. Schakel de systemd-service in

sudo systemctl daemon-reload
sudo systemctl start postgresql
sudo systemctl status postgresql
sudo systemctl enable postgresql
  • daemon-reload: Laad de systemd-configuratie opnieuw, zodat de nieuwe postgresql.service van kracht wordt.
  • start postgresql: Start de PostgreSQL-service.
  • status postgresql: Controleer de PostgreSQL-uitvoeringsstatus.
  • enable postgresql: Start PostgreSQL automatisch bij het opstarten.

Het doel van deze commando’s is:

  1. Maak een postgres-gebruiker aan die specifiek is voor het uitvoeren van PostgreSQL.
  2. Initialiseer de databaseopslagmap.
  3. Start de PostgreSQL-database en ga naar de interactieve opdrachtregel psql.
  4. Configureer systemd om PostgreSQL als een systeem service uit te voeren en ondersteun het automatisch starten bij het opstarten.

Op deze manier kan de PostgreSQL-server normaal draaien en automatisch starten wanneer het systeem opstart.

Referentie

PostgreSQL: Documentatie: 17: Hoofdstuk 17. Installatie vanuit broncode

Andere versies van deze webpagina

Er zijn versies van dit artikel in verschillende talen.

Als u een opmerking wilt plaatsen, gaat u naar de volgende webpagina:

ZH EN ZH-TW JA

Deze webpagina’s ondersteunen alleen browsen, kunnen geen opmerkingen achterlaten, maar bieden meer taalopties en kortere laadtijden:

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

Dit artikel is vertaald van Chinese (Simplified) naar Dutch door AI.