Установка и настройка svnserve на роутере Asus WL-500gP
Заинтересовавшись использованием SVN при разработке, решил установить Subversion на свой
роутер дабы иметь доступ к своему репозиторию из любой точки мира, имеющей интернет.
Итак, установка.....
1. Ставим сам svn
2. Создаем директорию для репозитория и сам репозиторий
Code:
mkdir /opt/share/svn
svnadmin create /opt/share/svn/repos
ВАЖНО: Создавать директории внутри репозитория следует с помощью клиента (например TortoiseSVN),
подключившись под учетной записью админа. Папки, созданные через консоль командой mkdir, не будут
читаться сервером, авторизация пользователей, доступ которых разрешен к этой папке, будет провалена.
3. Проверить, установился ли репозиторий, можно командой
Code:
ls /opt/share/svn/repos
Команда должна вернуть следующую структуру:
Code:
conf/ dav/ db/ format hooks/ locks/ README.txt
4. Конфигурируем сервер svn
Code:
vi /opt/share/svn/repos/conf/svnserve.conf
Code:
[general]
#запрет на доступ анонимусам
anon-access = none
#право записи для авторизованных
auth-access = write
#файл с паролями
password-db = passwd
#файл с настройками прав доступа
authz-db = authz
#месага появляющаяся при обращении к репозитарию
realm = MEV Repository
5. Конфигурируем файл с правами доступа
Code:
vi /opt/share/svn/repos/conf/authz
Code:
[groups]
admins = mev
groupofproject1 = mev , test , test2
#к корню имеет доступ только члены группы админов
[/]
@admins = rw
* =
#к project1 имеет доступ группа groupofproject1 + админы
[/project1]
@groupofproject1 = rw
* =
6. Конфигурируем файл с паролями
Code:
vi /opt/share/svn/repos/conf/passwd
Code:
[users]
mev = secret
test = testsecret
test2 = test2secret
7. Добавляем правила для файерволла
Code:
[admin@mev root]$ cat /usr/local/sbin/post-firewall
#!/bin/sh
iptables -I INPUT -p tcp --dport 3690 -j ACCEPT
iptables -I INPUT -p udp --dport 3690 -j ACCEPT
8. Устанавливаем автозапуск при старте роутера.
Code:
[admin@mev root]$ cat /opt/etc/init.d/S66svn
#!/bin/sh
/opt/bin/svnserve -d -r /opt/share/svn/repos/
Строка подключения будет выглядеть так:
- для группы admins: svn://192.168.1.1/
- для группы groupofproject1: svn://192.168.1.1/project1
Вуаля, берем клиента для SVN, к примеру TortoiseSVN, и проверяем доступ к хранилищу.
Все будет работать!
Примечание: будьте осторожны при копировании - можете прихватить с собой тег.
23 апреля 2008 • Новости, Полезное http://chenado.net/61.html
Работает-))) Спасибо большое за помощь