Bug 59348 - Строго фиксированная версия php приводит к неправильной установке
Summary: Строго фиксированная версия php приводит к неправильной установке
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: deploy (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Andrey Cherepanov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2026-05-27 17:17 MSK by Божченко Павел Александрович
Modified: 2026-05-27 17:17 MSK (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Божченко Павел Александрович 2026-05-27 17:17:23 MSK
Версии пакетов:
deploy-0.4.4-alt1.noarch
nextcloud-33.0.2-alt1.noarch
php8.4-8.4.21-alt1.x86_64

Шаги воспроизведения:
1) Установить пакеты:
# apt-get install -y nextcloud nextcloud-apache2 deploy

1.5) Workaround для ошибки https://bugzilla.altlinux.org/59345:
# ansible-galaxy collection install ansible.mysql -p /usr/lib/python3/site-packages/ansible_collections/

2) Запустить deploy
# deploy nextcloud

3) Проверить, успешна ли установка. Например, посчитать строки в конфиге nextcloud:
# wc -l /var/www/webapps/nextcloud/config/config.php

Ожидаемый результат: nextcloud успешно развернёт
Фактический результат: 
Сообщается об успешной установке

- Play recap -
  localhost                  : ok=42   changed=23   unreachable=0    failed=0    rescued=0    ignored=0   
Deploy complete successful.

Но фактически - nextcloud не работает, конфиг-файл пустой:
# wc -l /var/www/webapps/nextcloud/config/config.php
1 /var/www/webapps/nextcloud/config/config.php

Проблема в том, что в /usr/share/deploy/vars/php строго задана версия 8.3. Пакет nextcloud тянет php8.4:
# rpm -qa | grep -E '^(apache2-mod_)?php8\.[0-9]+-[0-9]' | sort
apache2-mod_php8.4-8.4.21-alt1.x86_64
php8.4-8.4.21-alt1.x86_64


Предлагаю сделать автоматическое определение версии, пример (выполнить перед deploy nextcloud):

# echo '' > /usr/share/deploy/vars/php

# cat > /tmp/patch.yml << 'EOF'
  pre_tasks:
    - name: detect php version
      shell: "rpm -qa apache2-mod_php\\* | grep -oP 'php\\K[0-9]+\\.[0-9]+' | head -1"
      register: php_detected
      changed_when: false
    - set_fact:
        php_version: "{{ php_detected.stdout }}"
EOF

# sed -i '/^  gather_facts:/r /tmp/patch.yml' /usr/share/deploy/nextcloud.yml