Cómo configurar un servidor Subversion (SVN) en GNU / Linux – Ubuntu

Tengo una laptop con Ubuntu que me gustaría actuar como servidor de Subversion. Tanto para mí como para comprometerme localmente, y para otros remotamente. ¿Cuáles son los pasos necesarios para que esto funcione? Por favor incluye los pasos para:

  • Obtenga y configure Apache, y los módulos necesarios (sé que hay otras formas de crear un servidor SVN, pero me gustaría que fuera específico de Apache)
  • Configure una forma segura de acceder al servidor (SSH / HTTPS)
  • Configure un conjunto de usuarios autorizados (como en, deben estar autorizados para confirmar, pero pueden navegar libremente)
  • Valide la configuración con una confirmación inicial (un “Hola mundo” de clases)

Estos pasos pueden incluir cualquier combinación de instrucciones de la línea de comando o de la aplicación GUI. Si puede, tenga en cuenta dónde las instrucciones son específicas para una distribución o versión particular, y dónde se puede usar la elección de un usuario de una herramienta en particular en su lugar (digamos, nano en lugar de vi ).

Pasos que he tomado para hacer que mi computadora portátil sea un servidor de Subversion. El crédito debe ir a AlephZarro por sus instrucciones aquí . Ahora tengo un servidor SVN en funcionamiento (que actualmente solo se ha probado localmente).

Configuración específica: Kubuntu 8.04 Hardy Heron

Requisitos para seguir esta guía:

  • progtwig apt-get package manager
  • editor de texto (yo uso kate)
  • derechos de acceso de sudo

1: Instalar el servidor Apache HTTP y los módulos requeridos:

sudo apt-get install libapache2-svn apache2 

Se instalarán los siguientes paquetes adicionales:

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

2: Habilite SSL

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

Agregue o verifique que lo siguiente está en el archivo:

  Listen 443  

3: generar un certificado 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: crear un host virtual

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

Cambiar (en ports.conf):

 "NameVirtualHost *" to "NameVirtualHost *:443" 

y (en svnserver)

  to  

Agregar, en ServerAdmin (también en el archivo svnserver):

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

5: habilitar el sitio:

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

Para superar las advertencias:

 sudo kate /etc/apache2/apache2.conf 

Añadir:

 "ServerName $your_server_name" 

6: Agregar repository (es): La siguiente configuración asume que queremos alojar múltiples repositorys. Ejecute esto para crear el primer repository:

 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. Para más repositorys: haga el paso 6 otra vez (cambiando el valor de REPOS), omitiendo el paso mkdir /var/svn

7: agregar un usuario autenticado

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

8: habilitar y configurar WebDAV y SVN:

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

Agregar o descomentar:

  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  

9: reinicie el servidor apache:

 sudo /etc/init.d/apache2 restart 

10: Validación:

Encendió un navegador:

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

Ambos requieren un nombre de usuario y contraseña. Creo que no hay comentario

   

en /etc/apache2/mods-available/dav_svn.conf , permitiría la navegación anónima.

El navegador muestra “Revisión 0: /”

Cometer algo:

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

Acepte el certificado e ingrese la contraseña. Mira lo que acabas de cometer:

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

Siguiendo estos pasos (asumiendo que no he hecho ningún error al copiar / pegar), tenía un repository SVN en funcionamiento en mi computadora portátil.

Después, necesité ejecutar (dentro del contexto del ejemplo citado arriba)

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

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

De lo contrario, seguí recibiendo un error 409 al realizar modificaciones locales (aunque los compromisos eran eficaces desde el punto de vista del servidor, necesitaba hacer un seguimiento con las actualizaciones locales)

Este artículo parece dar un resumen bastante bueno de todo el proceso. Recomendaría seguir las instrucciones y luego publicar algunas preguntas más específicas sobre cualquier problema que encuentre y que no se aborden en los artículos que yo y otras personas hemos vinculado en estas respuestas.

Si obtienes 403 prohibido cuando accedes al servidor web, puede deberse a que utilizaste un nombre de host que no es el que especificaste en tu archivo de configuración (es decir, localhost o 127.0.0.1). Intenta golpear https: // whateveryousetasyourhostname en su lugar …

Por favor escribe un solo comando en la terminal.

Para abrir la terminal, presione Ctrl + Alt + T , y luego escriba este comando:

 $sudo apt-get install subversion 

Para Apache:

 sudo apt-get -yq install apache2 

Para SSH:

 sudo apt-get -yq install openssh-server 

Para Subversion:

 sudo apt-get -yq install subversion subversion-tools 

Si desea, puede combinarlos en un comando como:

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

No puedo ayudar con el rest …