Как настроить сервер Subversion (SVN) в GNU/Linux – Ubuntu [закрыто]

StackOverflow https://stackoverflow.com/questions/60736

  •  09-06-2019
  •  | 
  •  

Вопрос

У меня есть ноутбук под управлением Ubuntu, который я хотел бы использовать в качестве сервера Subversion.Как для себя, чтобы выполнять обязательства локально, так и для других удаленно.Какие шаги необходимы, чтобы это заработало?Пожалуйста, укажите шаги для:

  • Получите и настройте Apache и необходимые модули (я знаю, что есть и другие способы создания сервера SVN, но мне бы хотелось, чтобы он был специфичным для Apache)
  • Настройте безопасный способ доступа к серверу (SSH/HTTPS)
  • Настройте набор авторизованных пользователей (например, они должны быть авторизованы для фиксации, но могут свободно просматривать)
  • Подтвердите настройку с помощью первоначальной фиксации (своего рода «Hello world»)

Эти шаги могут включать в себя любое сочетание командной строки или инструкций приложения с графическим интерфейсом.Если можете, обратите внимание, где инструкции относятся к конкретному дистрибутиву или версии, а где вместо этого можно использовать конкретный инструмент по выбору пользователя (скажем, нано вместо ви).

Это было полезно?

Решение

Действия, которые я предпринял, чтобы превратить свой ноутбук в сервер Subversion.Кредит должен идти на АлефЗарро за его указания здесь.Теперь у меня есть работающий SVN-сервер (который в настоящее время тестируется только локально).

Конкретная настройка:Кубунту 8.04 Харди Херон

Требования для следования этому руководству:

  • программа-менеджер пакетов apt-get
  • текстовый редактор (я использую Kate)
  • права доступа sudo

1:Установите HTTP-сервер Apache и необходимые модули:

sudo apt-get install libapache2-svn apache2

Будут установлены следующие дополнительные пакеты:

apache2-mpm-worker apache2-utils apache2.2-common

2:Включить SSL

sudo a2enmod ssl
sudo kate /etc/apache2/ports.conf

Добавьте или проверьте, что в файле есть следующее:

<IfModule mod_ssl.c>
    Listen 443
</IfModule>

3:Создайте SSL-сертификат:

sudo apt-get install ssl-cert
sudo mkdir /etc/apache2/ssl
sudo /usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

4:Создать виртуальный хост

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/svnserver
sudo kate /etc/apache2/sites-available/svnserver

Изменение (вports.conf):

"NameVirtualHost *" to "NameVirtualHost *:443"

и (в svnserver)

<VirtualHost *> to <VirtualHost *:443>

Добавьте в разделе ServerAdmin (также в файле svnserver):

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLProtocol all
SSLCipherSuite HIGH:MEDIUM

5:Включите сайт:

sudo a2ensite svnserver
sudo /etc/init.d/apache2 restart

Чтобы обойти предупреждения:

sudo kate /etc/apache2/apache2.conf

Добавлять:

"ServerName $your_server_name"

6:Добавление репозитория(ей):Следующая настройка предполагает, что мы хотим разместить несколько репозиториев.Запустите это для создания первого репозитория:

sudo mkdir /var/svn

REPOS=myFirstRepo
sudo svnadmin create /var/svn/$REPOS
sudo chown -R www-data:www-data /var/svn/$REPOS
sudo chmod -R g+ws /var/svn/$REPOS

6.а.Дополнительные репозитории:повторите шаг 6 (изменяя значение REPOS), пропуская шаг mkdir /var/svn

7:Добавить аутентифицированного пользователя

sudo htpasswd -c -m /etc/apache2/dav_svn.passwd $user_name

8:Включите и настройте WebDAV и SVN:

sudo kate /etc/apache2/mods-available/dav_svn.conf

Добавьте или раскомментируйте:

<Location /svn>
DAV svn

# for multiple repositories - see comments in file
SVNParentPath /var/svn

AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
SSLRequireSSL
</Location>

9:Перезапустите сервер Apache:

sudo /etc/init.d/apache2 restart

10:Проверка:

Запустил браузер:

http://localhost/svn/$REPOS
https://localhost/svn/$REPOS

Оба требовали имя пользователя и пароль.Думаю раскомментировать:

<LimitExcept GET PROPFIND OPTIONS REPORT>

</LimitExcept>

в /etc/apache2/mods-available/dav_svn.conf, позволит анонимный просмотр.

В браузере отображается «Редакция 0:/"

Совершите что-нибудь:

svn import --username $user_name anyfile.txt https://localhost/svn/$REPOS/anyfile.txt -m “Testing”

Примите сертификат и введите пароль.Посмотрите, что вы только что совершили:

svn co --username $user_name https://localhost/svn/$REPOS

После этих шагов (при условии, что я не допустил ошибок при копировании/вставке), у меня на ноутбуке появился рабочий репозиторий SVN.

Другие советы

После этого мне нужно было выполнить (в контексте приведенного выше примера)

$ sudo chmod g+w /var/svn/$REPOS/db/rep-cache.db

$ sudo chown www-data:www-data /var/svn/$REPOS/db/rep-cache.db

В противном случае я продолжал получать ошибку 409 при совершении локальных изменений (хотя обязательства были эффективными на стороне сервера, мне нужно было следить за локальными обновлениями)

Эта статья кажется, дает довольно хорошее изложение всего процесса.Я бы рекомендовал следовать инструкциям, а затем задавать более конкретные вопросы о любых проблемах, с которыми вы столкнулись, которые не рассматриваются в статьях, на которые я и другие люди ссылались в этих ответах.

Если при входе на веб-сервер вы получаете ошибку 403, это может быть связано с тем, что вы использовали имя хоста, отличное от того, которое вы указали в файле конфигурации (т. е. localhost или 127.0.0.1).Попробуйте нажать https://whateveryousetasyourhostname вместо...

Пожалуйста, напишите одну команду на терминале.

Чтобы открыть терминал, нажмите Ctrl + Альтернативный вариант + Т, а затем введите следующую команду:

$sudo apt-get install subversion

Для Апача:

sudo apt-get -yq install apache2

Для SSH:

sudo apt-get -yq install openssh-server

Для субверсии:

sudo apt-get -yq install subversion subversion-tools

Если хотите, вы можете объединить их в одну команду, например:

sudo apt-get -yq install apache2 openssh-server subversion subversion-tools

С остальным помочь не могу...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top