20 февраля 2010 г. Apache FreeBSD Subversion Svn Svnserve

FreeBSD. Svnserve - запуск Subversion без Apache!

В продолжении темы перехода с Apache, сегодня расскажу о простом запуске Subversion без Apache. Для этого мы используем svnserver. Настройка достаточно проста, и так перейдем к делу!

После установки Subversion, у вас должен появится svnserve, проверить можно так:

# svnserve --version
svnserve, version 1.6.4 (r38063)
   compiled Aug 25 2009, 15:27:23

Если вы только что установили Subversion, то не забудьте выполнить "rehash".

Настройка

Во-первых, теперь надо настройки производить для каждого репозитория свои, ибо у каждого репозитория свой svnserve.conf. Но у меня раньше были общие конфиги для всех реп, и я уже в правах разруливал какие группы имеют права на определенную репу, а какие нет. Поэтому писать одно и тоже для каждой репы мне не хотелось и я решил сделать один файл svnserve.conf, а в остальных репах сделать символическую ссылку на него, тем самым надо будет менять настройки только в одном месте.

/var/svn/repos/ - каталог репозиториев
/var/svn/repos/adw0rd/ - один из репозиториев
/var/svn/repos/example/ - другой репозиторий
/var/svn/repos/adw0rd/conf/svnserve.conf - конфиг конкретного репозитория

Перемещаем конфигурационный файл:

mv /var/svn/repos/adw0rd/conf/svnserve.conf /var/svn/

Делаем ссылки:

ln -s /var/svn/svnserve.conf /var/svn/repos/adw0rd/conf/svnserve.conf
ln -s /var/svn/svnserve.conf /var/svn/repos/example/conf/svnserve.conf

И отредактируем файл /var/svn/svnserve.conf:

[general]
# анонимам доступа нет
anon-access = none
# нужна авторизация для просмотра/записи
auth-access = write
# путь до файла с паролями
password-db = /var/svn/svn-passwd
# путь до файла группы/права
authz-db = /var/svn/svn-authz-access
# realm = My First Repository

Во-вторых, у меня было два файла:

Но теперь только можно использовать второй (группы/права), он остался корректен.
А для первого файла поменялся формат, теперь там права хранятся в открытом виде и имеют формат:

[users]
sally = sally_secret
adw0rd = adw0rd_password

Отредактируйте /var/svn/svn-passwd и добавьте туда свои аккаунты.

С правами файл у нас расположен в /var/svn/svn-authz-access и имеет вид:

[groups]
dev1 = adw0rd, vasac
dev2 = sally

[/]
@dev1 = r
@dev2 = r 
* =

[adw0rd:/]
@dev1 = rw
* =

[example:/]
@dev1 = rw
@dev2 = rw
* =

Запуск

Отредактируйте файл /usr/local/etc/rc.d/svnserve, и укажите свои параметры если это необходимо. Также можете поменять пользователя/группу от кого будет работать svnserve. Если у вас нет это файла, то можете его взять здесь.

Запускаем сервер:

/usr/local/etc/rc.d/svnserve start

И не забудьте добавить в /etc/rc.conf

svnserve_enable="YES"

Комментарии

Все на mercurial! :)

Все на Git! :)

нужно еще описать способ прикручивание SALS 128-256bit с шифрованием трафика =)

Все на Git! :)

Ага, я тоже предлагал vasa_c'у :)

нужно еще описать способ прикручивание SALS 128-256bit с шифрованием трафика =)

Да, надо бы в статью добавить :)

--listen-host=0.0.0.0 нужен т.к. во FreeBsd svnserve начинает слушать по дефолту IP6 а не древний IP4 :-)
-T — использовать threads.
-d — запуск демоном.

Оставьте свой комментарий

Markdown