1C + Мини-сервер + Linux + Postgres Pro + AI Claude
Шаги по установке сервера 1С:Предприятие на Linux MX-23.4 (KDE Plasma, system.d) и базы данных на Postgres Pro
Существенную помощь в успешном осуществлении описанного процесса оказало использование AI Claude .
- Установка новейшей версии 1С на 12.12.2024г. Версия 8.3.26.1498 . Этот шаг не должен вызвать затруднений для опытного одинэсника.
- Если уже установлен PosygreSQL , удалим его. Будьте аккуратны, если есть базы данных, которые используете, сделайте бэкап. Пути и версии установленного postgresql указываете свои:
# Останавливаем сервис sudo systemctl stop postgresql # Удаляем пакеты PostgreSQL sudo apt remove postgresql postgresql-15 postgresql-client-15 sudo apt purge postgresql postgresql-15 postgresql-client-15 # Удаляем конфигурационные файлы и данные (будьте осторожны - это удалит все базы данных!) sudo rm -rf /var/lib/postgresql/ sudo rm -rf /etc/postgresql/ sudo rm /etc/apt/sources.list.d/pgdg.list
Давайте настроим репозиторий Postgres Pro для 1C. Это более надёжный способ установки, так как все зависимости будут разрешены автоматически.
- Сначала добавим ключ репозитория (Все ссылки мне подсказал ИИ, я только выбрал версию 17, а не 16, которую предложил ИИ ):
wget https://repo.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO sudo apt-key add GPG-KEY-POSTGRESPRO
- Если и это не сработает, можно попробовать напрямую получить ключ через HTTPS:
curl -fsSL https://repo.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO | sudo gpg --dearmor -o /usr/share/keyrings/postgrespro-1c.gpg
- И затем добавить репозиторий с указанием пути к ключу:
echo "deb [signed-by=/usr/share/keyrings/postgrespro-1c.gpg] https://repo.postgrespro.ru/1c/1c-17/debian bookworm main" | sudo tee /etc/apt/sources.list.d/postgrespro-1c.list
Тут система предупредила об устаревшем методе хранения ключей. Вот что на это ответил Claude:
Это предупреждение не критичное, но оно указывает на использование устаревшего метода хранения ключей GPG. Система APT постепенно отказывается от использования единого хранилища ключей /etc/apt/trusted.gpg
в пользу отдельных файлов в каталоге /usr/share/keyrings/
.
Если хотите следовать современным рекомендациям, можно обновить способ хранения ключа:
Удалим старый ключ:
sudo apt-key del "Postgres Pro"
Добавим ключ в новом формате:
curl -fsSL https://repo.postgrespro.ru/keys/GPG-KEY-POSTGRESPRO | sudo gpg --dearmor -o /usr/share/keyrings/postgrespro-1c.gpg
Обновим файл источника с указанием нового расположения ключа:
echo "deb [signed-by=/usr/share/keyrings/postgrespro-1c.gpg] https://repo.postgrespro.ru/1c/1c-17/debian bookworm main" | sudo tee /etc/apt/sources.list.d/postgrespro-1c.list
Далее была рекомендация просто установить:
sudo apt update sudo apt install postgrespro-1c-17 sudo systemctl status postgrespro-1c-17
Однако я сразу сделаю здесь замечание, поскольку проверил, убедился, что будут проблемы, нашел решение и показываю его здесь. К этому решению пришел уже при повторной установке. После sudo apt update откройте менеджер пакетов и увидите примерно такую картину:
я отметил все пакеты для установки.
Postgres заработал сразу.
Установим пароль для пользователя postgres. Он будет создавать базы в 1С.
sudo -u postgres psql # В консоли PostgreSQL выполнить: ALTER USER postgres WITH PASSWORD 'новый_пароль'; # Выйти из консоли \q
На всякий случай конфигурационные файлы будут здесь:
/var/lib/pgpro/1c-17/data/postgresql.conf
- основной файл конфигурации
/var/lib/pgpro/1c-17/data/pg_hba.conf
- файл настройки аутентификации
но я принципиально не стал их менять, несмотря на то, что рекомендаций со стороны ИИ было достаточно. Нужно было проверить сначала чистую установку.
Теперь про лицензию мини-сервер. Чтобы управлять лицензиями нужна утилита ring, сейчас в составе дистрибутива 1С ее не было, скачал и установил
Утилита лицензирования 1С:Предприятия для Linux (64-bit)
Нужен JDK.
Создадим каталог для хранения лицензий :
sudo mkdir -p /var/1C/licenses/
Затем дал прочитать Claude вывод команды:
$ /opt/1C/1CE/components/1c-enterprise-ring-0.19.5+12-x86_64/ring license activate help
На основании этой справки он выдал мне команду для регистрации лицензии:
sudo /opt/1C/1CE/components/1c-enterprise-ring-0.19.5+12-x86_64/ring license activate --first-name "Николай" --middle-name "Владимирович" --last-name "Митин" --email "my_mail@mail.ru" --pin 012345678901234 --country "RU" --serial 1234567890 --street "Home address" --town "Moscow" --zip-code "101000" --house "1" --building "1" --apartment "1"
Проверим создана ли лицензия:
/opt/1C/1CE/components/1c-enterprise-ring-0.19.5+12-x86_64/ring license list
Несмотря на ошибки Java (они связаны с попыткой получить MAC-адрес), мы видим, что лицензия присутствует в системе:
012345678901234
ХХХХХХХХХХХХХХХ-ХХХХХХХХХХХХ (имя файла: "20241212124451.lic")
У меня есть USB-ключ разработчика, но с серверной базой он не стал работать. Как была решена эта проблема:
Создать файл /opt/1cv8/conf/nethasp.ini
[NH_COMMON] NH_IPX = Disabled NH_NETBIOS = Disabled NH_TCPIP = Enabled [NH_TCPIP] NH_SERVER_ADDR = 127.0.0.1 NH_TCPIP_METHOD = TCP NH_USE_BROADCAST = Disabled [NH_SERVER_ADDR] NH_SERVER_NAME = 127.0.0.1
Настройка прав доступа к каталогу лицензий:
sudo chown -R usr1cv8:grp1cv8 /var/1C/licenses sudo chmod -R 775 /var/1C/licenses
Добавление пользователя в группу для доступа к USB:
sudo usermod -a -G plugdev usr1cv8
Перезапуск сервера 1С:
sudo systemctl restart srv1cv8-8.3.26.1498@default.service
Далее типичные действия по созданию базы 1С:
И база готова!!!