Создание репозитория Subversion в openSUSE
Здравствуйте, вижу у моего блога прибавилось постоянных читателей. А это значит, то, что я выкладываю на страницах своего блога кому-то интересно и это является дополнительным стимулом для меня. Постараюсь радовать вас интересными заметками как можно чаще. Сегодня хочу рассказать о создании репозитория с помощью системы управления версий subversion и о подводных камнях, которые могут вам встретиться.
Задача достаточно простая: поднять сервер, создать репозиторий и запретить анонимный доступ к нему, оставив возможность редактирования его для авторизованных пользователей. Для начала устанавливаем пакет subversion:
_empty@linux:~> sudo zypper install subversion
Весь процесс, на самом деле, занимает не больше 10ти минут, но для новичка он превращается в сущуую пытку. По умолчанию, в openSUSE 11.2 все репозитории находятся в /srv/svn/repos
1) Создадим новый репозиторий в папке repositories(я специально сменил папку repos на repositories, только для примера, чтобы не привыкали к дефолту):
_empty@linux:~> sudo svnadmin create /srv/svn/repositories/testrepo
В папке testrepo находятся стандартные файлы для каждого репозитория svn. Теперь, отредактируем конфигурационный файл в папке conf:
_empty@linux:~> sudo svnserve.conf
Можно смело все оттуда удалить, и вписать следующие строки:
[general]
anon-access = none
auth-access = write
password-db = passwd
Поясню поднобно: anon-access устанавливает возможность неавторизованных пользователей просматривать репозиторий, auth-access управляет доступом к репозиторию для зарегистрированных пользователей, где password-db - имя файла с логинами и паролями этих пользователей.
И так, теперь нам необходимо вписать юзеров в файл passwd:
[users]
user = pass
user1 = pass1
В этом файле опять же смело можете все удалять, добавьте туда только нужных вам пользователей в формате приведенном выше.
2) Для запуска сервера нам нужен непривелегированный пользователь. Назовем его svn. При установке у меня пользователь не создавался, значит создадим его самостоятельно(проверьте в /etc/passwd, возможно пользователь уже есть!):
_empty@linux:~> sudo groupadd svn
_empty@linux:~> sudo useradd -r -g svn
Теперь мы должы дать все права на нашу директорию /srv/svn/repositories:
_empty@linux:~> sudo chown -R svn:svn /srv/svn/repositories
3) И последний, самый важный этап - запуск svn сервера. Здесь следует особо обратить внимание на файл /etc/sysconfig/svnserve! В нем нам необходимо указать параметры запуска SVN сервера. Во-первых, надо прописать путь к root директории для svn, а во-вторых, в openSUSE по умолчанию сервер стартует с параметором -R(что ознает ReadOnly). Поэтому коммитить и добавлять файлы в ваши репозитории удаленно вы не сможете! Редактируем параметр SVNSERVE_OPTIONS в /etc/sysconfig/svnserve:
SVNSERVE_OPTIONS="-d -r /srv/svn/repositories"
Все, после этого наш сервер готов к запуску:
_empty@linux:~> sudo /etc/init.d/svnserve
Для проверки запускаем на другой машине, у вас должен быть примерно такой вывод(на вопрос хранить ли пароли в домашней папке я ответил no):
user@laptop:~> svn co svn://x.x.x.x/testrepo
Authentication realm:
Password for 'empty':
-----------------------------------------------------------------------
ATTENTION! Your password for authentication realm:
can only be stored to disk unencrypted! You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible. See the documentation for details.
You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
'/home/user/.subversion/servers'.
-----------------------------------------------------------------------
Store password unencrypted (yes/no)? no
Checked out revision 0.
Все,ваш сервер готов к работе, можете добавлять в него файлы, например, через kdesvn.
loading...
30.12.2009
· Сергей · 4 комментария (-ев)
Метки: openSuSE, subversion, Репозиторий · Рубрики: Linux/SuSE
4 комментария (-ев)
Очень занимательная статья, все описано коротко и ясно. Спасибо за статью.
Pavel - 23.07.2010
Люблю я SuSe. Все просто и без проблем.
Спасибо за статейку.
Vladimir - 20.09.2010
Спасибо!
Mike - 11.05.2011
Вообще ничего не понял, вот надо просто создать хранилище и репозиторий и работать с ними только через тортилу и сабвершин а описания нигде. Везде нужно 8 праграм и на сайтах региться. НУ в….