Как стать автором
Поиск
Написать публикацию
Обновить

Ставим SVN на FreeBSD. Для чайников

Время на прочтение3 мин
Количество просмотров2.3K
все что тут будет написано для чайников, вроде меня, которые плохо еще разбираются в администрировании сервера, но хотят поставить себе SVN( вопрос зачем за гранью статьи). Все что тут написано есть на самом деле в хелпе svnbook.red-bean.com/nightly/ru/index.html

Первое, установка
Cтавить будем из портов, лежит оно тут $ cd /usr/ports/devel/subversion/
ставится это так: $ make вам откроется менюшка, в ней все смело можно отключать, особенно если вам не нужно веб представление файлов (хенд бук еще можно установить).
$ make install — и поставится.
можете проверить как встало: $ man svn

Второе, запуск демона
Для начала нам нужен пользователь, от имени которого мы будем запускать наш SVN сервер. Тут все просто:
$ adduser
Username: svn
Full name: subversion
Uid (Leave empty for default):
Login group [svn]: svn
Login group is svn. Invite svn into other groups? []:
Login class [default]:
Shell (sh csh tcsh date bash rbash nologin) [sh]: nologin
Home directory [/home/svn]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]: no
Lock out the account after creation? [no]: yes
Username   : svn
Password   : <disabled>
Full Name  : subversion
Uid        : 1002
Class      :
Groups     : svn
Home       : /home/svn
Home Mode  :
Shell      : /usr/sbin/nologin
Locked     : yes
OK? (yes/no): yes
pw: group `svn' does not exist
adduser: ERROR: There was an error adding user (svn).
Add another user? (yes/no): no
Goodbye!


теперь, когда пользователь создан, вы должны сконфигурировать скрипт запуска
в /usr/local/etc/rc.d будет скрипт svnserve его править не нужно там и так указано что все запускаться будет от имени пользователя svn, которого мы выше создали.
видно что там используются переменные, их нужно задать в /etc/rc.conf
добавим строки
svnserve_enable=«YES» # так он станет демоном
svnserve_data="/home/svn" # определяем домашний каталог
теперь пора запустить сервер
$ /usr/local/etc/rc.d/svnserve start
надеюсь я ничего не забыл сказать и у вас все запустилось!
запустился ли svn-сервер смотрим так:
$ ps -ax | grep svn

Для Debian
cd /etc/init.d/
touch svnserve
echo «sudo -u svn svnserve -d -r /home/svn/» >>svnserve
chmod +x svnserve
update-rc.d svnserve defaults
читай еще тут

третье, управление репозиторием.
(пологаю что у вас уже установлен TortoiseSVN tortoisesvn.net/downloads)
создание тестового репозитория $ svnadmin create /home/svn/test/
настроим пользователей SVN: /home/svn/test/conf/svnserve.conf в этом файле раскоментируем строки
anon-access=none # Не авторизованные не могут смотреть и вообще ничего делать
auth-access=write # Авторизованные смогут писать в свн репозиторий
password-db=passwd # так мы укажем в каком файле перечисляем пользователей репозитория.
Внимание: не допускайте паразитных пробелов — SVN не терпим к этому.
редактирование /home/svn/test/conf/svnserve.conf закончено.
теперь редактируем файл /home/svn/test/conf/passwd
пишем что-то вроде
user=password
все теперь наш SVN готов к использованию! в TortoiseSVN делаем checkout (правой кнопкой мыши на любой пустой папке куда хотите сделать выгрузку репозитория) на svn://yourdomain/test/ — обязательно указание репозитория.

Если вы все сделали верно, то у вас будет нечто на подобии:
Command: Commit
Deleting: W:\workFiles\test\
Completed: At revision: 1
в общем-то все теперь этим уже можно пользоваться дальше изучайте возможности TortoiseSVN.

при желании напишу о том, как нам сделать выгрузку файлов из репозитория в рабочую папку сервера и при этом дать им нужного владельца
если нада из под svn делать выгрузку данных то можно сделать так:
svn ALL=(web) NOPASSWD: ALL
чтобы при комите перезаписывать файлы принадлежащие группе (web)
/usr/bin/sudo -u user_name /usr/bin/svn update --username svn_user_name --password svn_user_password path/to/site/work/copy
Теги:
Хабы:
Всего голосов 9: ↑5 и ↓4+1
Комментарии5

Публикации

Ближайшие события