суббота, 21 ноября 2009 г.

Установка Subversion SVN на Ubuntu Server.

Сегодня будем устанавливать SVN Subversion на Ubuntu 9.10 с доступом по http протоколу и использованием аутентификации. Репозиторий будет один. Для небольших групп и девелоперов-одиночек это вполне подойдет.

1. Установка софта
sudo apt-get install subversion apache2 libapache2-svn

Зависимости подтянутся автоматически.

2. Создание групп безопасности
sudo addgroup subversion
sudo usermod -a -G subversion www-data

3. Создание каталогов
sudo mkdir /home/svn
cd /home/svn
sudo mkdir storage
sudo chown -R www-data:subversion storage
sudo chmod -R g+rws storage

4. Создание репозитория
sudo svnadmin create /home/svn/storage

5. Теперь нужно отредактировать /etc/apache2/mods-available/dav_svn.conf
sudo nano /etc/apache2/mods-available/dav_svn.conf

добавив в него
<Location /svn>
DAV svn
SVNPath /home/svn/storage
AuthType Basic
AuthName "Subversion repository"
AuthzSVNAccessFile /home/svn/authz.conf
AuthUserFile /home/svn/passwd.conf
Require valid-user
</Location>

Все готово. Чтобы применить настройки нужно выполнить
apache2ctl restart

Управление пользователями и доступом к подпроектам осуществляется через файлы /home/svn/authz.conf и /home/svn/passwd.conf

Для добавления пользователя нужно выполнить
sudo htpasswd -c /home/svn/passwd.conf user

, где user - имя пользователя.

для управления доступом к подкаталогам репозитория нужно отредактировать файл home/svn/authz.conf
[groups]
developers=devuser1,devuser2

[/]
*=r

[/subdir]
*=
user=r
@sevelopers=rw

В разделе [groups] можно создавать группы пользователей, но этот раздел не обязательный.

Далее создаются разделы с подкаталогами SVN репозитория. Для обозначения уровня доступа используются значения r и w, которые можно комбинировать. Доступ наследуется на подкаталоги, для отмены наследования нужно использовать "*=" (без кавычек). Для использования группы перед её именем нужно ставить собачку "@".

Для доступа к репозиторию по https нужно подключить ssl к apache, но про это я расскажу в следующей статье.