|
|
@@ -3,12 +3,12 @@
|
|
|
# Простая установка/обновление/удаление Odoo 19 на Debian 13 (Trixie)
|
|
|
# - автоматический выбор свежего архива odoo_19.0+e.*.tar.gz
|
|
|
# - распаковка clean-enterprise-19.0.zip (если есть)
|
|
|
-# - PostgreSQL 16 из официального репозитория (кластер создаётся автоматически)
|
|
|
+# - PostgreSQL 16 с принудительным созданием пользователя postgres и кластера
|
|
|
# - wkhtmltopdf с libssl1.1 (совместимость с Trixie)
|
|
|
# - venv, systemd, конфиг в /etc/odoo/
|
|
|
#-------------------------------------------------------------------------------
|
|
|
# Сделайте скрипт исполняемым: chmod +x odoo19_install_debian13.sh
|
|
|
-# Использование: sudo ./odoo_install.sh {install|update|uninstall}
|
|
|
+# Использование: sudo ./odoo19_install_debian13.sh {install|update|uninstall}
|
|
|
################################################################################
|
|
|
|
|
|
set -e
|
|
|
@@ -197,20 +197,30 @@ do_install() {
|
|
|
libjpeg-dev zlib1g-dev libpng-dev \
|
|
|
nodejs npm gdebi-core curl unzip
|
|
|
|
|
|
- # 2. PostgreSQL 16 (рекомендуемая версия для Odoo 19 на Debian 13)
|
|
|
+ # 2. PostgreSQL 16
|
|
|
log_info "Установка PostgreSQL 16"
|
|
|
+ # Убедимся, что системный пользователь postgres существует
|
|
|
+ if ! id "postgres" &>/dev/null; then
|
|
|
+ log_info "Создание системного пользователя postgres"
|
|
|
+ adduser --system --quiet --shell=/bin/bash --home=/var/lib/postgresql --group postgres
|
|
|
+ fi
|
|
|
+
|
|
|
+ # Добавляем репозиторий PostgreSQL (ключ перезаписывается без подтверждения)
|
|
|
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor -o /usr/share/keyrings/postgresql-archive-keyring.gpg
|
|
|
echo "deb [signed-by=/usr/share/keyrings/postgresql-archive-keyring.gpg] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list
|
|
|
apt-get update
|
|
|
apt-get install -y postgresql-16 postgresql-client-16 postgresql-server-dev-16
|
|
|
|
|
|
- # Если кластер не запустился автоматически — запускаем или создаём
|
|
|
- if ! pg_isready -q; then
|
|
|
- log_info "PostgreSQL не отвечает, пробуем запустить кластер"
|
|
|
- pg_ctlcluster 16 main start || {
|
|
|
- log_info "Не удалось запустить, создаём кластер вручную"
|
|
|
- su - postgres -c "pg_createcluster 16 main --start --locale C.UTF-8"
|
|
|
+ # Проверяем, существует ли кластер 16 main
|
|
|
+ if ! pg_lsclusters 2>/dev/null | grep -q "16 main"; then
|
|
|
+ log_info "Кластер 16/main не найден, создаём вручную от пользователя postgres"
|
|
|
+ su - postgres -c "pg_createcluster 16 main --start --locale C.UTF-8" || {
|
|
|
+ log_error "Не удалось создать кластер. Попробуйте вручную: su - postgres -c 'pg_createcluster 16 main --start'"
|
|
|
+ exit 1
|
|
|
}
|
|
|
+ else
|
|
|
+ log_info "Кластер 16/main уже существует, запускаем"
|
|
|
+ pg_ctlcluster 16 main start || true
|
|
|
fi
|
|
|
|
|
|
# Создаём пользователя odoo в PostgreSQL
|
|
|
@@ -296,6 +306,9 @@ do_uninstall() {
|
|
|
rm -rf /var/log/$OE_USER
|
|
|
userdel -r $OE_USER 2>/dev/null || true
|
|
|
|
|
|
+ # Удаляем ключ репозитория, чтобы при повторной установке не было запроса
|
|
|
+ rm -f /usr/share/keyrings/postgresql-archive-keyring.gpg
|
|
|
+
|
|
|
read -p "Удалить пользователя PostgreSQL 'odoo' и его базы? (y/N): " del_pg
|
|
|
if [[ "$del_pg" =~ ^[Yy]$ ]]; then
|
|
|
if id "postgres" &>/dev/null; then
|