Решение проблем после обновления 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