При развертывании сервера 1С:Предприятие на операционной системе Debian 12 (Bookworm) системные администраторы часто сталкиваются с проблемой несовместимости версий системных библиотек. Пакеты PostgreSQL, предоставляемые на портале 1С, зачастую собираются под окружение Ubuntu или предыдущие версии Debian, что вызывает ошибки при установке через стандартный менеджер пакетов. В этой статье мы подробно разберем, как преодолеть конфликты зависимостей и успешно запустить СУБД.
Рассмотрим ситуацию: при попытке установки пакета postgresql-16_16.3-16.1C_amd64.deb система сообщает о невозможности удовлетворения зависимостей, в частности требует libicu66, libperl5.30 и libpython3.8. Проанализируем причину: в составе Debian 12 по умолчанию поставляются более свежие версии этих библиотек (например, libicu72 и perl 5.36). Прямая установка старых библиотек из репозиториев Debian 12 невозможна, так как их там просто нет.
Выясним, какие пути решения существуют:
Многие пользователи пропускают важный момент: на странице загрузки PostgreSQL на портале 1С, помимо основных бинарных файлов, часто выкладываются архивы с зависимостями под конкретные дистрибутивы. Разберем по шагам, как их использовать.
Для Debian 12 необходимо найти архив, который обычно называется debian12.x86_64.tar.gz в разделе дополнительных файлов. Проанализируем последовательность действий:
Распакуем архив и перейдем в папку с зависимостями. В ней должны находиться недостающие пакеты, включая libicu66. Выполним установку базовых библиотек:
sudo dpkg -i ./libecpg6_16.3-16.1C_amd64.deb
sudo dpkg -i ./libecpg-compat3_16.3-16.1C_amd64.deb
sudo dpkg -i ./libpgtypes3_16.3-16.1C_amd64.deb
sudo apt install libldap-2.5-0
После этого установим основные компоненты сервера. Если система продолжает жаловаться на отсутствие libicu66, установим её непосредственно из скачанного набора дополнений:
sudo dpkg -i ./libicu66_66.1-2ubuntu2_amd64.deb
sudo dpkg -i ./libpq5_16.3-16.1C_amd64.deb
sudo dpkg -i ./postgresql-client-16_16.3-16.1C_amd64.deb
sudo dpkg -i ./postgresql-16_16.3-16.1C_amd64.deb
Рассмотрим более современный и стабильный метод. Компания Postgres Professional выпускает сборки, специально адаптированные для работы с 1С, которые учитывают особенности конкретных дистрибутивов Linux. В отличие от "универсальных" пакетов с портала 1С, версии из репозитория Postgres Pro 1C для Debian Bookworm слинкованы с актуальными библиотеками (libicu72 и т.д.), что исключает "ад зависимостей".
Для подключения репозитория и установки выполним следующие действия:
# Добавление ключа репозитория
wget https://repo.postgrespro.ru/1c/1c-16/keys/GPG-KEY-POSTGRESPRO
sudo apt-key add GPG-KEY-POSTGRESPRO
# Добавление репозитория для Debian 12
echo "deb https://repo.postgrespro.ru/1c/1c-16/debian bookworm main" | sudo tee /etc/apt/sources.list.d/postgrespro-1c.list
# Обновление и установка
sudo apt update
sudo apt install postgrespro-1c-16
Этот способ предпочтительнее, так как вы будете получать обновления безопасности через стандартный механизм apt upgrade, не нарушая целостность системы старыми библиотеками от Ubuntu.
Иногда при установке дополнений postgresql-plperl-16 и postgresql-plpython3-16 возникают ошибки из-за жесткой привязки к версиям Perl 5.30 и Python 3.8. Проанализируем ситуацию: если вы не используете в своей базе данных 1С расширения, написанные на этих языках (что в 99% случаев типовых конфигураций верно), то данные пакеты устанавливать не обязательно.
Если же модули необходимы, их следует устанавливать только из того же источника, что и сам сервер СУБД. При использовании репозитория Postgres Pro эти модули установятся корректно, так как они собраны под системные версии Python и Perl вашего Debian 12.
Что касается файлов Patch_SUBD_PostgreSQL, упомянутых в обсуждении — проясним их назначение. Эти патчи нужны исключительно в том случае, если вы собираете PostgreSQL из исходных кодов самостоятельно. В готовых .deb пакетах от 1С или Postgres Pro все необходимые изменения для корректной работы с 1С уже применены.
После успешной установки пакетов крайне важно правильно инициализировать кластер баз данных. Для корректной работы 1С требуется наличие локали ru_RU.UTF-8. Разберем, как это проверить и настроить.
Проверим наличие локали в системе:
localectl list-locales | grep ru_RU
Если она отсутствует, выполним генерацию:
sudo dpkg-reconfigure locales (выбираем ru_RU.UTF-8 UTF-8 в списке).
Затем инициализируем базу данных с поддержкой ICU и правильной кодировкой:
sudo -u postgres /usr/lib/postgresql/16/bin/initdb -D /var/lib/postgresql/16/main --locale=ru_RU.UTF-8 --icu-privileges
Некоторые пользователи опасаются, что версии PostgreSQL "от 1С" могут конфликтовать с инструментами администрирования. Проанализируем этот момент: pgAdmin 4 является независимым приложением. Вы можете устанавливать его отдельно из официального репозитория разработчиков pgAdmin. Он прекрасно работает с любыми сборками PostgreSQL (будь то ванильная версия, версия от 1С или Postgres Pro), так как соединение происходит по стандартному протоколу обмена данными.
Резюмируем: для наиболее безболезненной установки на Debian 12 рекомендуем использовать репозиторий Postgres Pro 1C. Если же требуется установить пакеты именно с сайта 1С, обязательно скачивайте архив extrafiles для Debian 12 и устанавливайте содержащиеся в нем версии libicu и других зависимостей вручную перед установкой самого сервера.