Установка и настройка svn сервера под linux

Нам потребуется установить svn сервер.

sudo apt-get install subversion libapache2-svn

Поясню:

  • subversion – svn сервер
  • libapache2-svn – библиотека, которая добавляет модуль апача для его интеграции с svn

 

И на всякий случай уточню, что sudo означает, что команда запускается с права root’а. Вы можете в консоли предвариетльно просто написать su, ввести пароль и потом выполнять эту и последующие аналогичные команды без приставки sudo.

Теперь добавляем нового пользователя и группу SVN

sudo groupadd svn

sudo useradd -m -d /srv/svn/ -g svn svn

Тут первой строкой мы создали группу svn. А второй строкой мы создали пользователя svn и сразу добавили его в группу svn. Поясню про флаги команды useradd:

  • -m -d /srv/svn – автоматическое создание домашнего каталога (флаг -m) и установка этого каталога как базового (-d) . В эту папку мы позже положим конфиги svn и репозитории так же будем тут размещать.
  • -g svn— добавить нового пользователя в группу svn
  • svn – имя пользователя

su – svn

mkdir /srv/svn/repositories/

mkdir /srv/svn/repositories/firstproject/

svnadmin create /srv/svn/repositories/firstproject/

Первой строкой мы перелогинились под пользователя svn. Затем создаём папку  repositories. В этой папке будут храниться наши репозитории. Далее создали папку для нашего первого проекта. И наконец командой svnadmin create /srv/svn/repositories/firstproject/ мы создаём новый пустой репозиторий для нашего проекта по указанному пути.

Теперь создаём конфиги для нашего SVN сервера.

su – svn

mkdir /srv/svn/conf/
cd /srv/svn/conf/
touch apache.conf

touch users-access-file

При помощи команды touch мы просто создаём новый пустой файл.

Теперь содержимое этих файлов:

/srv/svn/conf/apache.conf

<Location /svn/>

Allow from all

DAV svn

SVNParentPath /srv/svn/repositories/

# our access control policy

AuthzSVNAccessFile /srv/svn/conf/users-access-file

#try anonymous access first, resort to real

#authentication if necessary.

Satisfy Any

Require valid-user

# how to authenticate a user

AuthType Basic

AuthName «Subversion repository on yas-desktop»

AuthUserFile /srv/svn/conf/passwd

</Location>

Вкратце по директивам.

  • SVNParentPath /srv/svn/repositories/ – указываем путь к репозиториям
  • AuthzSVNAccessFile /srv/svn/conf/users-access-file – путь к файлу, в котором указывается какого пользователя к какому проекту и с какими правами пускать (ниже будет чуть подробнее)
  • AuthUserFile /srv/svn/conf/passwd – в этом  файле хранятся зашифрованные пароли пользователей. Этот файл мы чуть ниже создадим при помощи утилитки htpasswd.

/srv/svn/conf/users-access-file

[/]

* =

[firstproject:/]

yas = rw

Первыми двумя строками мы запрещаем доступ анонимам к репозиториям. Т.е. мы как быговорим: «всем (*) доступ к корню репозиториев ([/]) пустой (т.к. после знака равно мы ничего не указали. А если бы там было r, то это означает чтение; w – запись)».

А затем мы даём для пользователя yas доступ на чтение и запись к репозиторию.Подробнее про то, как можно задавать различные права для разных пользователей и как создавать для удобства группы пользователей читайте тут

Идём дальше. Чтобы пользователь yas получил туда доступ, ему будети предложено авторизоваться. Для этого надо установить для него пароль. А для этого мы создадим файл /srv/svn/passwd (мы указывали этот файл в apache.conf для авторизации) при помощи утилиты htpasswd

Создаём /srv/svn/conf/passwd

su svn

htpasswd -c -m /srv/svn/conf/passwd yas

по флагам:

  • -m – метод криптования будт использован MD5
  • -c – означает, что файл надо создать. Используйте этот флагш только для того, чтобы создать этот файл впервые. Далее для добавления пользхователей используйте команду

htpasswd -m /srv/svn/conf/passwd newusername

  • /srv/svn/conf/passwd – путь к файлу, куда сохранять пароль
  • yas – имя пользователя

После ввода этой команды вам будет предложено ввести два раза пароль для вашего пользователя.

Теперь нам надо, чтобы апач загрузил к себе наш конфиг apache.conf .   Для этого в конфиг apache (как правило этого/etc/apache2/httpd.conf) добавляем строчку

Include /srv/svn/conf/apache.conf

Теперь делаем reload для apache:

sudo /etc/init.d/apache2 reload

На этом всё. Если всё сделано правильно, то ваши репозитории будут доступны по адресу http://localhost/svn/имя_репозитория/   Например  http://localhost/svn/firstproject/ Ну и по сети соответственно ваши репозитории тоже могут быть доступны теперь.

Установка и настройка svn сервера под linux

5 мыслей о “Установка и настройка svn сервера под linux

  • 12.03.2024 в 20:46
    Permalink

    Wow, marvelous weblog format! How long have you ever been blogging for?
    you make running a blog glance easy. The total look of your website is
    magnificent, let alone the content! You can see similar here sklep internetowy

  • 14.03.2024 в 14:11
    Permalink

    Write more, thats all I have to say. Literally, it seems as though you relied on the video to make your
    point. You clearly know what youre talking about, why throw away your intelligence
    on just posting videos to your blog when you could be giving us something informative to read?
    I saw similar here: Sklep internetowy

  • 14.03.2024 в 22:50
    Permalink

    Great website. Plenty of helpful information here.

    I am sending it to a few buddies ans additionally sharing in delicious.
    And of course, thank you in your sweat! I saw similar here:
    Ecommerce

  • 28.03.2024 в 22:02
    Permalink

    Hey there! Do you know if they make any plugins to help with Search Engine
    Optimization? I’m trying to get my blog to rank for some
    targeted keywords but I’m not seeing very good gains.

    If you know of any please share. Appreciate it!
    You can read similar blog here: Sklep internetowy

  • 03.04.2024 в 18:59
    Permalink

    Hey! Do you know if they make any plugins to assist with SEO?
    I’m trying to get my blog to rank for some targeted keywords but I’m not seeing very good gains.
    If you know of any please share. Thanks! You can read similar blog here: Backlink Portfolio

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *