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 navnetpostgresql
.cd postgresql
: Går ind i den netop oprettedepostgresql
-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 udpakketar
-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
: Brugerapt
-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)
: Brugernproc
(antallet af CPU-kerner i systemet) til at udføre kompileringsopgaver parallelt, hvilket fremskynder kompileringsprocessen.
8. Installer PostgreSQL
sudo make install
sudo make install
: Brugersudo
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.
- 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 variablenPATH
./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 eksisterendePATH
. 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 brugerenpostgres
, så de kan læse og skrive til mappen.
3. Indstil adgangskoden for PostgreSQL-brugeren
sudo passwd postgres
passwd postgres
: Rediger adgangskoden forpostgres
-brugeren.
4. Skift til PostgreSQL-brugeren
su postgres
su postgres
: Skift tilpostgres
-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 medpostgres
-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
: Redigersystemd
-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 sompostgres
-brugeren.ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
: Starter PostgreSQL-serveren.ExecReload=/bin/kill -HUP $MAINPID
: Sender etHUP
-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æsersystemd
-konfigurationen for at få den nyepostgresql.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:
- Opret en
postgres
-bruger, der er specielt beregnet til at køre PostgreSQL. - Initialiser databasens lagermappe.
- Start PostgreSQL-databasen, og gå ind i den interaktive
psql
-kommandolinje. - 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:
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.