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 nazwiepostgresql
.cd postgresql
: Przechodzi do nowo utworzonego katalogupostgresql
.
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ówtar
: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ówapt
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żywanproc
(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żywasudo
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.
- 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 zmiennejPATH
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 oryginalnejPATH
. 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żytkownikapostgres
, 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żytkownikapostgres
.
4. Przełącz się na użytkownika PostgreSQL
su postgres
su postgres
: Przełącz się na użytkownikapostgres
, 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 procespostgres
, 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 konfiguracyjnysystemd
, 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żytkownikpostgres
.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 nowypostgresql.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:
- Utworzenie użytkownika
postgres
dedykowanego do uruchamiania PostgreSQL. - Zainicjowanie katalogu magazynu danych.
- Uruchomienie bazy danych PostgreSQL i wejście do interaktywnego wiersza poleceń
psql
. - 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:
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.