Установка из исходников 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 && 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
[stextbox id=’warning’]Использование checkinstall, вместо make install, более правильное решение, т.к. при использовании checkinstall в каталоге с исходниками, так же будет сформирован DEB пакет и так же удалить установленный пакет subversion, можно будет средствами apt.[/stextbox]
Создаем стартовый скрипт 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
[stextbox id=’warning’]Это все нужно для того чтобы модули загрузились в нужном порядке, т.к. загрузка модуля dav_svn_module, зависит от модуля dav_module, а модуль mod_authz_svn, от dav_svn_module. Если это не сделать, то apache не будет работать.[/stextbox]
При использовании WebDAV, файл конфигурации dav_svn.conf помещать нужно в /etc/apache2/conf-available/ и включать его командой:
a2enconf dav_svn
Установка SVN с поддержкой WebDAV завершена. Можно приступать к созданию репозиториев и настройке доступа к ним.
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ
Обсуждение
Нет комментариев.