Jag har framgångsrikt kompilerat och installerat den senaste versionen av PostgreSQL (17.4) på Ubuntu ARM32.

Kommandona i den här artikeln kommer huvudsakligen från PostgreSQL:s officiella dokumentation. Jag har faktiskt testat varje kommando i den här artikeln.

Du kan se de system där installationen lyckas här PostgreSQL Byggfarm

Kompilera och installera PostgreSQL 17.4

1. Skapa en katalog och gå in i den

mkdir postgresql && cd postgresql
  • mkdir postgresql: Skapar en ny katalog med namnet postgresql.
  • cd postgresql: Går in i katalogen postgresql som just skapades.

2. Ladda ner PostgreSQL-källkoden

wget https://ftp.postgresql.org/pub/source/v17.4/postgresql-17.4.tar.bz2
  • wget: Laddar ner en fil från den angivna URL:en.
  • https://..../postgresql-17.4.tar.bz2: Nedladdningslänk för den komprimerade källkodspaketet för PostgreSQL 17.4-versionen. Om länken är ogiltig kan du hitta en ny länk själv.

3. Packa upp källkodspaketet

tar xjf postgresql-17.4.tar.bz2
  • tar: Används för att hantera .tar-komprimerade filer.

  • xjf: Alternativ för att packa upp tar-filer:

    • x: Packa upp filen.
    • j: Använd bzip2-komprimeringsformatet (.bz2).
    • f: Ange filen som ska packas upp.
  • postgresql-17.4.tar.bz2: Namnet på filen som ska packas upp.

4. Gå in i den uppackade källkodskatalogen

cd postgresql-17.4
  • Går in i den uppackade PostgreSQL 17.4 källkodskatalogen.

5. Installera beroende paket

sudo apt install libssl-dev libsystemd-dev libxml2-dev libreadline-dev
  • sudo apt install: Använder pakethanteraren apt för att installera paket.
  • libssl-dev, libsystemd-dev, libxml2-dev, libreadline-dev: Installerar utvecklingsbiblioteken som krävs för PostgreSQL-kompilering, nämligen SSL-biblioteket, Systemd-biblioteket, XML-biblioteket och Readline-biblioteket.

6. Konfigurera kompileringsalternativ

./configure --prefix=/usr/local/pgsql --with-openssl --with-libxml --with-systemd
  • ./configure: Förbereder PostgreSQL:s kompileringsmiljö.
  • --prefix=/usr/local/pgsql: Anger PostgreSQL:s installationskatalog som /usr/local/pgsql.
  • --with-openssl: Aktiverar OpenSSL-stöd.
  • --with-libxml: Aktiverar XML-stöd.
  • --with-systemd: Aktiverar Systemd-stöd.

7. Kompilera källkoden

make -j$(nproc)
  • make: Startar kompileringsprocessen.
  • -j$(nproc): Använder nproc (antalet CPU-kärnor i systemet) för att parallellisera kompileringsuppgifter, vilket accelererar kompileringsprocessen.

8. Installera PostgreSQL

sudo make install
  • sudo make install: Använder sudo för att utföra installationen med administratörsbehörighet, make install installerar de kompilerade filerna i systemet, i katalogen /usr/local/pgsql som anges i det tidigare kommandot ./configure.

9. Ställ in miljövariabler

Använd en textredigerare 1. Redigera filen /etc/profile:

sudo nano /etc/profile
  • sudo: Indikerar att kommandot körs med superanvändar- (administratörs-)behörighet. Eftersom ändring av filen /etc/profile kräver administratörsbehörighet.
  • nano: Detta är en textredigerare som ofta används i terminalmiljöer för att redigera filer.
  • /etc/profile: Detta är en global konfigurationsfil som används för att ställa in systemomfattande miljövariabler och startkonfigurationer. Alla användare som loggar in i systemet kommer att köra inställningarna i den här filen.
  1. Lägg till miljövariabler:
export PATH=/usr/local/pgsql/bin:$PATH
  • export: Används för att ställa in en miljövariabel så att den är tillgänglig i den aktuella processen och underprocesser.
  • PATH: Detta är en miljövariabel som innehåller en lista över kataloger med körbara filer i systemet. Systemet söker efter kommandon baserat på de kataloger som listas i variabeln PATH när det kör kommandon.
  • /usr/local/pgsql/bin: Detta är katalogen med körbara filer för PostgreSQL-databasen. Att lägga till den innebär att de körbara filerna i den katalogen (t.ex. psql) kommer att kännas igen av systemet.
  • :$PATH: Här representerar $PATH de befintliga sökvägarna. Den nya sökvägen /usr/local/pgsql/bin läggs till i början av den befintliga PATH. På så sätt kommer systemet först att kontrollera den nya katalogen och sedan kontrollera de befintliga sökvägarna.

Syftet med detta kommando är att lägga till PostgreSQL:s körbara filkatalog i systemets miljövariabel PATH, vilket säkerställer att PostgreSQL-kommandon (t.ex. psql) kan köras direkt i kommandoraden utan att ange den fullständiga sökvägen. De ändrade inställningarna kommer att gälla för alla användare.

