Wyszukiwanie w witrynie

Jak zainstalować PostgreSQL przy użyciu kodu źródłowego w systemie Linux


PostgreSQL, system zarządzania relacyjnymi bazami danych typu open source, jest powszechnie znany ze swoich niezawodnych funkcji i rozszerzalności. Chociaż wiele dystrybucji Linuksa udostępnia PostgreSQL za pośrednictwem menedżerów pakietów, instalacja go ze źródła pozwala na większą personalizację i kontrolę.

W tym artykule wyjaśnimy, jak zainstalować PostgreSQL 16 za pomocą instalacji kodu źródłowego w systemach Linux.

Jeśli szukasz łatwiejszej metody instalacji za pomocą menedżera pakietów dystrybucyjnych, postępuj zgodnie z poniższymi instrukcjami:

Warunki wstępne

Zanim przystąpisz do procesu instalacji PostgreSQL, upewnij się, że Twój system spełnia następujące wymagania wstępne:

  • Dystrybucja Linuksa (w tym przewodniku do celów demonstracyjnych użyjemy Debian).
  • System Linux z użytkownikiem innym niż root i uprawnieniami sudo.
  • Zainstalowane są niezbędne narzędzia programistyczne, takie jak GCC i Make.

1. Zainstaluj wymagania wstępne w systemie Linux

Najpierw zainstaluj niezbędne narzędzia programistyczne, takie jak GCC i Make, korzystając z menedżera pakietów dystrybucyjnych, jak pokazano.

W dystrybucjach opartych na RHEL, takich jak CentOS, Fedora, Rocky Linux i Alma Linux:

sudo yum groupinstall development-tools
sudo yum install zlib-devel readline-devel libicu-devel

W dystrybucjach opartych na Debianie, takich jak Ubuntu i Linux Mint.

sudo apt install gcc build-essential zlib1g-dev libreadline6-dev libicu-dev pkg-config

2. Pobierz kod źródłowy PostgreSQL

Po zainstalowaniu niezbędnych wymagań wstępnych pobierz plik tar z kodem źródłowym z oficjalnej strony Postgres, używając następującego polecenia wget bezpośrednio w systemie. W chwili pisania tego tekstu najnowsza wersja to PostgreSQL 16.1.

wget https://ftp.postgresql.org/pub/source/v16.1/postgresql-16.1.tar.bz2

Następnie użyj polecenia tar, aby wyodrębnić pobrany plik tarball. Zostanie utworzony nowy katalog o nazwie postgresql-16.1.

tar -xvf postgresql-16.1.tar.bz2
cd postgresql-16.1/
ls -l

Przykładowy wynik:

-rw-r--r--.  1 tecmint tecmint    365 Nov  7 03:34 aclocal.m4
drwxr-xr-x.  2 tecmint tecmint   4096 Nov  7 03:47 config
-rwxr-xr-x.  1 tecmint tecmint 584560 Nov  7 03:34 configure
-rw-r--r--.  1 tecmint tecmint  87292 Nov  7 03:34 configure.ac
drwxr-xr-x. 61 tecmint tecmint   4096 Nov  7 03:47 contrib
-rw-r--r--.  1 tecmint tecmint   1192 Nov  7 03:34 COPYRIGHT
drwxr-xr-x.  3 tecmint tecmint   4096 Nov  7 03:47 doc
-rw-r--r--.  1 tecmint tecmint   4288 Nov  7 03:34 GNUmakefile.in
-rw-r--r--.  1 tecmint tecmint    277 Nov  7 03:34 HISTORY
-rw-r--r--.  1 tecmint tecmint  64601 Nov  7 03:48 INSTALL
-rw-r--r--.  1 tecmint tecmint   1875 Nov  7 03:34 Makefile
-rw-r--r--.  1 tecmint tecmint 102017 Nov  7 03:47 meson.build
-rw-r--r--.  1 tecmint tecmint   6266 Nov  7 03:34 meson_options.txt
-rw-r--r--.  1 tecmint tecmint   1213 Nov  7 03:34 README
drwxr-xr-x. 16 tecmint tecmint   4096 Nov  7 03:48 src

