Установка Sympa + PostgreSQL: Upgrade::probe_db() Таблица user_table не найдена (Ubuntu Hardy)

Я столкнулся с проблемой при попытке установить Sympa на сервер Ubuntu Hardy.

Проблема связана со связанной базой данных PostreSQL.

Шаги, за которыми я следовал:

1) Установлен PostreSQL.

sudo apt-get install postgresql postgresql-client postgresql-contrib libpq-dev

2) Обновлены пароли администратора PostgreSQL. PostgreSQL создает две учетные записи для своего "администратора". Одна - это "учетная запись базы данных" (для входа в сам postgresql), а другая - "учетная запись linux" (я полагаю, для создания файлов на сервере). Я сбрасываю пароль учетной записи базы данных следующим образом:

sudo su postgres -c psql
ALTER USER postgres WITH PASSWORD 'password';
\q

А затем сбросьте пароль "учетной записи linux" обычным способом:

sudo passwd -d postgres
sudo su postgres -c passwd

3) Включен доступ с паролем на PostgreSQL. По умолчанию PostgreSQL позволяет вам входить только под своим именем linux. Так что, если вы вошли в Linux как пользователь "tim", он позволяет вам войти в базу данных только как "tim". Мы хотим изменить это, чтобы запросить имя пользователя и пароль, чтобы вы могли войти в систему как другие люди.

sudo nano /etc/postgresql/8.3/main/pg_hba.conf

В этом файле я обновил следующие строки:

#local all all ident sameuser
local all all md5
#host all all 127.0.0.1/32 ident sameuser
host all all 127.0.0.1/32 md5
#host all all ::1/128 ident sameuser
host all all ::1/128 md5

4) Теперь пришло время установить sympa. Я только что сделал это:

sudo apt-get install sympa

5) Мне было предложено установить множество пакетов perl. Я принял предложения.

6) Затем появился диалог, и я ответил на 3 вопроса:

  • Какой тип базы данных вы будете использовать? PostgreSQL
  • Какое имя хоста, на котором работает ваша база данных? локальный
  • Что такое пароль пользователя sympa? введите пароль (дважды)
  • Что такое пароль администратора базы данных? введите пароль, используемый на шаге 2)

На этом этапе при установке отображаются следующие сообщения:

/etc/sympa/sympa.conf file has been created
/etc/sympa/wwsympa.conf file has been created
 * Reloading system log daemon...         [ OK ] 
Upgrade::probe_db() Table user_table not found in database sympa
Upgrade::probe_db() Table subscriber_table not found in database sympa
Upgrade::probe_db() Table admin_table not found in database sympa
DBD::Pg::db do failed: ERROR:  permission denied to create database
Upgrade::probe_db() Failed to run script '/usr/lib/sympa/bin/create_db.Pg' : ERROR:  permission denied to create database

DBD::Pg::st execute failed: ERROR:  relation "user_table" does not exist
List::get_user_db() Unable to execute SQL statement "SELECT email_user AS email, gecos_user AS gecos, password_user AS password, cookie_delay_user AS cookie_delay, lang_user AS lang , attributes_user AS attributes FROM user_table WHERE email_user = 'listmaster@testohwr.org' " : ERROR:  relation "user_table" does not exist

Language::SetLang() Language::SetLang(), missing locale parameter
Database sympa defined in sympa.conf has not the right structure or is unreachable. If you don't use any database, comment db_xxx parameters in sympa.conf
Sympa failed to prepare database.
dpkg: error processing sympa (--configure):
 subprocess post-installation script returned error exit status 1
Errors were encountered while processing:
 sympa
E: Sub-process /usr/bin/dpkg returned an error code (1)

Тем не менее, база данных sympa и пользователь создаются в базе данных - я вижу их, если сделаю:

sudo su postgres -c psql
/du  (list of users contains sympa)
/l   (list of databases contains sympa)

Похоже, что установщик sympa не может подключиться к posgre, и, следовательно, он не находит нужные ему таблицы... и затем интерпретирует это как ошибку "отсутствует база данных".

Я не знаю, как отследить эту ошибку. Любые указатели будут оценены.

4 ответа

Решение

Sympa полностью поддерживается только с MySQL и Sendmail (по крайней мере, версия в репозиториях Hardy есть).

Пытаясь установить его с другой конфигурацией (например, PosgreSQL + PostFix), вы более или менее самостоятельно... будьте готовы изменить perl-файлы и (возможно) перекомпилировать их в какой-то момент.

Попробуйте без сброса пароля пользователя базы данных psql.

Согласно http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=440109, это решает проблему.

Старый вопрос, я знаю, но я только что получил ту же ошибку на Ubuntu 14.04 с Sympa 6.1.17~dfsg-1.

Я обнаружил, что запуск сценария вручную работает.

     sudo apt-get install sympa
     # errors happen
     psql -U postgres #or some superuser
     drop database sympa;
     \i /usr/lib/sympa/bin/create_db.Pg
     \q
     sudo dpkg-reconfigure sympa

Затем, во время перенастройки, скажите, что вы хотите настроить базу данных снова, но на этот раз она найдет ожидаемые таблицы, поэтому не будет пытаться запустить скрипт снова.

Sympa прекрасно работает с PostgreSQL (протестировано на 5.3 и 6.1). У него есть только некоторые проблемы в модуле Upgrade.pm, где он проверяет существование таблиц, потому что PostgreSQL (точнее, его модуль Perl) возвращает имена таблиц со схемой в качестве префикса, и из-за этого сравнение имен таблиц завершается неудачно. Я представил ошибку для этого с патчем.

Другие вопросы по тегам