Шаги ==== 0. # export BACULA=15 POSTGRESQL=17 1. # apt-get install -y mt-st postgresql$POSTGRESQL-server bacula$BACULA-{common,console,storage,client,director-{common,postgresql}} 2. # /etc/init.d/postgresql initdb && echo "listen_addresses = 'localhost'" >> /var/lib/pgsql/data/postgresql.conf 3. # systemctl enable --now postgresql && systemctl status postgresql 4. # createuser -U postgres --superuser root 5. # /usr/share/bacula/scripts/create_postgresql_database && \ /usr/share/bacula/scripts/make_postgresql_tables && \ /usr/share/bacula/scripts/grant_postgresql_privileges Примечание: воспроизводится с любой версией postgresql 14..=17 Примечание: воспроизводится и с bacula 13 (p11), и с 15 (p11+375453, sisyphus) Примечание: не воспроизводится в p10 Фактический результат ===================== > ... > Пароль пользователя root: > psql: ошибка: подключиться к серверу через сокет "/tmp/.s.PGSQL.5432" не удалось: ВАЖНО: пользователь "root" не прошёл проверку подлинности (по паролю) Ожидаемый результат =================== > ... > Пароль пользователя postgres: > CREATE DATABASE > ALTER DATABASE > Creation of bacula database succeeded. > ... Дополнительно ============= В составе пакета есть аналогичные скрипты с названием вида *_bacula_* - при запуске с параметром postgresql они работают в p10, p11 и sisyphus, т. к. запускают вышеупомянутые скрипты с `pre_command="su - postgres -s /bin/bash -c"`, например: # /usr/share/bacula/scripts/create_bacula_database postgresql && \ /usr/share/bacula/scripts/make_bacula_tables postgresql && \ /usr/share/bacula/scripts/grant_bacula_privileges postgresql Примечание: уже в bacula 13 был добавлен patch `bacula13-alt-fix-create-pg-database.patch`, добавляющий к `pre_command` аргумент `-s /bin/bash`, но только в скриптах вида `*_bacula_*`: * https://git.altlinux.org/gears/b/bacula15.git?p=bacula15.git;a=commit;h=2f5379779939ce940945c219664f6c6bb7a24a8d Возможно, предполагается использование только их, а не напрямую db-специфичных? Воспроизводимость ================= Воспроизводится на виртуальных машинах: [p11+375453] [sisyphus] ALT Server 11.0 beta20250213 x86_64 bacula15-common-15.0.2-alt2.x86_64 postgresql17-server-17.4-alt1.x86_64 [p11] ALT Server 11.0 beta20250213 x86_64 bacula13-common-13.0.4-alt2.x86_64 postgresql17-server-17.4-alt1.x86_64 Не воспроизводится на виртуальных машинах: [p10+375490] ALT Server 10.4 x86_64 bacula15-common-15.0.2-alt2.x86_64 postgresql17-server-17.4-alt0.p10.1.x86_64 [p10] ALT Server 10.4 x86_64 bacula13-common-13.0.4-alt2.x86_64 postgresql17-server-17.4-alt0.p10.1.x86_64
Ошибка тестирования: Во-первых, на шаге 4 созданной роли root не назначен пароль, требуется запускать createuser с ключем -P и назначить пароль. В Сизифе и p11 наличие пароля у роли СУБД является обязательным. Во-вторых, создание базы производится вызовом скриптов create_bacula_database make_bacula_tables и grant_bacula_privileges. Вызов этих скриптов без параметров предполагает использование PostgreSQL, если нужна другая СУБД, то его тип указывается параметром (mysql или sqlite3)
(In reply to Alexei Takaseev from comment #1) > Во-вторых, создание базы производится вызовом скриптов > create_bacula_database make_bacula_tables и grant_bacula_privileges. Вызов > этих скриптов без параметров предполагает использование PostgreSQL, если > нужна другая СУБД, то его тип указывается параметром (mysql или sqlite3) В wiki, упомянутой в https://bugzilla.altlinux.org/show_bug.cgi?id=53382#c2, указано использовать скрипты *_postgresql_*.
(Ответ для Artem Varaksa на комментарий #2) > (In reply to Alexei Takaseev from comment #1) > > Во-вторых, создание базы производится вызовом скриптов > > create_bacula_database make_bacula_tables и grant_bacula_privileges. Вызов > > этих скриптов без параметров предполагает использование PostgreSQL, если > > нужна другая СУБД, то его тип указывается параметром (mysql или sqlite3) > > В wiki, упомянутой в https://bugzilla.altlinux.org/show_bug.cgi?id=53382#c2, > указано использовать скрипты *_postgresql_*. Документацию там надо править, но суть в том, что пароль надо задать в скрипте осталась та же.