Initiera PostgreSQL-databasen

Dessa kommandon används främst för att manuellt konfigurera PostgreSQL databasservern på en Linux-server, inklusive att skapa en PostgreSQL-systemanvändare, initiera databasen, starta databasstjänsten och registrera den som en systemd-tjänst, så att den startar automatiskt vid uppstart.

1. Skapa en PostgreSQL-användare

sudo useradd -m -U -r -d /var/lib/postgresql -s /bin/bash postgres
  • sudo: Utför kommandot med superanvändarbehörighet.
  • useradd: Skapa en ny användare.
  • -m: Skapa användarens hemkatalog.
  • -U: Skapa samtidigt en användargrupp med samma namn som användarnamnet.
  • -r: Skapa en systemanvändare (systemanvändarens UID är lägre än 1000 och används inte för inloggning).
  • -d /var/lib/postgresql: Ange hemkatalogen som /var/lib/postgresql.
  • -s /bin/bash: Ange shell som /bin/bash.
  • postgres: Användarnamn.

Detta kommando skapar en PostgreSQL-specifik systemanvändare postgres.


2. Ändra ägaren till PostgreSQL-katalogen

sudo chown postgres /usr/local/pgsql
  • chown postgres /usr/local/pgsql: Ändrar ägaren till katalogen /usr/local/pgsql till användaren postgres, vilket gör att den kan läsa och skriva till katalogen.

3. Ange lösenordet för PostgreSQL-användaren

sudo passwd postgres
  • passwd postgres: Ändra lösenordet för användaren postgres.

4. Växla till PostgreSQL-användaren

su postgres
  • su postgres: Växla till användaren postgres för att kunna använda PostgreSQL-relaterade kommandon.

5. Initiera databasen

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
  • initdb -D /usr/local/pgsql/data: Initiera databaslagringen i katalogen /usr/local/pgsql/data.

6. Starta PostgreSQL-databasen

/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
  • postgres -D /usr/local/pgsql/data: Starta databasen med processen postgres, och datalagringen finns i katalogen /usr/local/pgsql/data.

7. I en annan terminalsession, gå in i databasen

su postgres
/usr/local/pgsql/bin/psql
  • psql: PostgreSQL:s kommandoradsinteraktionsverktyg, går in i databasshellet.

8. Ange lösenordet för databasanvändaren

ALTER USER postgres WITH PASSWORD 'your_new_password';
  • Ändra lösenordet för databasanvändaren postgres.

9. Skapa en systemd-tjänst

sudo nano /etc/systemd/system/postgresql.service
  • nano /etc/systemd/system/postgresql.service: Redigera systemd-konfigurationsfilen, så att PostgreSQL kan köras som en tjänst.

Konfigurationsfilens innehåll:

[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 att tjänsten är en PostgreSQL-server.
  • After=network-online.target: Vänta tills nätverksanslutningen är tillgänglig innan PostgreSQL startas.
  • User=postgres: Körs som användaren postgres.
  • ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data: Starta PostgreSQL-servern.
  • ExecReload=/bin/kill -HUP $MAINPID: Skicka HUP-signalen vid omladdning.
  • KillMode=mixed: Blandat avslutningsläge.
  • KillSignal=SIGINT: Signalen för att avsluta PostgreSQL-processen.
  • TimeoutSec=infinity: Tidsgränsen är satt till oändligheten.

10. Aktivera systemd-tjänsten

sudo systemctl daemon-reload
sudo systemctl start postgresql
sudo systemctl status postgresql
sudo systemctl enable postgresql
  • daemon-reload: Ladda om systemd-konfigurationen så att den nya postgresql.service träder i kraft.
  • start postgresql: Starta PostgreSQL-tjänsten.
  • status postgresql: Kontrollera PostgreSQL:s körstatus.
  • enable postgresql: Starta PostgreSQL automatiskt vid uppstart.

Syftet med dessa kommandon är:

  1. Skapa en postgres-användare som är dedikerad till att köra PostgreSQL.
  2. Initiera databasens lagringskatalog.
  3. Starta PostgreSQL-databasen och gå in i det interaktiva kommandoradsgränssnittet psql.
  4. Konfigurera systemd för att köra PostgreSQL som en systemtjänst och stödja automatisk start vid uppstart.

På detta sätt kan PostgreSQL-servern köras normalt och kan startas automatiskt när systemet startar.

Referensmaterial

PostgreSQL: Dokumentation: 17: Kapitel 17. Installation från källkod

Andra versioner av denna webbsida

Det finns flera språkversioner av den här artikeln.

Om du vill lämna en kommentar, besök följande webbsida:

ZH EN ZH-TW JA

Dessa webbsidor stöder endast visning, du kan inte lämna kommentarer eller meddelanden, men de erbjuder fler språkalternativ och kortare laddningstider:

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

Den här artikeln är översatt från Chinese (Simplified) till Swedish av AI.