Z powodzeniem skompilowałem i zainstalowałem najnowszą wersję PostgreSQL (17.4) na Ubuntu ARM32.

Polecenia w tym artykule pochodzą głównie z oficjalnej dokumentacji PostgreSQL. Sprawdziłem każdy z nich w praktyce.

Systemy, na których instalacja się powiodła, można znaleźć tutaj: Farma kompilacji PostgreSQL

Kompilacja i instalacja PostgreSQL 17.4

1. Utwórz katalog i przejdź do niego

mkdir postgresql && cd postgresql
  • mkdir postgresql: Tworzy nowy katalog o nazwie postgresql.
  • cd postgresql: Przechodzi do nowo utworzonego katalogu postgresql.

2. Pobierz kod źródłowy PostgreSQL

wget https://ftp.postgresql.org/pub/source/v17.4/postgresql-17.4.tar.bz2
  • wget: Pobiera plik z określonego adresu URL.
  • https://..../postgresql-17.4.tar.bz2: Link do spakowanego kodu źródłowego PostgreSQL w wersji 17.4. Jeśli link jest nieaktywny, możesz samodzielnie znaleźć nowy link.

3. Rozpakuj pakiet kodu źródłowego

tar xjf postgresql-17.4.tar.bz2
  • tar: Używany do obsługi plików skompresowanych .tar.

  • xjf: Opcje rozpakowywania plików tar:

    • x: Rozpakuj plik.
    • j: Użyj formatu kompresji bzip2 (.bz2).
    • f: Określ plik do rozpakowania.
  • postgresql-17.4.tar.bz2: Nazwa pliku do rozpakowania.

4. Przejdź do rozpakowanego katalogu kodu źródłowego

cd postgresql-17.4
  • Przejdź do rozpakowanego katalogu kodu źródłowego PostgreSQL 17.4.

5. Zainstaluj pakiety zależności

sudo apt install libssl-dev libsystemd-dev libxml2-dev libreadline-dev
  • sudo apt install: Użyj menedżera pakietów apt do zainstalowania pakietów.
  • libssl-dev, libsystemd-dev, libxml2-dev, libreadline-dev: Zainstaluj biblioteki programistyczne wymagane do kompilacji PostgreSQL, odpowiednio bibliotekę SSL, bibliotekę Systemd, bibliotekę XML i bibliotekę Readline.

6. Skonfiguruj opcje kompilacji

./configure --prefix=/usr/local/pgsql --with-openssl --with-libxml --with-systemd
  • ./configure: Przygotowuje środowisko kompilacji PostgreSQL.
  • --prefix=/usr/local/pgsql: Określa katalog instalacyjny PostgreSQL jako /usr/local/pgsql.
  • --with-openssl: Włącza obsługę OpenSSL.
  • --with-libxml: Włącza obsługę XML.
  • --with-systemd: Włącza obsługę Systemd.

7. Skompiluj kod źródłowy

make -j$(nproc)
  • make: Uruchamia proces kompilacji.
  • -j$(nproc): Używa nproc (liczby rdzeni procesora systemu) do równoległego wykonywania zadań kompilacji, przyspieszając proces kompilacji.

8. Zainstaluj PostgreSQL

sudo make install
  • sudo make install: Używa sudo do wykonywania instalacji z uprawnieniami administratora, make install instaluje skompilowane pliki w systemie, instalując je w katalogu /usr/local/pgsql określonym w poprzednim poleceniu ./configure.

9. Ustaw zmienne środowiskowe

Użyj edytora tekstu 1. Edytuj plik /etc/profile:

sudo nano /etc/profile
  • sudo: Wskazuje, że polecenie jest uruchamiane z uprawnieniami superużytkownika (administratora). Modyfikacja pliku /etc/profile wymaga uprawnień administratora.
  • nano: To edytor tekstu, często używany w środowiskach terminalowych do edycji plików.
  • /etc/profile: Jest to globalny plik konfiguracyjny, służący do ustawiania zmiennych środowiskowych w całym systemie i konfiguracji startowej. Podczas logowania się do systemu przez użytkowników, wykonywane są ustawienia z tego pliku.
  1. Dodaj zmienne środowiskowe:
export PATH=/usr/local/pgsql/bin:$PATH
  • export: Służy do ustawienia zmiennej środowiskowej, aby była dostępna w bieżącym procesie i procesach potomnych.
  • PATH: Jest to zmienna środowiskowa, zawierająca listę katalogów z plikami wykonywalnymi w systemie. Podczas wykonywania polecenia system przeszukuje katalogi wymienione w zmiennej PATH w celu znalezienia polecenia.
  • /usr/local/pgsql/bin: To katalog plików wykonywalnych bazy danych PostgreSQL. Dodanie go oznacza, że pliki wykonywalne w tym katalogu (np. psql) będą rozpoznawane przez system.
  • :$PATH: Tutaj $PATH reprezentuje oryginalne, istniejące ścieżki. Nowa ścieżka /usr/local/pgsql/bin jest dodawana na początku oryginalnej PATH. W ten sposób system najpierw sprawdza nowy katalog, a następnie oryginalne ścieżki.

To polecenie dodaje katalog plików wykonywalnych PostgreSQL do zmiennej środowiskowej PATH systemu, zapewniając, że polecenia PostgreSQL (takie jak psql) mogą być uruchamiane bezpośrednio w wierszu poleceń bez podawania pełnej ścieżki. Zmodyfikowane ustawienia będą obowiązywać dla wszystkich użytkowników.

