Установка из исходников Subversion 1.11.1 с поддержкой WebDAV на Debian 9 Stretch
Сейчас в качестве основной серверной ОС использую Debian 9 Stretch и в связи с этим планомерно перевожу свои действующие сервисы с Debian 8 Jessie, на Debian 9 Stretch.
Поэтому рассмотрим, как собрать из исходников последнюю (на момент написания статьи) версию Subversion 1.11.1, с поддержкой WebDAV.
Подготовка системы
JUQwJTlGJUQwJUI1JUQxJTgwJUQwJUI1JUQwJUI0JTIwJUQwJUJEJUQwJUIwJUQxJTg3JUQwJUIwJUQwJUJCJUQwJUJFJUQwJUJDJTIwJUQxJTgzJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQwJUJFJUQwJUIyJUQwJUJBJUQwJUI4JTIwJUQwJUJFJUQwJUIxJUQwJUJEJUQwJUJFJUQwJUIyJUQwJUJCJUQxJThGJUQwJUI1JUQwJUJDJTIwJUQxJTgxJUQwJUI4JUQxJTgxJUQxJTgyJUQwJUI1JUQwJUJDJUQxJTgzJTIwJUQwJUI0JUQwJUJFJTIwJUQwJUIwJUQwJUJBJUQxJTgyJUQxJTgzJUQwJUIwJUQwJUJCJUQxJThDJUQwJUJEJUQwJUJFJUQwJUIzJUQwJUJFJTIwJUQxJTgxJUQwJUJFJUQxJTgxJUQxJTgyJUQwJUJFJUQxJThGJUQwJUJEJUQwJUI4JUQxJThGJTNB
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
JUQwJTk0JUQwJUJFJUQwJUIxJUQwJUIwJUQwJUIyJUQwJUJCJUQxJThGJUQwJUI1JUQwJUJDJTIwJUQxJTgxJUQwJUI4JUQxJTgxJUQxJTgyJUQwJUI1JUQwJUJDJUQwJUJEJUQwJUJFJUQwJUIzJUQwJUJFJTIwJUQwJUJGJUQwJUJFJUQwJUJCJUQxJThDJUQwJUI3JUQwJUJFJUQwJUIyJUQwJUIwJUQxJTgyJUQwJUI1JUQwJUJCJUQxJThGJTIwKHN1YnZlcnNpb24pJTJDJTIwJUQwJUJBJUQwJUJFJUQxJTgyJUQwJUJFJUQxJTgwJUQxJThCJUQwJUI5JTIwJUQwJUIxJUQxJTgzJUQwJUI0JUQwJUI1JUQxJTgyJTIwJUQwJUIyJUQwJUJCJUQwJUIwJUQwJUI0JUQwJUI1JUQwJUJCJUQxJThDJUQxJTg2JUQwJUI1JUQwJUJDJTIwJUQxJTgwJUQwJUI1JUQwJUJGJUQwJUJFJUQwJUI3JUQwJUI4JUQxJTgyJUQwJUJFJUQxJTgwJUQwJUI4JUQxJThGJTIwJUQwJUI4JTIwJUQwJUJFJUQxJTgyJTIwJUQwJUJEJUQwJUI1JUQwJUIzJUQwJUJFJTIwJUQwJUIxJUQxJTgzJUQwJUI0JUQwJUI1JUQxJTgyJTIwJUQwJUI3JUQwJUIwJUQwJUJGJUQxJTgzJUQxJTgxJUQwJUJBJUQwJUIwJUQxJTgyJUQxJThDJUQxJTgxJUQxJThGJTIwJUQwJUI0JUQwJUI1JUQwJUJDJUQwJUJFJUQwJUJEJTIwKFNWTiku
adduser subversion --system --shell /sbin/nologin --group --disabled-password --home /var/svn
JUQwJTlEJUQwJUIwJUQwJUI3JUQwJUJEJUQwJUIwJUQxJTg3JUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUJGJUQxJTgwJUQwJUIwJUQwJUIyJUQwJUIwJTIwJUQwJUI0JUQwJUJFJUQxJTgxJUQxJTgyJUQxJTgzJUQwJUJGJUQwJUIwJTIwJUQwJUJBJTIwJUQwJUJGJUQwJUIwJUQwJUJGJUQwJUJBJUQwJUI1JTIwJUQwJUI0JUQwJUJCJUQxJThGJTIwJUQxJTgwJUQwJUIwJUQwJUI3JUQwJUJDJUQwJUI1JUQxJTg5JUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTIwJUQxJTgwJUQwJUI1JUQwJUJGJUQwJUJFJUQwJUI3JUQwJUI4JUQxJTgyJUQwJUJFJUQxJTgwJUQwJUI4JUQwJUI1JUQwJUIyJTIwKFNWTikuJTIwJUQwJUEyJUQwJUIwJUQwJUJBJTIwJUQwJUJBJUQwJUIwJUQwJUJBJTIwJUQxJTgxJUQwJUIxJUQwJUJFJUQxJTgwJUQwJUJBJUQwJUIwJTIwJUQwJUIxJUQxJTgzJUQwJUI0JUQwJUI1JUQxJTgyJTIwJUQxJTgxJTIwJUQwJUJGJUQwJUJFJUQwJUI0JUQwJUI0JUQwJUI1JUQxJTgwJUQwJUI2JUQwJUJBJUQwJUJFJUQwJUI5JTIwV2ViREFWJTJDJTIwJUQxJTgyJUQwJUJFJTIwJUQwJUJGJUQxJTgwJUQwJUIwJUQwJUIyJUQwJUIwJTIwJUQxJTgyJUQwJUIwJUQwJUJBJTIwJUQwJUI2JUQwJUI1JTIwJUQwJUJGJUQxJTgwJUQwJUI1JUQwJUI0JUQwJUJFJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUIyJUQwJUI4JUQwJUJDJTIwJUQwJUI4JTIwJUQwJUI0JUQwJUJCJUQxJThGJTIwV2ViLSVEMSU4MSVEMCVCNSVEMSU4MCVEMCVCMiVEMCVCNSVEMSU4MCVEMCVCMCUzQQ==
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/
JUQwJUExJUQwJUJBJUQwJUIwJUQxJTg3JUQwJUI4JUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTIwU1FMaXRlJTIwJUQwJUI4JTIwJUQxJTgwJUQwJUIwJUQxJTgxJUQwJUJGJUQwJUIwJUQwJUJBJUQwJUJFJUQwJUIyJUQxJThCJUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUI1JUQwJUI1JTIwJUQwJUI4JTIwJUQwJUJGJUQwJUI1JUQxJTgwJUQwJUI1JUQwJUI4JUQwJUJDJUQwJUI1JUQwJUJEJUQwJUJFJUQwJUIyJUQxJThCJUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTNB
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
JUQwJTkyJUQxJThCJUQwJUJGJUQwJUJFJUQwJUJCJUQwJUJEJUQxJThGJUQwJUI1JUQwJUJDJTIwJUQwJUJBJUQwJUJFJUQwJUJEJUQxJTg0JUQwJUI4JUQwJUIzJUQxJTgzJUQxJTgwJUQwJUI4JUQxJTgwJUQwJUJFJUQwJUIyJUQwJUIwJUQwJUJEJUQwJUI4JUQwJUI1JTIwJUQxJTgxJUQwJUIxJUQwJUJFJUQxJTgwJUQwJUJBJUQwJUI4JTJDJTIwJUQxJTgxJTIwJUQwJUJGJUQwJUJFJUQwJUI0JUQwJUI0JUQwJUI1JUQxJTgwJUQwJUI2JUQwJUJBJUQwJUJFJUQwJUI5JTIwV2ViREFWJTNB
./configure --with-serf=/usr --prefix=/usr --with-apache-libexecdir
JUQwJTlBJUQwJUJFJUQwJUJDJUQwJUJGJUQwJUI4JUQwJUJCJUQwJUI4JUQxJTgwJUQxJTgzJUQwJUI1JUQwJUJDJTIwJUQwJUI4JTIwJUQxJTgzJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQwJUIwJUQwJUIyJUQwJUJCJUQwJUI4JUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUJGJUQwJUIwJUQwJUJBJUQwJUI1JUQxJTgyJTNB
make checkinstall
JTVCc3RleHRib3glMjBpZCUzRCVFMiU4MCU5OXdhcm5pbmclRTIlODAlOTklNUQlRDAlOTglRDElODElRDAlQkYlRDAlQkUlRDAlQkIlRDElOEMlRDAlQjclRDAlQkUlRDAlQjIlRDAlQjAlRDAlQkQlRDAlQjglRDAlQjUlMjBjaGVja2luc3RhbGwlMkMlMjAlRDAlQjIlRDAlQkMlRDAlQjUlRDElODElRDElODIlRDAlQkUlMjBtYWtlJTIwaW5zdGFsbCUyQyUyMCVEMCVCMSVEMCVCRSVEMCVCQiVEMCVCNSVEMCVCNSUyMCVEMCVCRiVEMSU4MCVEMCVCMCVEMCVCMiVEMCVCOCVEMCVCQiVEMSU4QyVEMCVCRCVEMCVCRSVEMCVCNSUyMCVEMSU4MCVEMCVCNSVEMSU4OCVEMCVCNSVEMCVCRCVEMCVCOCVEMCVCNSUyQyUyMCVEMSU4Mi4lRDAlQkEuJTIwJUQwJUJGJUQxJTgwJUQwJUI4JTIwJUQwJUI4JUQxJTgxJUQwJUJGJUQwJUJFJUQwJUJCJUQxJThDJUQwJUI3JUQwJUJFJUQwJUIyJUQwJUIwJUQwJUJEJUQwJUI4JUQwJUI4JTIwY2hlY2tpbnN0YWxsJTIwJUQwJUIyJTIwJUQwJUJBJUQwJUIwJUQxJTgyJUQwJUIwJUQwJUJCJUQwJUJFJUQwJUIzJUQwJUI1JTIwJUQxJTgxJTIwJUQwJUI4JUQxJTgxJUQxJTg1JUQwJUJFJUQwJUI0JUQwJUJEJUQwJUI4JUQwJUJBJUQwJUIwJUQwJUJDJUQwJUI4JTJDJTIwJUQxJTgyJUQwJUIwJUQwJUJBJTIwJUQwJUI2JUQwJUI1JTIwJUQwJUIxJUQxJTgzJUQwJUI0JUQwJUI1JUQxJTgyJTIwJUQxJTgxJUQxJTg0JUQwJUJFJUQxJTgwJUQwJUJDJUQwJUI4JUQxJTgwJUQwJUJFJUQwJUIyJUQwJUIwJUQwJUJEJTIwREVCJTIwJUQwJUJGJUQwJUIwJUQwJUJBJUQwJUI1JUQxJTgyJTIwJUQwJUI4JTIwJUQxJTgyJUQwJUIwJUQwJUJBJTIwJUQwJUI2JUQwJUI1JTIwJUQxJTgzJUQwJUI0JUQwJUIwJUQwJUJCJUQwJUI4JUQxJTgyJUQxJThDJTIwJUQxJTgzJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQwJUJFJUQwJUIyJUQwJUJCJUQwJUI1JUQwJUJEJUQwJUJEJUQxJThCJUQwJUI5JTIwJUQwJUJGJUQwJUIwJUQwJUJBJUQwJUI1JUQxJTgyJTIwc3VidmVyc2lvbiUyQyUyMCVEMCVCQyVEMCVCRSVEMCVCNiVEMCVCRCVEMCVCRSUyMCVEMCVCMSVEMSU4MyVEMCVCNCVEMCVCNSVEMSU4MiUyMCVEMSU4MSVEMSU4MCVEMCVCNSVEMCVCNCVEMSU4MSVEMSU4MiVEMCVCMiVEMCVCMCVEMCVCQyVEMCVCOCUyMGFwdC4lNUIlMkZzdGV4dGJveCU1RA==
JUQwJUExJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQxJTgxJUQxJTgyJUQwJUIwJUQxJTgwJUQxJTgyJUQwJUJFJUQwJUIyJUQxJThCJUQwJUI5JTIwJUQxJTgxJUQwJUJBJUQxJTgwJUQwJUI4JUQwJUJGJUQxJTgyJTIwU1ZOJTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQwJUIyJUQwJUI1JUQxJTgwJUQwJUIwJTNB
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
JUQwJTk0JUQwJUJCJUQxJThGJTIwJUQxJTgyJUQwJUJFJUQwJUIzJUQwJUJFJTIwJUQxJTg3JUQxJTgyJUQwJUJFJUQwJUIxJUQxJThCJTIwJUQwJUJDJUQwJUJFJUQwJUI0JUQxJTgzJUQwJUJCJUQwJUI4JTIwU1ZOJTIwJUQwJUI0JUQwJUJCJUQxJThGJTIwJUQxJTgwJUQwJUIwJUQwJUIxJUQwJUJFJUQxJTgyJUQxJThCJTIwJUQxJTgxJTIwV2ViREFWJTIwJUQwJUJEJUQwJUJFJUQxJTgwJUQwJUJDJUQwJUIwJUQwJUJCJUQxJThDJUQwJUJEJUQwJUJFJTIwJUQwJUI3JUQwJUIwJUQwJUIzJUQxJTgwJUQxJTgzJUQwJUI3JUQwJUI4JUQwJUJCJUQwJUI4JUQxJTgxJUQxJThDJTIwJUQwJUIyJTIwYXBhY2hlMiUyQyUyMCVEMCVCRCVEMCVCNSVEMCVCRSVEMCVCMSVEMSU4NSVEMCVCRSVEMCVCNCVEMCVCOCVEMCVCQyVEMCVCRSUyMCVEMCVCMiVEMCVCRCVEMCVCNSVEMSU4MSVEMSU4MiVEMCVCOCUyMCVEMCVCOCVEMCVCNyVEMCVCQyVEMCVCNSVEMCVCRCVEMCVCNSVEMCVCRCVEMCVCOCVEMSU4RiUyMCVEMCVCMiUyMCVEMCVCRiVEMCVCRSVEMSU4MCVEMSU4RiVEMCVCNCVEMCVCRSVEMCVCQSUyMCVEMCVCOCVEMSU4NSUyMCVEMCVCNyVEMCVCMCVEMCVCMyVEMSU4MCVEMSU4MyVEMCVCNyVEMCVCQSVEMCVCOC4=
JUQwJTkyJUQwJUJBJUQwJUJCJUQxJThFJUQxJTg3JUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUJDJUQwJUJFJUQwJUI0JUQxJTgzJUQwJUJCJUQxJThDJUMyJUEwZGF2X21vZHVsZSUyMCVEMCVCOCUyMCVEMCVCRSVEMSU4MiVEMCVCQSVEMCVCQiVEMSU4RSVEMSU4NyVEMCVCMCVEMCVCNSVEMCVCQyUyMG1vZF9kYXZfc3ZuJTJDJTIwbW9kX2F1dGh6X3N2biUzQQ==
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]
JUQwJTlGJUQxJTgwJUQwJUI4JTIwJUQwJUI4JUQxJTgxJUQwJUJGJUQwJUJFJUQwJUJCJUQxJThDJUQwJUI3JUQwJUJFJUQwJUIyJUQwJUIwJUQwJUJEJUQwJUI4JUQwJUI4JTIwV2ViREFWJTJDJTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJTIwJUQwJUJBJUQwJUJFJUQwJUJEJUQxJTg0JUQwJUI4JUQwJUIzJUQxJTgzJUQxJTgwJUQwJUIwJUQxJTg2JUQwJUI4JUQwJUI4JUMyJUEwZGF2X3N2bi5jb25mJTIwJUQwJUJGJUQwJUJFJUQwJUJDJUQwJUI1JUQxJTg5JUQwJUIwJUQxJTgyJUQxJThDJTIwJUQwJUJEJUQxJTgzJUQwJUI2JUQwJUJEJUQwJUJFJTIwJUQwJUIyJUMyJUEwJTJGZXRjJTJGYXBhY2hlMiUyRmNvbmYtYXZhaWxhYmxlJTJGJTIwJUQwJUI4JTIwJUQwJUIyJUQwJUJBJUQwJUJCJUQxJThFJUQxJTg3JUQwJUIwJUQxJTgyJUQxJThDJTIwJUQwJUI1JUQwJUIzJUQwJUJFJTIwJUQwJUJBJUQwJUJFJUQwJUJDJUQwJUIwJUQwJUJEJUQwJUI0JUQwJUJFJUQwJUI5JTNB
a2enconf dav_svn
Установка SVN с поддержкой WebDAV завершена. Можно приступать к созданию репозиториев и настройке доступа к ним.
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ
Обсуждение
Нет комментариев.