Сегодня попытался обновится на виртуалке с работающим SVN-сервером. При обновлении apache2 с версии 2.2.22-alt2 до 2.2.24-alt0.M60T.1 выдало ошибку: httpd2: Syntax error on line 44 of /etc/httpd2/conf/httpd2.conf: Syntax error on line 2 of /etc/httpd2/conf/mods-enabled/dav_svn.load: Cannot load /usr/lib64/apache2/modules/mod_dav_svn.so into server: /usr/lib64/apache2/modules/mod_dav_svn.so: undefined symbol: dav_register_provider Some errors detected in Apache2 configuration! To use dav_svn_module check configuration and start httpd2 service. и в конце: Running /usr/lib/rpm/posttrans-filetriggers Reloading httpd2 service: httpd2: Syntax error on line 44 of /etc/httpd2/conf/httpd2.conf: Syntax error on line 2 of /etc/httpd2/conf/mods-enabled/dav_svn.load: Cannot load /usr/lib64/apache2/modules/mod_dav_svn.so into server: /usr/lib64/apache2/modules/mod_dav_svn.so: undefined symbol: dav_register_provider [FAILED] /usr/lib/rpm/apache2-mod_php5.filetrigger failed Stopping httpd2 service: [FAILED] /usr/lib/rpm/zz80-apache2-base.filetrigger failed error: execution of /usr/lib/rpm/posttrans-filetriggers scriptlet from (null)-(null)-(null) failed, exit status 1 Done. Я проверил, файл /usr/lib64/apache2/modules/mod_dav_svn.so существует, установлен из subversion-server-dav_1.7.8-alt0.M60P.1 Почему этот модуль не загружается после обновления? Как исправить или обойти эту ошибку? P.S. Такую же ошибку наблюдаю и на SVN-сервере на базе 5.1
Какие версии apache2-mod_dav на проблемных системах?
Простой тест (установка subversion-server-dav и включение загрузки dav_svn) данной проблемы (на i586) не выявил. (Только ругань на AuthUserFile, пропадает после закоментаривания параметра.) Проверял (на i586): $ rpm -qa|fgrep apache2 ... apache2-httpd-prefork-2.2.24-alt0.M60T.1 ... apache2-mods-2.2.24-alt0.M60T.1 ... apache2-base-2.2.24-alt0.M60T.1 $ rpm -qa|fgrep subversion subversion-1.7.8-alt0.M60P.1 subversion-server-dav-1.7.8-alt0.M60P.1 libsubversion-1.7.8-alt0.M60P.1 subversion-server-common-1.7.8-alt0.M60P.1
Я обнаружил эту ошибку на настроенном и работающем SVN-сервере (WebDAV) на базе ALT Linux 5.1 i586. Но, поскольку, я не ожидал, что всё может рассыпаться от обычного, ничем не примечательного обновления, то предварительный бэкап не сделал и теперь воспроизвести ошибку там не могу. Но эту же ошибку я получил и на настроенном и работающем SVN-сервере (WebDAV) на базе ALT Linux t6 x86_64. Там установлены: $ rpm -qa|fgrep apache2 apache2-base-2.2.22-alt2 apache2-cgi-bin-test-cgi-2.2.22-alt2 apache2-cgi-bin-2.2.22-alt2 apache2-icons-2.2.22-alt2 apache2-2.2.22-alt2 apache2-mod_python-3.3.1-alt2.5.2.1.0.M60P.1 apache2-common-2.2.22-alt2 apache2-httpd-worker-2.2.22-alt2 apache2-httpd-prefork-2.2.22-alt2 apache2-cgi-bin-printenv-2.2.22-alt2 apache2-html-2.2.22-alt2 apache2-mod_php5-5.3.10.20120202-alt1 apache2-mod_disk_cache-2.2.22-alt2 apache2-htcacheclean-2.2.22-alt2 apache2-datadirs-2.2.22-alt2 $ rpm -qa|fgrep subversion libsubversion-1.7.8-alt0.M60P.1 subversion-server-dav-1.7.8-alt0.M60P.1 subversion-1.7.8-alt0.M60P.1 subversion-server-common-1.7.8-alt0.M60P.1 subversion-python-1.7.8-alt0.M60P.1 если сделать apt-get update и потом в aptitude выбрать для обновления всё в Upgradable Packages, то получается эта ошибка. Если делать обновление через apt-get upgrade, то выдает: apt-get upgrade Reading Package Lists... Done Building Dependency Tree... Done The following packages will be upgraded apache2-cgi-bin apache2-cgi-bin-printenv apache2-cgi-bin-test-cgi apache2-datadirs apache2-html apache2-icons apache2-mod_php5 libgcc1 libstdc++6 libxml2 php5 php5-bz2 php5-calendar php5-curl php5-dom php5-fileinfo php5-gd2 php5-imap php5-intl php5-libs php5-mbstring php5-mcrypt php5-memcache php5-mysql php5-mysqli php5-openssl php5-soap php5-sockets php5-suhosin php5-tidy php5-xmlrpc php5-xsl php5-zip The following packages have been kept back apache2 apache2-base apache2-htcacheclean apache2-httpd-prefork apache2-httpd-worker apache2-mod_disk_cache 33 upgraded, 0 newly installed, 0 removed and 6 not upgraded. т.е. фактически apache2 не обновляется и ошибка не проявляется. Если же обновлять через apt-get dist-upgrade, то как и в случае с aptitude, я получаю: ... 35: apache2-base warning: /etc/httpd2/conf/httpd2.conf created as /etc/httpd2/conf/httpd2.conf.rpmnew ( 4%) ################################################################################################### [ 81%] Set owner root:apache2 for /var/run/httpd2 Set 2775 attr for /var/run/httpd2 36: apache2-httpd-prefork ################################################################################################### [ 83%] 37: apache2-mod_disk_cache ################################################################################################### [ 86%] grep: /etc/sysconfig/htcacheclean: No such file or directory grep: /etc/sysconfig/htcacheclean: No such file or directory grep: /etc/sysconfig/htcacheclean: No such file or directory grep: /etc/sysconfig/htcacheclean: No such file or directory grep: /etc/sysconfig/htcacheclean: No such file or directory 38: apache2-htcacheclean ################################################################################################### [ 88%] control-restore: Status "unknown" for "htcacheclean-run" facility cannot be restored control-restore: Status "unknown" for "htcacheclean-mode" facility cannot be restored 39: apache2-mods ################################################################################################### [ 90%] 40: apache2-httpd-worker ################################################################################################### [ 93%] 41: apache2-mod_php5 warning: /etc/php/5.3/apache2-mod_php/php.ini created as /etc/php/5.3/apache2-mod_php/php.ini.rpmnew( 88%) ################################################################################################### [ 95%] warning: /etc/php/5.3/apache2-mod_php/php.d/suhosin.ini created as /etc/php/5.3/apache2-mod_php/php.d/suhosin.ini.phpnew Running /usr/lib/rpm/posttrans-filetriggers Reloading httpd2 service: httpd2: Syntax error on line 44 of /etc/httpd2/conf/httpd2.conf: Syntax error on line 2 of /etc/httpd2/conf/mods-enabled/dav_svn.load: Cannot load /usr/lib64/apache2/modules/mod_dav_svn.so into server: /usr/lib64/apache2/modules/mod_dav_svn.so: undefined symbol: dav_register_provider [FAILED] /usr/lib/rpm/apache2-mod_php5.filetrigger failed Stopping httpd2 service: [FAILED] /usr/lib/rpm/zz80-apache2-base.filetrigger failed error: execution of /usr/lib/rpm/posttrans-filetriggers scriptlet from (null)-(null)-(null) failed, exit status 1 Done.
Похоже у вас происходит попытка загрузки dav_svn_module до загрузки dav_module. Прошу проверить: существует ли у вас линки /etc/httpd2/conf/mods-enabled/dav.{load,conf} и на правильные ли файлы они указывают. PS: Ситуацию похожую на вашу, я смоделировал так (на p6): $ sudo -H a2enmod dav_svn Enabling dav as a dependency Module dav installed; run service httpd2 condreload to fully enable. Module dav_svn installed; run service httpd2 condreload to fully enable. $ sudo -H httpd2 -M ... dav_module (shared) dav_svn_module (shared) ... Syntax OK $ sudo -H rm -f /etc/httpd2/conf/mods-enabled/dav.* $ sudo -H httpd2 -M httpd2: Syntax error on line 45 of /etc/httpd2/conf/httpd2.conf: Syntax error on line 2 of /etc/httpd2/conf/mods-enabled/dav_svn.load: Cannot load /usr/lib/apache2/modules/mod_dav_svn.so into server: /usr/lib/apache2/modules/mod_dav_svn.so: undefined symbol: dav_register_provider Вернул в нормальное состояние через: $ sudo -H a2enmod dav
(В ответ на комментарий №4) > Похоже у вас происходит попытка загрузки dav_svn_module до загрузки > dav_module. > > Прошу проверить: существует ли у вас линки > /etc/httpd2/conf/mods-enabled/dav.{load,conf} и на правильные ли файлы они > указывают. Думаю здесь возможны 2 варианта: 1) нерабочие ссылки; 2) неверный порядок загрузки модулей. Вариант 1 исправить будет проще...
Как оказалось, при обновлении удалялись ссылки /etc/httpd2/conf/mods-enabled/dav.{load,conf} С одной стороны, логично, т.к. в /etc/httpd2/conf/mods-start.d/ указание на подгрузку этого модуля я не нашел. Но с другой стороны, желательно бы поставить зависимость, что модуль dav должен быть обязательно включен, если включается dav_svn. Спасибо!
(В ответ на комментарий №6) > Как оказалось, при обновлении удалялись ссылки > /etc/httpd2/conf/mods-enabled/dav.{load,conf} > С одной стороны, логично, т.к. в /etc/httpd2/conf/mods-start.d/ указание на > подгрузку этого модуля я не нашел. > Но с другой стороны, желательно бы поставить зависимость, что модуль dav должен > быть обязательно включен, если включается dav_svn. Оно там есть. Наличие в /etc/httpd2/conf/mods-available/dav_svn.load строки: # Depends: dav Приводит к тому, что при вызове a2enmod dav_svn модуль dav подключается тоже: $ sudo -H a2enmod dav_svn Enabling dav as a dependency Module dav is already enabled! Module dav installed; run service httpd2 condreload to fully enable. Module dav_svn installed; run service httpd2 condreload to fully enable. a2dismod эту информацию тоже учитывает: $ sudo -H a2dismod dav The following modules depend on the module you requested be uninstalled: dav_svn Please uninstall these first Скорее всего проблема в том, что если ссылка уже /etc/httpd2/conf/mods-enabled/<module>.load существует, то при вызове a2enmod <module> зависимости не проверяются.
apache2-2.2.24-alt2 -> sisyphus: * Tue May 28 2013 Aleksey Avdeev <solo@altlinux> 2.2.24-alt2 - In a2enmod aobavlena mandatory dependency checking for inclusion (Closes: #28992)
(В ответ на комментарий №8) > apache2-2.2.24-alt2 -> sisyphus: > > * Tue May 28 2013 Aleksey Avdeev <solo@altlinux> 2.2.24-alt2 > - In a2enmod aobavlena mandatory dependency checking for inclusion > (Closes: #28992) Т. е. теперь при вызове a2enmod <module>, a2enmod для модулей от которых зависит подключаемый зависимостей вызывается всегда. => для модулей отмеченных как yes в выводе a2chkconfig_list, при вызове a2chkconfig (что и делает триггер) все зависимости будут подключаться. => вызов a2chkconfig будет приводить симлинки к состоянию заданному start`файлами независимо от того, удалялись ли какие нибудь симлинки нештатными средствами (не через a2dismod).
> aobavlena mandatory dependency checking for inclusion Ты просто адски жжошь!
(В ответ на комментарий №10) > > aobavlena mandatory dependency checking for inclusion > > Ты просто адски жжошь! Результат translate.google.com
(В ответ на комментарий №11) > (В ответ на комментарий №10) > > > aobavlena mandatory dependency checking for inclusion > > > > Ты просто адски жжошь! > > Результат translate.google.com Должно было быть: In a2enmod added a mandatory dependency checking for inclusion. apache2-2.2.24-alt3, с исправленным changelog`ом заливать?
(В ответ на комментарий №11) > (В ответ на комментарий №10) > > > aobavlena mandatory dependency checking for inclusion > > > > Ты просто адски жжошь! > > Результат translate.google.com garbage in, garbage out
(В ответ на комментарий №13) > (В ответ на комментарий №11) > > (В ответ на комментарий №10) > > > > aobavlena mandatory dependency checking for inclusion > > > > > > Ты просто адски жжошь! > > > > Результат translate.google.com > garbage in, garbage out Да. В apache2-2.2.24-alt3 исправил так: http://git.altlinux.org/people/solo/packages/apache2.git?p=apache2.git;a=commitdiff;h=c5fdbb9c5666045c99105582cc26a520d5118fe0