Установка из исходников Subversion 1.11.1 с поддержкой WebDAV на Debian 9 Stretch

Сейчас в качестве основной серверной ОС использую Debian 9 Stretch и в связи с этим планомерно перевожу свои действующие сервисы с Debian 8 Jessie, на Debian 9 Stretch.

 

Поэтому рассмотрим, как собрать из исходников последнюю (на момент написания статьи) версию Subversion 1.11.1, с поддержкой WebDAV.

 

Подготовка системы

Перед началом установки обновляем систему до актуального состояния:

apt-get update && sudo apt-get upgrade -y

 

Устанавливаем необходимые зависимости:

apt-get install gcc checkinstall libaprutil1 libaprutil1-dev zlib1g zlib1g-dev liblz4-1 liblz4-dev libserf-1-1 libserf-dev libutf8proc2 libutf8proc-dev apache2 apache2-dev apache2-utils -y

 

Добавляем системного пользователя (subversion), который будет владельцем репозитория и от него будет запускаться демон (SVN).

adduser subversion --system --shell /sbin/nologin --group --disabled-password --home /var/svn

 

Назначаем права доступа к папке для размещения репозиториев (SVN). Так как сборка будет с поддержкой WebDAV, то права так же предоставим и для Web-сервера:

chown -R www-data:subversion /var/svn 
chmod -R 770 /var/svn

 

Установка Subversion

Скачиваем с официального сайта дистрибутив, распаковываем его и переходим в каталог:

wget http://apache-mirror.rbc.ru/pub/apache/subversion/subversion-1.11.1.tar.gz
tar -zxvf subversion-1.11.1.tar.gz 
cd subversion-1.11.1/

 

Скачиваем SQLite и распаковываем ее и переименовываем:

wget https://www.sqlite.org/2018/sqlite-amalgamation-3260000.zip
unzip sqlite-amalgamation-3260000.zip
mv sqlite-amalgamation-3260000 sqlite-amalgamation
rm sqlite-amalgamation-3260000.zip

 

Выполняем конфигурирование сборки, с поддержкой WebDAV:

./configure --with-serf=/usr --prefix=/usr --with-apache-libexecdir

 

Компилируем и устанавливаем пакет:

make
checkinstall
Использование checkinstall, вместо make install, более правильное решение, т.к. при использовании checkinstall в каталоге с исходниками, так же будет сформирован DEB пакет и так же удалить установленный пакет subversion, можно будет средствами apt.

 

Создаем стартовый скрипт SVN сервера:

nano /etc/init.d/svnserve

Вписываем в него следующее:

#!/bin/sh

### BEGIN INIT INFO
# Provides: svnserve
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Should-Start: $all
# Should-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start/stop svnserve
# Description: Start/stop svnserve
### END INIT INFO

test -f /usr/bin/svnserve || exit 0

OPTIONS="-d -T -r /var/svn"

case "$1" in
 start)
 echo -n "Starting subversion daemon:"
 echo -n " svnserve"
 start-stop-daemon --start --quiet --chuid subversion:subversion --exec /usr/bin/svnserve -- $OPTIONS
 echo "."
 ;;

stop)
 echo -n "Stopping subversion daemon:"
 echo -n " svnserve"
 start-stop-daemon --stop --quiet --exec /usr/bin/svnserve
 echo "."
 ;;

reload)
 ;;

force-reload)
 $0 restart
 ;;

restart)
 $0 stop
 $0 start
 ;;

*)
 echo "Usage: /etc/init.d/subversion (start|stop|reload|restart)"
 exit 1
 ;;

esac

exit 0

Делаем скрипт исполняемым и добавляем в автозагрузку:

chmod a+x /etc/init.d/svnserve
update-rc.d svnserve defaults

 

Для того чтобы модули SVN для работы с WebDAV нормально загрузились в apache2, необходимо внести изменения в порядок их загрузки.

 

Включаем модуль dav_module и отключаем mod_dav_svn, mod_authz_svn:

a2enmod dav
a2dismod dav_svn
a2dismod authz_svn

 

В конфигурационный файл /etc/apache2/apache2.conf после строк:

# Include module configuration:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.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
Это все нужно для того чтобы модули загрузились в нужном порядке, т.к. загрузка модуля dav_svn_module, зависит от модуля dav_module, а модуль mod_authz_svn, от dav_svn_module. Если это не сделать, то apache не будет работать.

 

При использовании WebDAV, файл конфигурации dav_svn.conf помещать нужно в /etc/apache2/conf-available/ и включать его командой:

a2enconf dav_svn

 

Установка SVN с поддержкой WebDAV завершена. Можно приступать к созданию репозиториев и настройке доступа к ним.

 

Понравилась или оказалась полезной статья, поблагодари автора

 

БесполезноСлабоватоПриемлемоОтличноПревосходно (Еще нет оценок)
Загрузка...

Оставить ответ

3 × два =