Inicjalizacja bazy danych PostgreSQL

Te polecenia służą głównie do ręcznej konfiguracji serwera bazy danych PostgreSQL na serwerze Linux, w tym tworzenia użytkownika systemowego PostgreSQL, inicjalizacji bazy danych, uruchamiania usługi bazy danych i rejestrowania jej jako usługi systemd, aby uruchamiała się automatycznie podczas uruchamiania.

1. Utwórz użytkownika PostgreSQL

sudo useradd -m -U -r -d /var/lib/postgresql -s /bin/bash postgres
  • sudo: Wykonaj polecenie z uprawnieniami superużytkownika.
  • useradd: Utwórz nowego użytkownika.
  • -m: Utwórz katalog domowy użytkownika.
  • -U: Utwórz jednocześnie grupę użytkowników o tej samej nazwie co nazwa użytkownika.
  • -r: Utwórz użytkownika systemowego (UID użytkownika systemowego jest mniejszy niż 1000, nie używany do logowania).
  • -d /var/lib/postgresql: Określ katalog domowy jako /var/lib/postgresql.
  • -s /bin/bash: Określ powłokę jako /bin/bash.
  • postgres: Nazwa użytkownika.

To polecenie tworzy dedykowanego użytkownika systemowego postgres dla PostgreSQL.


2. Zmień właściciela katalogu PostgreSQL

sudo chown postgres /usr/local/pgsql
  • chown postgres /usr/local/pgsql: Zmień właściciela katalogu /usr/local/pgsql na użytkownika postgres, aby mógł on odczytywać i zapisywać w tym katalogu.

3. Ustaw hasło użytkownika PostgreSQL

sudo passwd postgres
  • passwd postgres: Zmodyfikuj hasło użytkownika postgres.

4. Przełącz się na użytkownika PostgreSQL

su postgres
  • su postgres: Przełącz się na użytkownika postgres, aby móc używać poleceń związanych z PostgreSQL.

5. Zainicjuj bazę danych

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
  • initdb -D /usr/local/pgsql/data: Zainicjuj magazyn danych w katalogu /usr/local/pgsql/data.

6. Uruchom bazę danych PostgreSQL

/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
  • postgres -D /usr/local/pgsql/data: Uruchom bazę danych jako proces postgres, dane są przechowywane w katalogu /usr/local/pgsql/data.

7. W innej sesji terminala wejdź do bazy danych

su postgres
/usr/local/pgsql/bin/psql
  • psql: Narzędzie interaktywne wiersza poleceń PostgreSQL, wejdź do powłoki bazy danych.

8. Ustaw hasło użytkownika bazy danych

ALTER USER postgres WITH PASSWORD 'your_new_password';
  • Zmodyfikuj hasło użytkownika bazy danych postgres.

9. Utwórz usługę systemd

sudo nano /etc/systemd/system/postgresql.service
  • nano /etc/systemd/system/postgresql.service: Edytuj plik konfiguracyjny systemd, aby PostgreSQL mógł działać jako usługa.

Zawartość pliku konfiguracyjnego:

[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: Opisuje, że usługa to serwer PostgreSQL.
  • After=network-online.target: Poczekaj, aż połączenie sieciowe będzie dostępne, a następnie uruchom PostgreSQL.
  • User=postgres: Uruchom jako użytkownik postgres.
  • ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data: Uruchom serwer PostgreSQL.
  • ExecReload=/bin/kill -HUP $MAINPID: Wyślij sygnał HUP podczas ponownego ładowania.
  • KillMode=mixed: Mieszany tryb zakończenia.
  • KillSignal=SIGINT: Sygnał zakończenia procesu PostgreSQL.
  • TimeoutSec=infinity: Ustaw limit czasu na nieskończoność.

10. Włącz usługę systemd

sudo systemctl daemon-reload
sudo systemctl start postgresql
sudo systemctl status postgresql
sudo systemctl enable postgresql
  • daemon-reload: Załaduj ponownie konfigurację systemd, aby nowy postgresql.service wszedł w życie.
  • start postgresql: Uruchom usługę PostgreSQL.
  • status postgresql: Sprawdź status działania PostgreSQL.
  • enable postgresql: Uruchom PostgreSQL automatycznie podczas uruchamiania.

Celem tych poleceń jest:

  1. Utworzenie użytkownika postgres dedykowanego do uruchamiania PostgreSQL.
  2. Zainicjowanie katalogu magazynu danych.
  3. Uruchomienie bazy danych PostgreSQL i wejście do interaktywnego wiersza poleceń psql.
  4. Skonfigurowanie systemd tak, aby PostgreSQL działał jako usługa systemowa i obsługiwał automatyczne uruchamianie podczas uruchamiania systemu.

W ten sposób serwer PostgreSQL będzie działał normalnie i będzie mógł uruchamiać się automatycznie podczas uruchamiania systemu.

Materiały referencyjne

PostgreSQL: Dokumentacja: 17: Rozdział 17. Instalacja z kodu źródłowego

Inne wersje tej strony

Ten artykuł jest dostępny w wielu wersjach językowych.

Jeśli chcesz opublikować komentarz, odwiedź następujące strony:

ZH EN ZH-TW JA

Te strony obsługują tylko przeglądanie, nie można publikować komentarzy ani wiadomości, ale oferują więcej opcji językowych i krótszy czas ładowania:

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

Ten artykuł został przetłumaczony z Chinese (Simplified) na Polish przez AI.