Svn server linux настройка

Обновлено: 04.07.2024

Другие же, как и я, решают хостить SVN на своём VDS / Dedicated сервере. На этом вопросе я и остановлюсь, рассказав заодно немного о вариантах запуска/настройки svn сервера (в том числе относительно новых — шифрование/аутентификация SASL и хранение в FS). Выльеться все это вам в 3-4$/месяц, в полный контроль за бэкапами и доступом к серверу. Пожертвовать придется 30 минут драгоценного времени на настройку.

Целевая аудитория: начальный — средний уровень опыта работы с Linux.
PS. Я в курсе что FreeBSD is not Linux ;-)

  • Apache+SVN. Пока самый популярный.
  • svnserve. Самый быстрый, но нужен минимум VPS сервер.
  • Без шифрования. Только в корпоративных сетях.
  • SSL: Шифрование уже «по старинке» — только в связке с Apache.
  • SASL: Новый способ, включенный в svnserve. Для работы нужен клиент версии 1.5.3 и выше. За последней фразой скрывается 4 часа отчаяния :-)
  • Список пользователей с открытыми паролями в passwd(самый простой способ).
  • Защищенная проверка через SASL: DIGEST-MD5(пароли в открытом виде не идут).
  • Туннель svn+ssh: пользователи логиняться под своими Linux аккаунтами.
  • Можно прикручивать любые другие способы, в том числе и обычную БД.
  • Berkley DB — старый(проверенный временем) и надежный способ.
  • FileSystem — новый, можно делать бэкапы «на лету»
    Собираем/ставим svnserve. Нужно включить поддержку SASL, все остальное не нужно.

/name/conf, и в svnserve.conf пишем

[general]
anon-access = none
auth-access = write
realm your_server_realm
[sasl]
use-sasl = true
min-encryption = 128
max-encryption = 256
saslpasswd2 -c -f sasldb -u your_server_realm new_user_name
pwcheck_method: auxprop
auxprop_plugin: sasldb
sasldb_path: /your_path_to/sasldb
mech_list: DIGEST-MD5
Name: SVN
Mode: Standalone
Process name: svnserve.bin
Start command: /usr/local/etc/rc.d/svnserve start
Stop command: /usr/local/etc/rc.d/svnserve start
System name: svn
Type: Unknown service
Autostart: Yes
Minotoring: No

Загрузка сервера выглядит примерно так:

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

Надеюсь, мои потраченные 8 часов на разбивание лба обо все незаметные камушки на этом пути помогут хабралюдям получить ценный опыт администрирования SVN сервера :-). Удачных вам бэкапов и коммитов без конфликтов:-)

Subversion - это система контроля версий с открытым кодом. Используя Subversion вы можете записывать историю исходных файлов и документов. Она управляет файлами и каталогами во времени. Дерево файлов располагается в центральном хранилище. Хранилище больше похоже на обычный файл-сервер, за исключением того, что он помнит каждое изменение когда-либо сделанное в файлах или каталогах.

Установка

Для установки Subversion выполните следующую команду в терминале:

Настройка сервера

Этот шаг подразумевает, что вы уже установили упоминавшиеся выше пакеты на вашей системе. В этом разделе описывается как создать хранилище Subversion и получить доступ к проекту.

Создание хранилища Subversion

Хранилище Subversion может быть создано с помощью следующей команды в терминале:

Импортирование файлов

После того, как вы установили хранилище, вы можете импортировать в него файлы. Для импорта каталога, ведите следующее в терминале:

Методы доступа

Хранилище Subversion может быть доступно множеством различных способов - на локальном диске или через различные сетевые протоколы. Однако, размещение хранилища - это всегда url адрес. Таблица описывает как различные URL схемы связаны с возможными методами доступа.

Методы доступа

В этом разделе мы рассмотрим как настроить Subversion для всех этих методов доступа. Здесь мы рассмотрим основное. Для более продвинутого использования, обратитесь к книге svn book.

