У меня есть ноутбук под управлением Ubuntu, который я хотел бы выполнять как сервер Subversion. Как для себя, так и для локально, а для других - дистанционно. Каковы шаги, необходимые для этого? Укажите следующие шаги:
Эти шаги могут включать любую комбинацию команд командной строки или GUI-приложений. Если вы можете, обратите внимание на то, где инструкции относятся к определенному дистрибутиву или версии, и где вместо этого может использоваться выбор пользователя определенного инструмента (например, nano вместо vi).
Шаги, которые я сделал, чтобы сделать мой ноутбук сервером Subversion. Кредит должен перейти на AlephZarro для его направлений здесь. Теперь у меня есть рабочий SVN-сервер (который в настоящее время только тестируется локально).
Конкретная настройка: Kubuntu 8.04 Hardy Heron
Требования к следующему руководству:
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.a. Для большего количества репозиториев: повторите шаг 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 + Alt + T, а затем введите следующую команду:
$sudo apt-get install subversion
Для Apache:
sudo apt-get -yq install apache2
Для SSH:
sudo apt-get -yq install openssh-server
Для Subversion:
sudo apt-get -yq install subversion subversion-tools
Если вы хотите объединить их в одну команду, например:
sudo apt-get -yq install apache2 openssh-server subversion subversion-tools
Я не могу помочь с остальными...