Я успешно скомпилировал и установил последнюю версию 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
: Указывает оболочку как/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, который используется для входа в оболочку базы данных.
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) на Russian с помощью AI.