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: Brugersudotil at udføre installationen med administratorrettigheder.make installinstallerer 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/profilekræ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$PATHden oprindelige eksisterende sti, og den nye sti/usr/local/pgsql/binfø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/pgsqltil 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.servicetil 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
systemdtil 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.