Úspěšně jsem zkompiloval a nainstaloval nejnovější verzi PostgreSQL (17.4) na Ubuntu ARM32.

Příkazy v tomto článku pocházejí převážně z oficiální dokumentace PostgreSQL. Každý příkaz v tomto článku jsem již otestoval.

Úspěšně nainstalovaný systém můžete vidět zde PostgreSQL Buildfarm

Kompilace a instalace PostgreSQL 17.4

1. Vytvořte a přejděte do adresáře

mkdir postgresql && cd postgresql
  • mkdir postgresql: Vytvoří nový adresář s názvem postgresql.
  • cd postgresql: Přejde do právě vytvořeného adresáře postgresql.

2. Stáhněte si zdrojový kód PostgreSQL

wget https://ftp.postgresql.org/pub/source/v17.4/postgresql-17.4.tar.bz2
  • wget: Stáhne soubor ze zadané URL.
  • https://..../postgresql-17.4.tar.bz2: Odkaz ke stažení komprimovaného balíčku zdrojového kódu verze PostgreSQL 17.4. Pokud je odkaz neplatný, můžete si sami vyhledat nový odkaz.

3. Rozbalte balíček zdrojového kódu

tar xjf postgresql-17.4.tar.bz2
  • tar: Slouží ke zpracování komprimovaných souborů .tar.

  • xjf: Možnosti pro rozbalení souboru tar:

    • x: Rozbalí soubor.
    • j: Použije formát komprese bzip2 (.bz2).
    • f: Určuje soubor, který má být rozbalen.
  • postgresql-17.4.tar.bz2: Název souboru, který má být rozbalen.

4. Přejděte do rozbaleného adresáře zdrojového kódu

cd postgresql-17.4
  • Přejde do rozbaleného adresáře zdrojového kódu PostgreSQL 17.4.

5. Nainstalujte závislosti

sudo apt install libssl-dev libsystemd-dev libxml2-dev libreadline-dev
  • sudo apt install: Použije správce balíčků apt k instalaci softwarových balíčků.
  • libssl-dev, libsystemd-dev, libxml2-dev, libreadline-dev: Nainstaluje vývojové knihovny potřebné pro kompilaci PostgreSQL, konkrétně SSL knihovnu, Systemd knihovnu, XML knihovnu a Readline knihovnu.

6. Konfigurace možností kompilace

./configure --prefix=/usr/local/pgsql --with-openssl --with-libxml --with-systemd
  • ./configure: Připraví kompilační prostředí PostgreSQL.
  • --prefix=/usr/local/pgsql: Určuje instalační adresář PostgreSQL jako /usr/local/pgsql.
  • --with-openssl: Povolí podporu OpenSSL.
  • --with-libxml: Povolí podporu XML.
  • --with-systemd: Povolí podporu Systemd.

7. Kompilace zdrojového kódu

make -j$(nproc)
  • make: Spustí proces kompilace.
  • -j$(nproc): Použije nproc (počet jader CPU systému) k paralelnímu provádění kompilace, čímž se urychlí proces kompilace.

8. Instalace PostgreSQL

sudo make install
  • sudo make install: Použije sudo k provedení instalace s oprávněními správce, make install nainstaluje zkompilované soubory do systému, a to do adresáře /usr/local/pgsql určeného dříve v příkazu ./configure.

9. Nastavení proměnných prostředí

Použijte textový editor 1. Upravte soubor /etc/profile:

sudo nano /etc/profile
  • sudo: Označuje spuštění příkazu s oprávněními superuživatele (administrátora). Protože úprava souboru /etc/profile vyžaduje oprávnění administrátora.
  • nano: Jedná se o textový editor, který se běžně používá v terminálovém prostředí pro úpravu souborů.
  • /etc/profile: Jedná se o globální konfigurační soubor, který se používá k nastavení proměnných prostředí a konfiguračních souborů spouštění v celém systému. Při každém přihlášení uživatele do systému se provedou nastavení v tomto souboru.
  1. Přidejte proměnnou prostředí:
export PATH=/usr/local/pgsql/bin:$PATH
  • export: Používá se k nastavení proměnné prostředí, aby byla k dispozici v aktuálním a podřízeném procesu.
  • PATH: Jedná se o proměnnou prostředí, která obsahuje seznam adresářů se spustitelnými soubory v systému. Při spouštění příkazu systém prohledává příkazy podle adresářů uvedených v proměnné PATH.
  • /usr/local/pgsql/bin: Toto je adresář spustitelných souborů databáze PostgreSQL, jeho přidání znamená, že systém rozpozná spustitelné soubory (např. psql) v tomto adresáři.
  • :$PATH: Zde $PATH představuje původní existující cestu, nová cesta /usr/local/pgsql/bin je přidána před původní PATH. Tímto způsobem systém nejprve zkontroluje nový adresář a poté původní cestu.

Účelem tohoto příkazu je přidat adresář spustitelných souborů PostgreSQL do systémové proměnné prostředí PATH, čímž se zajistí, že příkazy PostgreSQL (např. psql) lze spouštět přímo v příkazovém řádku, aniž by bylo nutné zadávat úplnou cestu. Upravené nastavení se projeví pro všechny uživatele.

