Bug 44044

Summary: Отключённый a2dismod модуль отключается даже после a2enmod
Product: Sisyphus Reporter: Vitaly Chikunov <vt>
Component: apache2-baseAssignee: Egor Ignatov <egori>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: rider
Version: unstable   
Hardware: x86   
OS: Linux   

Description Vitaly Chikunov 2022-10-15 15:04:33 MSK
Утилита a2dismod отключает произвольный модуль удаляя симлинк из mods-enabled и прописывая '=no' в mods-start.d/*.conf.

Утилита a2enmod включает модуль прописывая симлинк в mods-enabled, но забывая прописать '=yes' в соответствующий mods-start.d конфиг.

В результате при любом апдейте пакета apache2-base (запустится a2chkconfig м) включённый таким образом модуль ошибочно снова отключится - так как в mods-start.d/*.conf для него останется прописанное a2dismod '=no'.
Comment 1 Vitaly Chikunov 2022-10-15 15:33:39 MSK
ps. К слову сказать UI/UX этих утилит имеет серьезный недостаток -- название "a2chkconfig" отсылает к известной системной утилите chkconfig, но a2chkconfig работает совершенно иначе. При этом идея, чтоб a2chkconfig работал как chkconfig была бы хорошей, жаль что она не реализована.
Comment 2 Vitaly Chikunov 2022-10-15 15:53:30 MSK
pps. Да и еще одна проблема UI/UX -- конфигурация распределена в разных точках -- для 1 конфиграционного действия нужно и ставить симлинк в mods-available (это то чего пользователь ожидает), и редактировать конфиг в mods-start.d (это то чего пользователь не ожидает не проштудировав документацию и исходный код) -- иначе конфигурация в некоторых случаях может переключиться при апдейте пакета.

В этом случае снова схема с a la chkconfig была бы понятным решением. Симлинки устанавливается пакетом (согласно вендор пресету) при первом инсталле в систему, а дальше управление идет только меняя симлинки.
Comment 3 Anton Farygin 2022-10-16 18:55:07 MSK
Егор, посмотри пожалуйста.
Comment 4 Egor Ignatov 2022-11-11 21:40:41 MSK
(In reply to Vitaly Chikunov from comment #0)
> Утилита a2dismod отключает произвольный модуль удаляя симлинк из
> mods-enabled и прописывая '=no' в mods-start.d/*.conf.
> 
> Утилита a2enmod включает модуль прописывая симлинк в mods-enabled, но
> забывая прописать '=yes' в соответствующий mods-start.d конфиг.
> 
> В результате при любом апдейте пакета apache2-base (запустится a2chkconfig
> м) включённый таким образом модуль ошибочно снова отключится - так как в
> mods-start.d/*.conf для него останется прописанное a2dismod '=no'.

Да, это я добавил, чтобы a2dismod выключал модуль еще и в mods-start.d/*.conf. А вот про a2enmod забыл.

Вообще в мане к a2chkconfig написано следующее:
"
       If  you've  enable  or  disable  the  part  of  configuration  with  utilites
       a2en*/a2dis*  and  forgot  to  add  corresponding line to config in directory
       conf/*-start.d the configuration will be rewriting after next  run  a2chkcon‐
       fig.  You  have  to  know  that  utility a2chkconfig will automatic while you
       upgrade apache2 or install  something apache2 corresponding (modules or  smth
       else).

       The  right  way  to  enable or disable the part of configuration is to modify
       line in corresponding file in conf/*-start.d/ and then run a2chkconfig utitl‐
       ity.
"

Честно говоря, не знаю зачем так сделано и думаю было бы правильно сейчас исправить a2enmod, чтобы он тоже правил mods-start.d/*.conf, и переписать man.
Comment 5 Repository Robot 2022-11-14 18:29:21 MSK
apache2-1:2.4.54-alt3 -> sisyphus:

 Mon Nov 14 2022 Egor Ignatov <egori@altlinux> 1:2.4.54-alt3
 - a2enmod: enable mod also in mods-start.d (closes: #44044)