Прямой доступ к хранилищу (file://)

Это самый простой из всех методов доступа. Он не требует запуска какого-либо сервера Subversion. Этот метод используется для доступа к Subversion на этой же машине. Синтаксис команды, вводимой в терминале, аналогичен следующему:

Если вы не указываете сетевое имя, требуется три прямых слеша в начале адреса (///) - два для обозначения протокола (в данном случае - file), плюс лидирующий слеш базового каталога. Если вы указываете сетевое имя, вы должны указать два слеша (//).

Права доступа к хранилищу определяются правами файловой системы. Если пользователь имеет право на чтение/запись, он может получить содержимое хранилища и внести изменения.

Для доступа к хранилищу Subversion через протокол WebDAV вам потребуется настроить сервер Apache2. Добавьте следующий фрагмент между элементами <VirtualHost> и </VirtualHost> в /etc/apache2/sites-available/default или иной VirtualHost файл:

Изменяя владельца хранилища на www-data вы не позволите импортировать или фиксировать файлы внутри хранилища командой svn import file:/// любому пользователю кроме www-data.

Далее вы должны создать файл /etc/subversion/passwd, который будет содержать подробности аутентификации пользователей. Для создания файла используйте следующую команду в командной строке (которая создаст файл и добавит первого пользователя):

Чтобы добавить дополнительных пользователей, опустите опцию "-c", поскольку она заменяет старый файл. Вместо этого используйте такой вариант:

Эта команда запросит у вас ввод пароля. Как только вы введете пароль, пользователь будет добавлен. Теперь для доступа к хранилищу вы можете выполнить следующую команду:

Пароль передается открытым текстом. Если вы беспокоитесь о перехвате пароля, в стоит использовать шифрование SSL . Детали смотрите в следующей части.

Вы можете установить цифровой сертификат, выпущенный центром сертификации. В качестве альтернативы можно использовать самоподписанный сертификат.

Доступ через собственный протокол (svn://)

Как только создано хранилище Subversion, вы можете настроить контроль доступа. Вы можете отредактировать файл /path/to/repos/project/conf/svnserve.conf для изменения контроля доступа. Например, для установки авторизации вы можете раскомментировать следующие строки в файле конфигурации:

Более подробно смотрите комментарии в самом файле.

Теперь, чтобы подключиться к Subversion через собственный протокол svn://, с этой же машины или другой, вы можете запустить svnserver с помощью команды svnserve. Синтаксис следующий:

Больше деталей по использованию можно посмотреть, выполнив команду:

Как только вы выполните указанную команду, Subversion запустится на порту по умолчанию (3690). Для доступа к хранилищу проектов вам потребуется выполнить следующую команду из терминала:

Основываясь на конфигурации сервера, у вас будет запрошен пароль. После аутентификации будет проверен код из хранилища Subversion. Для синхронизации проекта из хранилища с локальной копией вам потребуется выполнить подкоманду update. Синтаксис команды, вводимой в терминале следующий:

Для подробной информации о каждой подкоманде Subversion вы можете обратиться к встроенному руководству. Например, чтобы узнать больше о команде co (checkout) выполните следующую команду в терминале:

Доступ по собственному протоколу с SSL шифрованием (svn+ssh://)

Настройка и работа сервера такая же, как при svn:// методе. Детали описаны в предыдущей части.Этот шаг предполагает, что вы следовали инструкциям предыдущей части и запустили сервер Subversion с помощью команды svnserve.

Также предполагается, что у вас на машине запущен сервер ssh и он разрешает входящие соединения. Для проверки, пожалуйста, попробуйте войти на машину с использованием ssh. Если вам удалось соединиться, все замечательно. Если соединиться не получилось, обратитесь к данной проблеме, прежде чем следовать дальше.

Вы должны использовать полный путь (/path/to/repos/project) для доступа к хранилищу Subversion при этом методе подключения.

Основываясь на настройках сервера, будет запрошен пароль. Вы должны будете ввести пароль, который используете при доступе через ssh. После аутентификации команда проверит код из хранилища Subversion.


Сервер Apache широко используется для работы серверов и сайтов в Интернете. Если у вас есть распределенный сервер, на котором многие администраторы работают вместе над одним проектом, вы, вероятно, столкнетесь с проблемами при ведении записей о том, кто внес изменения на сервере. А вот и сервер Apache SVN, который вы можете установить на свой Linux-компьютер, чтобы вести журнал активности и изменений вашего сервера. Он может поддерживать данные для входа в систему, данные документации, исходный код и другие версии.

Система Subversion Apache позволяет пользователям и участникам вносить изменения, добавлять функции, пересматривать и модифицировать репозиторий с сохранением записей об изменениях. Вы также можете создавать резервные копии, восстанавливать, переопределять, обновлять репозиторий и удалять версии с помощью инструмента Apache SVN.

Сервер Apache SVN в Linux

Поскольку Linux работает, большинство мировых серверов, использующих Apache Subversion (SVN) в Linux, может помочь вам вести учет разработки вашего программного обеспечения, изменений и исправлений метаданных. Apache SVN является бесплатным и открытым исходным кодом под лицензией Apache. Используя систему SVN, вы можете получить собственный репозиторий для хранения, мониторинга и внесения изменений в вашу серверную систему. Apache SVN совместим как с Linux, так и с Windows. Даже это позволяет вам удаленно управлять своим сервером или сервером вашего клиента. Здесь мы увидим, как установить и начать работу с Apache SVN в системе Linux.

1. Установите сервер Apache SVN в Debian / Ubuntu Linux.

Для установки Apache SVN в Debian / Ubuntu Linux требуются права root и базовые знания команд терминала Linux. Подрывная версия Apache доступна в официальном репозитории Linux. Этот метод поможет вам установить и настроить подрывную версию Apache в системе Debian.

Шаг 1. Установите Apache в Ubuntu / Debian

Поскольку мы собираемся установить Apache SVN под сервером Apache, убедитесь, что в вашей системе установлен сервер Apache. Если у вас его нет, вы можете запустить следующие команды в оболочке терминала, чтобы установить сервер Apache PHP. Вначале вам может потребоваться обновить репозиторий Linux.


Шаг 2: Установите SVN Server в Ubuntu / Debian

Когда сервер PHP готов, вы можете запустить следующую команду aptitude в оболочке терминала, чтобы установить подрывную версию Apache и несколько библиотечных функций в вашей системе. Я должен отметить, что следующая команда обновит ваши существующие серверные модули PHP, MySQL, XML и другие службы LAMP. Если в вашей системе установлен Postfix, он также может обновить Postfix.


По завершении установки Apache SVN выполните следующие команды в оболочке терминала, чтобы включить и перезапустить подрывную версию в вашей системе Linux.

Шаг 3. Создайте репозиторий SVN в Linux

После установки Apache SVN и включения его в вашей системе вы можете создать новый каталог для хранения файлов журнала Subversion и файлов входа в систему. Выполните следующую команду mkdir и команды svnadmin в оболочке терминала, чтобы создать новый каталог репозитория.

Теперь, чтобы избежать ошибок прав доступа, выполните следующие команды chown в своей оболочке Linux.


Шаг 4: Создайте пользователей для Subversion

Поскольку Apache SVN записывает файлы журналов и секретные документы, вам необходимо создать учетную запись администратора для входа в систему Apache SVN. Сначала запустите следующую сенсорную команду в оболочке терминала, чтобы создать файл журнала паролей. Затем запустите команду htpasswd, чтобы сохранить учетные данные пользователя и пароль.

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

После создания репозитория и добавления пользователя-администратора теперь вы можете настроить параметры Apache SVN в своей системе Linux. Вы можете запустить следующую команду в оболочке терминала, чтобы отредактировать файл dav_svn.conf.

После открытия файла убедитесь, что ваш сценарий конфигурации содержит следующие строки, как показано ниже. Приведенный ниже сценарий содержит путь к SVN, расположение репозитория и учетные данные пользователя.


После редактирования сценария конфигурации SVN сохраните файл и выйдите из него. Затем перезапустите службы Apache на вашем компьютере с Linux.

2. Установите Apache SVN в Red Hat / Fedora Linux.

Если у вас есть рабочая станция Fedora, вы можете установить Apache SVN в своей системе для мониторинга и изменения репозитория вашего сервера. Это не сильно отличается от установки SVN в системе Debian. Здесь я расскажу, как установить и настроить Apache Subversion в Fedora или другой системе Linux на базе Red Hat.

Шаг 1. Установка SVN на рабочую станцию ​​Fedora


Теперь, если в вашей системе установлен Linux с усиленной безопасностью, вам может потребоваться отключить его для установки службы SVN. Вы можете запустить следующую команду в оболочке терминала, чтобы открыть сценарий SELINUX.

Когда скрипт откроется, найдите следующий синтаксис SELINUX и отключите значение. Затем сохраните и выйдите из файла.

После обновления и редактирования сценария SELINUX теперь вы можете запустить следующую команду YUM в оболочке терминала, чтобы установить сервер Apache SVN на Fedora Linux.


Шаг 2: Создайте и настройте репозиторий SVN

После установки сервера SVN вам может потребоваться создать репозиторий для службы Subversion. Вы можете выполнить следующие команды соответственно в оболочке вашего терминала, чтобы создать каталог SVN, создать репозиторий в вашей файловой системе.

После создания репозитория SVN запустите приведенную ниже команду chown, чтобы предоставить ему права root.

Шаг 3: Создание администратора для сервера SVN

Чтобы создать учетную запись администратора для сервера SVN, вы можете запустить следующую команду в оболочке терминала с привилегиями root. Команда попросит вас ввести новый пароль для учетной записи. Вы можете записать имя пользователя и пароль для использования в будущем.


Шаг 4: Настройте сервер Subversion в Fedora

После установки сервера SVN и добавления пользователя с правами администратора вы можете запустить следующую команду для редактирования файла конфигурации SVN в Fedora / Red Hat Linux.

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

Начало работы с Apache SVN Server

До сих пор мы видели процедуру установки и настройки Apache SVN в системах Debian и Fedora Linux. Пришло время протестировать систему Subversion в нашей системе. Чтобы загрузить «Репозиторий Subversion». Чтобы загрузить SVN в свой браузер, введите IP-адрес своего сервера и добавьте / svn / repo2 /, затем нажмите кнопку Enter.


Когда репозиторий Subversion загрузится, он запросит ваше имя пользователя и пароль. Введите ваше имя пользователя и пароль, которые мы создали ранее, для входа на ваш сервер SVN. После успешного входа в систему вы увидите сервер SVN в своем веб-браузере.


Выводы

Изначально Apache SVN был разработан для разработчиков программного обеспечения, но вы можете использовать его в личных целях. Во всем посте я описал методы установки, настройки и начала работы сервера Apache SVN в системе Linux. Если вы думаете об использовании Subversion с сервером Nginx, в этом случае я должен сказать, что вы все еще можете не найти никаких способов использовать SVN с Nginx без установки Apache в той же системе.

Favorite

Добавить в избранное (2 оценок, среднее: 3,00 из 5)

Начало работы с SVN на Linux

Во- первых, установим SVN на Linux

Для того чтобы установить SVN, необходимо подключиться к Linux VPS через SSH.

Если вы используете Ubuntu, обновите пакеты ОС и установите SVN на сервере, используя следующие команды:

Если вы используете CentOS, вы можете использовать следующую команду для обновления пакетов ОС и установки SVN:

Чтобы проверить версию SVN, установленной на вашем сервере, используйте следующую команду:

Создайте учетную запись пользователя системы и переключитесь на этого пользователя:

Создайте новый каталог для ваших файлов проекта/приложений/веб-сайта:

Создайте хранилище SVN с помощью следующей команды:

Установите соответствующие права доступа к файлам. Распределения на основе Debian, выполните следующую команду:

О распределении RPM на основе (при использовании Apache в качестве веб-сервера), выполните следующую команду:

Создайте файл ‘passwd’ в каталоге /home/someuser/svn/myapp/conf/passwd на сервере, который содержит информацию о аутентификации пользователя:

Назначение разрешений для пользователей SVN с помощью файла authz (/home/someuser/svn/myapp/conf/authz):

Создание концептуальных групп, которые вам нужны, а затем добавить к нему пользователей:

Выберите уровень доступа с обоих разрешений и уровня проекта:

Для того, чтобы скопировать неверсионное дерево вашего проекта/файлов веб-сайта и начать отслеживать в вашем хранилище SVN и создать промежуточные каталоги, введите следующие команды:

Используйте команду ‘svn add /path/file’, чтобы добавить файл из рабочей копии в хранилище). Файл будет добавлен в хранилище, когда вы делаете commit SVN.

Чтобы удалить файл из рабочей копии (или хранилище), используйте:

и файл будет удален из хранилища после команды svn commit.

Чтобы обновить изменения из хранилища в рабочую копию, используйте:

При наличии нескольких авторов, работающих над проектом/веб-сайтом, они имеют локальные рабочие копии на нескольких машинах, всегда запускайте команду ‘svn update’ перед внесением изменений в файлы, доступные в вашей рабочей копии. После этого, вносите изменения в файлы, а затем зафиксируйте изменения в хранилище после того, как только файлы будут изменены.

Для того чтобы применить различия между двумя источниками на пути в рабочей копии, используйте:

Для того, чтобы увидеть различия между этими двумя конкретными версиями файла, используйте:

Начало работы с SVN на Linux

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Читайте также: