Решение проблем после обновления SVN до 1.8.14
Oct 15, 2015 17:31 · 221 words · 2 minute read
В одной из предыдущих статей рассматривалась установка 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