3. Skonfiguruj PostgreSQL ze źródła

Ponieważ postgres jest bazą danych typu open source, można ją zbudować z kodu źródłowego zgodnie z własnymi potrzebami/wymaganiami. możemy dostosować proces kompilacji i instalacji, dostarczając jedną lub więcej opcji wiersza poleceń dla różnych dodatkowych funkcji.

Użyj poniższego polecenia, aby uzyskać pomoc dotyczącą różnych opcji i użycia konfiguracji, jak pokazano.

./configure --help

Teraz uruchom skrypt konfiguracyjny, który sprawdzi twój system pod kątem zależności i odpowiednio skonfiguruje kompilację.

./configure

4. Zainstaluj PostgreSQL ze źródła

Po skonfigurowaniu użyj następujących poleceń, aby zbudować i zainstalować PostgreSQL ze źródła.

make
sudo make install

5. Tworzenie użytkownika Postgres

Teraz utwórz użytkownika i katalog postgres, który będzie używany jako katalog data do inicjowania klastra bazy danych. Właściciel tego katalogu data powinien być użytkownikiem postgres, a uprawnienia powinny wynosić 700. Dla naszej wygody należy także ustawić ścieżkę do plików binarnych postgresql.

sudo useradd postgres
sudo passwd postgres
sudo mkdir -p /pgdatabase/data
sudo chown -R postgres: /pgdatabase/data
sudo sh -c "echo 'export PATH=$PATH:/opt/PostgreSQL/bin' > /etc/profile.d/postgres.sh"
source /etc/profile.d/postgres.sh 

6. Inicjowanie bazy danych Postgres

Teraz zainicjuj bazę danych, używając następującego polecenia jako użytkownik postgres, zanim użyjesz jakichkolwiek poleceń postgres.

su postgres
initdb -D /pgdatabase/data/ -U postgres -W

Gdzie -D jest lokalizacją tego klastra bazy danych lub możemy powiedzieć, że jest to katalog danych, w którym chcemy zainicjować klaster bazy danych, -U oznacza nazwę superużytkownika bazy danych i -W dla monitu o podanie hasła dla superużytkownika db.

Więcej informacji i opcji można znaleźć w initdb --help.

7. Uruchom usługę PostgreSQL

Po zainicjowaniu bazy danych uruchom klaster bazy danych lub jeśli chcesz zmienić port lub odsłuchać adres serwera, edytuj plik /pgdatabase/data/postgresql.conf w katalogu danych serwer bazy danych.

nano /pgdatabase/data/postgresql.conf

Teraz uruchom usługę PostgreSQL.

pg_ctl -D /pgdatabase/data/ start

Po uruchomieniu bazy danych sprawdź stan procesu serwera postgres za pomocą następujących poleceń ps i netstat.

ps -ef |grep -i postgres
netstat -apn |grep -i 51751

Widzimy, że klaster bazy danych działa prawidłowo, a dzienniki uruchamiania można znaleźć w lokalizacji określonej za pomocą opcji -l podczas uruchamiania klastra bazy danych.

pg_ctl -D /pgdatabase/data/ -l logfile start

8. Połącz się z PostgreSQL

Teraz połącz się z klastrem bazy danych i utwórz bazę danych za pomocą następujących poleceń.

psql -p 5432
postgres=# create database test;
postgres=# \l to list all databases in cluster
postgres=# \q to quit form postgres console

Jeśli szukasz narzędzia graficznego o nazwie pgAdmin do zarządzania PostgreSQL, postępuj zgodnie z tymi przewodnikami, aby zainstalować pgAdmin w swojej dystrybucji Linuksa.

Wniosek

Pomyślnie zainstalowałeś PostgreSQL ze źródła w swoim systemie Linux. Ten proces zapewnia elastyczność i kontrolę nad instalacją PostgreSQL, umożliwiając dostosowanie jej do konkretnych wymagań.