Inicializace databáze PostgreSQL

Tyto příkazy se používají hlavně pro ruční konfiguraci databázového serveru PostgreSQL na serveru Linux, včetně vytvoření systémového uživatele PostgreSQL, inicializace databáze, spuštění databázové služby a její registrace jako služby systemd pro automatické spuštění při spuštění systému.

1. Vytvoření uživatele PostgreSQL

sudo useradd -m -U -r -d /var/lib/postgresql -s /bin/bash postgres
  • sudo: Spouští příkaz s oprávněními superuživatele.
  • useradd: Vytvoří nového uživatele.
  • -m: Vytvoří domovský adresář uživatele.
  • -U: Vytvoří současně uživatelskou skupinu se stejným názvem jako uživatelské jméno.
  • -r: Vytvoří systémového uživatele (systémové UID jsou nižší než 1000, nepoužívají se pro přihlášení).
  • -d /var/lib/postgresql: Určuje domovský adresář jako /var/lib/postgresql.
  • -s /bin/bash: Určuje shell jako /bin/bash.
  • postgres: Uživatelské jméno.

Tento příkaz vytvoří systémového uživatele postgres určeného pro PostgreSQL.


2. Změna vlastníka adresáře PostgreSQL

sudo chown postgres /usr/local/pgsql
  • chown postgres /usr/local/pgsql: Změní vlastníka adresáře /usr/local/pgsql na uživatele postgres, aby mohl do tohoto adresáře číst a zapisovat.

3. Nastavení hesla uživatele PostgreSQL

sudo passwd postgres
  • passwd postgres: Změní heslo uživatele postgres.

4. Přepnutí na uživatele PostgreSQL

su postgres
  • su postgres: Přepne na uživatele postgres, abyste mohli používat příkazy související s PostgreSQL.

5. Inicializace databáze

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
  • initdb -D /usr/local/pgsql/data: Inicializuje úložiště databáze v adresáři /usr/local/pgsql/data.

6. Spuštění databáze PostgreSQL

/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
  • postgres -D /usr/local/pgsql/data: Spustí databázi jako proces postgres, data jsou uložena v adresáři /usr/local/pgsql/data.

7. V jiném terminálovém relaci přejděte do databáze

su postgres
/usr/local/pgsql/bin/psql
  • psql: Interaktivní nástroj příkazového řádku PostgreSQL, vstupte do shellu databáze.

8. Nastavení hesla databázového uživatele

ALTER USER postgres WITH PASSWORD 'your_new_password';
  • Změní heslo databázového uživatele postgres.

9. Vytvoření služby systemd

sudo nano /etc/systemd/system/postgresql.service
  • nano /etc/systemd/system/postgresql.service: Upravte konfigurační soubor systemd, aby bylo možné PostgreSQL spouštět jako službu.

Obsah konfiguračního souboru:

[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: Popisuje, že tato služba je server PostgreSQL.
  • After=network-online.target: Počkejte, až bude k dispozici síťové připojení, než spustíte PostgreSQL.
  • User=postgres: Spustí se jako uživatel postgres.
  • ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data: Spustí server PostgreSQL.
  • ExecReload=/bin/kill -HUP $MAINPID: Při opětovném načtení odešle signál HUP.
  • KillMode=mixed: Smíšený režim ukončení.
  • KillSignal=SIGINT: Signál pro ukončení procesu PostgreSQL.
  • TimeoutSec=infinity: Časový limit je nastaven na nekonečno.

10. Povolení služby systemd

sudo systemctl daemon-reload
sudo systemctl start postgresql
sudo systemctl status postgresql
sudo systemctl enable postgresql
  • daemon-reload: Znovu načte konfiguraci systemd, aby se projevila nová postgresql.service.
  • start postgresql: Spustí službu PostgreSQL.
  • status postgresql: Zkontroluje stav běhu PostgreSQL.
  • enable postgresql: Automaticky spustí PostgreSQL při spuštění systému.

Účel těchto příkazů:

  1. Vytvoří uživatele postgres určeného pro spouštění PostgreSQL.
  2. Inicializuje adresář pro ukládání databáze.
  3. Spustí databázi PostgreSQL a vstoupí do interaktivního příkazového řádku psql.
  4. Nakonfiguruje systemd tak, aby se PostgreSQL spouštěl jako systémová služba a podporoval automatické spuštění při spuštění systému.

Tímto způsobem může server PostgreSQL normálně fungovat a automaticky se spouštět při spuštění systému.

Reference

PostgreSQL: Dokumentace: 17: Kapitola 17. Instalace ze zdrojového kódu

Další verze této webové stránky

Tento článek má verze v několika jazycích.

Pokud chcete zveřejnit komentář, navštivte následující webové stránky:

ZH EN ZH-TW JA

Tyto webové stránky podporují pouze prohlížení, nemůžete přidávat komentáře nebo zanechávat zprávy, ale poskytují více jazykových možností a mají kratší dobu načítání:

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

Tento článek byl přeložen z Chinese (Simplified) do Czech pomocí AI.