Я успішно скомпілював та встановив останню версію PostgreSQL (17.4) на Ubuntu ARM32.
Команди в цій статті в основному взяті з офіційної документації PostgreSQL. Я вже фактично протестував кожну команду в цій статті.
Тут можна побачити системи, на яких успішно встановлено Ферма збірки PostgreSQL
Компіляція та встановлення PostgreSQL 17.4
1. Створення каталогу та перехід до нього
mkdir postgresql && cd postgresql
mkdir postgresql
: Створює новий каталог з назвоюpostgresql
.cd postgresql
: Переходить до щойно створеного каталогуpostgresql
.
2. Завантаження вихідного коду PostgreSQL
wget https://ftp.postgresql.org/pub/source/v17.4/postgresql-17.4.tar.bz2
wget
: Завантажує файл із вказаного URL.https://..../postgresql-17.4.tar.bz2
: Посилання для завантаження стиснутого пакета вихідного коду версії PostgreSQL 17.4. Якщо посилання недійсне, ви можете знайти нове посилання самостійно.
3. Розпакування пакета вихідного коду
tar xjf postgresql-17.4.tar.bz2
-
tar
: Використовується для обробки.tar
стиснутих файлів. -
xjf
: Параметри для розпакуванняtar
файлів:x
: Розпаковує файли.j
: Використовує формат стиснення bzip2 (.bz2).f
: Вказує файл для розпакування.
-
postgresql-17.4.tar.bz2
: Назва файлу для розпакування.
4. Перехід до розпакованого каталогу вихідного коду
cd postgresql-17.4
- Перехід до розпакованого каталогу вихідного коду PostgreSQL 17.4.
5. Встановлення залежностей
sudo apt install libssl-dev libsystemd-dev libxml2-dev libreadline-dev
sudo apt install
: Використовує менеджер пакетівapt
для встановлення пакетів.libssl-dev
,libsystemd-dev
,libxml2-dev
,libreadline-dev
: Встановлює необхідні бібліотеки розробки для компіляції PostgreSQL, зокрема бібліотеки SSL, Systemd, XML та Readline.
6. Налаштування параметрів компіляції
./configure --prefix=/usr/local/pgsql --with-openssl --with-libxml --with-systemd
./configure
: Готує середовище для компіляції PostgreSQL.--prefix=/usr/local/pgsql
: Вказує каталог встановлення PostgreSQL як/usr/local/pgsql
.--with-openssl
: Вмикає підтримку OpenSSL.--with-libxml
: Вмикає підтримку XML.--with-systemd
: Вмикає підтримку Systemd.
7. Компіляція вихідного коду
make -j$(nproc)
make
: Запускає процес компіляції.-j$(nproc)
: Використовуєnproc
(кількість ядер CPU системи) для паралельного виконання завдань компіляції, що прискорює процес компіляції.
8. Встановлення PostgreSQL
sudo make install
sudo make install
: Використовуєsudo
для виконання встановлення з правами адміністратора.make install
встановлює скомпільовані файли в систему, в каталог/usr/local/pgsql
, вказаний у попередній команді./configure
.
9. Налаштування змінних середовища
Використовуйте текстовий редактор 1. Редагування файлу /etc/profile
:
sudo nano /etc/profile
sudo
: Вказує на запуск команди з правами суперкористувача (адміністратора), оскільки для зміни файлу/etc/profile
потрібні права адміністратора.nano
: Це текстовий редактор, який часто використовується в середовищі терміналу для редагування файлів./etc/profile
: Це глобальний файл конфігурації, який використовується для налаштування системних змінних середовища та конфігурації запуску. Усі користувачі виконують налаштування з цього файлу під час входу в систему.
- Додавання змінної середовища:
export PATH=/usr/local/pgsql/bin:$PATH
export
: Використовується для встановлення змінної середовища, щоб зробити її доступною в поточному та дочірніх процесах.PATH
: Це змінна середовища, яка містить список каталогів виконуваних файлів у системі. Під час виконання команди система шукає команду відповідно до каталогів, перелічених у зміннійPATH
./usr/local/pgsql/bin
: Це каталог виконуваних файлів бази даних PostgreSQL, додавання його означає, що виконувані файли в цьому каталозі (наприклад,psql
) будуть розпізнані системою.:$PATH
: Тут$PATH
представляє вже наявні шляхи, додаючи новий шлях/usr/local/pgsql/bin
до існуючогоPATH
на початку. Таким чином, система спочатку перевірить новий каталог, а потім перевірить існуючий шлях.
Ця команда додає каталог виконуваних файлів PostgreSQL до системної змінної середовища PATH
, гарантуючи, що команди PostgreSQL (наприклад, psql
) можна запускати безпосередньо в командному рядку без необхідності вказувати повний шлях. Змінені налаштування набудуть чинності для всіх користувачів
Ініціалізація бази даних PostgreSQL
Ці команди в основному використовуються для ручного налаштування PostgreSQL сервера баз даних на серверах Linux, включаючи створення системного користувача PostgreSQL, ініціалізацію бази даних, запуск служби бази даних і реєстрацію її як служби systemd
для автоматичного запуску під час завантаження.
1. Створення користувача PostgreSQL
sudo useradd -m -U -r -d /var/lib/postgresql -s /bin/bash postgres
sudo
: Виконує команду з правами суперкористувача.useradd
: Створює нового користувача.-m
: Створює домашній каталог для користувача.-U
: Одночасно створює групу користувачів з тією ж назвою, що й ім’я користувача.-r
: Створює системного користувача (UID системного користувача нижче 1000, не використовується для входу).-d /var/lib/postgresql
: Вказує домашній каталог як/var/lib/postgresql
.-s /bin/bash
: Вказує shell як/bin/bash
.postgres
: Ім’я користувача.
Ця команда створює системного користувача postgres
, спеціально призначеного для PostgreSQL.
2. Зміна власника каталогу PostgreSQL
sudo chown postgres /usr/local/pgsql
chown postgres /usr/local/pgsql
: Змінює власника каталогу/usr/local/pgsql
на користувачаpostgres
, надаючи йому можливість читати та записувати в цей каталог.
3. Встановлення пароля для користувача PostgreSQL
sudo passwd postgres
passwd postgres
: Змінює пароль користувачаpostgres
.
4. Перехід до користувача PostgreSQL
su postgres
su postgres
: Переходить до користувачаpostgres
, щоб використовувати команди, пов’язані з PostgreSQL.
5. Ініціалізація бази даних
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
initdb -D /usr/local/pgsql/data
: Ініціалізує сховище бази даних у каталозі/usr/local/pgsql/data
.
6. Запуск бази даних PostgreSQL
/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
postgres -D /usr/local/pgsql/data
: Запускає базу даних як процесpostgres
, дані зберігаються в каталозі/usr/local/pgsql/data
.
7. В іншому термінальному сеансі, увійдіть до бази даних
su postgres
/usr/local/pgsql/bin/psql
psql
: Інструмент командного рядка PostgreSQL для взаємодії з базою даних, вхід у shell бази даних.
8. Встановлення пароля користувача бази даних
ALTER USER postgres WITH PASSWORD 'your_new_password';
- Змінює пароль користувача бази даних
postgres
.
9. Створення служби systemd
sudo nano /etc/systemd/system/postgresql.service
nano /etc/systemd/system/postgresql.service
: Редагує файл конфігураціїsystemd
, щоб PostgreSQL можна було запустити як службу.
Вміст файлу конфігурації:
[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
: Описує, що ця служба є сервером PostgreSQL.After=network-online.target
: Чекає, поки мережеве з’єднання стане доступним, перш ніж запускати PostgreSQL.User=postgres
: Запускається від імені користувачаpostgres
.ExecStart=/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
: Запускає сервер PostgreSQL.ExecReload=/bin/kill -HUP $MAINPID
: Надсилає сигналHUP
під час перезавантаження.KillMode=mixed
: Змішаний режим завершення.KillSignal=SIGINT
: Сигнал для завершення процесу PostgreSQL.TimeoutSec=infinity
: Тайм-аут встановлено на нескінченність.
10. Увімкнення служби systemd
sudo systemctl daemon-reload
sudo systemctl start postgresql
sudo systemctl status postgresql
sudo systemctl enable postgresql
daemon-reload
: Перезавантажує конфігураціюsystemd
, щоб новийpostgresql.service
набув чинності.start postgresql
: Запускає службу PostgreSQL.status postgresql
: Перевіряє стан роботи PostgreSQL.enable postgresql
: Автоматично запускає PostgreSQL під час завантаження.
Мета цих команд:
- Створити користувача
postgres
, спеціально призначеного для запуску PostgreSQL. - Ініціалізувати каталог сховища бази даних.
- Запустити базу даних PostgreSQL та увійти до інтерактивного командного рядка
psql
. - Налаштувати
systemd
для запуску PostgreSQL як системної служби та підтримки автоматичного запуску під час завантаження.
Таким чином, сервер PostgreSQL може нормально працювати та автоматично запускатися під час завантаження системи.
Довідкові матеріали
PostgreSQL: Документація: 17: Розділ 17. Встановлення з вихідного коду
Інші версії цієї веб-сторінки
Ця стаття має кілька мовних версій.
Якщо ви хочете залишити коментар, відвідайте наступні веб-сторінки:
Ці веб-сторінки підтримують лише перегляд, не дозволяють залишати коментарі чи повідомлення, але пропонують більше мовних опцій та швидший час завантаження:
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
Ця стаття була перекладена з Chinese (Simplified) на Ukrainian за допомогою AI.