apt-get install subversion
Есть 4 метода запуска:
Демон
Запускаться будет от рута (увы, тут нет врапперов как у FreeBSD), плюс оно как сервис даже не заявлено.
Сервиса изначально также нет, его надо поставить через insserv и потом включить через update-rc.d
svn+ssh
Применимо только к файловому режиму работы, зато чуть проще с безопасностью. Но не так хорошо, как с gitolite, или надо писать обёртки.
"svn+ssh + command=/usr/bin/ssh в authorized_keys + ssh_keys :) + posix acl =
1) нет более безопасного варианта
2) только если не быть полным идиотом и делать ssh ключи без пароля
3) при posix acl — права можно настраивать как угодно
4) если вы нихрена в этом не понимаете — то более сложного варианта все настроить для вас не будет. Но знание сие крайне полезно бывает)
5) можно написать свой входной скрипт (а-ля bzr_access), проверять права уже там, при этом достигается сумасшедшая гибкость — хоть в бд права юзеров смотрите."
http://habrahabr.ru/post/51875/#comment_1377703
mod_dav_svn
Достаточно медленный вариант и ест много памяти, хотя весьма популярный.
"In a synthetic, non-representative benchmark test I performed using Subversion 1.4.5, Subversion 1.1.1 and Apache 2.0, mod_dav_svn's performance was 30% to 400% slower than svnserve's. svnserve's performance was close to local direct accesses to the repository using the svn command line tools."
http://stackoverflow.com/questions/502585/svnserve-vs-moddavsvn
inetd
Да, оно уже устарело, но пока это наиболее простой метод запуска не от рута.
# vi /etc/inetd.conf
и дописываем в конец
svn stream tcp nowait svn /usr/bin/svnserve svnserve -r /var/svn -i
Как вариант, после -r (где будет корень для всех реп) может быть /home/Repositories и другие варианты
Заводим пользователя
# useradd -m -u 900 svn
Тут можно сделать всякие shell=/bin/date...
Ну и перезапустим inetd
# /etc/init.d/openbsd-inetd restart
Теперь надо проверить, что нет ошибок
# tail /var/log/daemon.log
У меня была ошибка
inetd[5784]: svnserve/tcp: unknown service
потому что первым словом - название сервиса, которое должно быть в /etc/services.
Также советую постаавить subversion-tools
* svn-backup-dumps: Incremental dumpfile-based backup script * svn-bisect: Bisect revisions to find a regression * svn-clean: Remove unversioned files from a working copy * svn-fast-backup: rsync-based backup script for FSFS repositories * svn-hot-backup: Backup script, primarily for BDB repositories * svn_apply_autoprops: Apply property settings from .subversion/config file to an existing repository * svn_load_dirs: Sophisticated replacement for 'svn import' * svnwrap: Set umask to 002 before calling svn or svnserve * several example hook scripts: commit-access-control, commit-email, log-police, mailer, svnperms, verify-po
Возможно, будет еще дополнено.
Комментариев нет:
Отправить комментарий