в debian

Решение проблем после обновления SVN до 1.8.14

SVN (subversion)
В одной из предыдущих статей рассматривалась установка SVN (subversion) 1.8 в Debian Wheezy. И если с установкой вопросов не возникло, то при обновлении на более свежую версию SVN (пакет от WANdisco) я столкнулся со следующей ошибкой:

apache2: Syntax error on line 244 of /etc/apache2/apache2.conf: Syntax error on line 2 of /etc/apache2/mods-enabled/authz_svn.load: Cannot load /usr/lib/apache2/modules/mod_authz_svn.so into server: /usr/lib/apache2/modules/mod_authz_svn.so: undefined symbol: dav_svn_get_repos_path
Action 'configtest' failed.
The Apache error log may have more information.
 failed!

Необходимые модули (dav, dav_svn и authz_svn) в системе присутствуют. Как показали дальнейшие разбирательства, важно не только наличие модулей, но и порядок их загрузки. В данном примере модули должны загружаться в следующем порядке: 1) dav 2) dav_svn_module 3) authz_svn_module, но apache2загружает модули, перечисленные в каталоге /etc/apache2/mods-enabled/ в алфавитном порядке.

Примечание. apache2 честно пытается загрузить модуль, указанный в authz_svn.load и получает ошибку, так как модуль, указанный в файле dav_svn.load еще не загружен.

Эти зависимости также описаны в первой строке самих *.load файлов:

cat /etc/apache2/mods-available/dav_svn.load
# Depends: dav
LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so

cat /etc/apache2/mods-available/authz_svn.load
# Depends: dav_svn
LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so

Устранить эту проблему, возникшую после обновления SVN до 1.8.14 можно двумя способами:

  • переименовать модули в каталоге /etc/apache2/mods-enabled/ таким образом, чтобы они находились в нужном вам порядке — @10-dav.load, @20-dav_svn_module и @30-authz_svn_module;
  • удалить файлы @dav_svn.load и @authz_svn.load в каталоге /etc/apache2/mods-enabled/ и добавить в конфиг /etc/apache2/apache2.conf следующие строки:
LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so
LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so

Добавить комментарий