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 naampostgresql
.cd postgresql
: Gaat naar de zojuist gemaakte mappostgresql
.
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 eentar
-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 deapt
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)
: Gebruiktnproc
(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
: Gebruiksudo
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.
- 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 variabelePATH
staan./usr/local/pgsql/bin
: Dit is de map met uitvoerbare bestanden van de PostgreSQL-database. Het toevoegen ervan betekent dat de uitvoerbare bestanden (zoalspsql
) 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 bestaandePATH
. 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 gebruikerpostgres
, 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 gebruikerpostgres
.
4. Schakel over naar de PostgreSQL-gebruiker
su postgres
su postgres
: Schakelt over naar de gebruikerpostgres
, 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 hetpostgres
-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 hetsystemd
-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 gebruikerpostgres
.ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
: Start de PostgreSQL-server.ExecReload=/bin/kill -HUP $MAINPID
: Verzendt eenHUP
-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 desystemd
-configuratie opnieuw, zodat de nieuwepostgresql.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:
- Maak een
postgres
-gebruiker aan die specifiek is voor het uitvoeren van PostgreSQL. - Initialiseer de databaseopslagmap.
- Start de PostgreSQL-database en ga naar de interactieve opdrachtregel
psql
. - 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:
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.