2008-09-13 7 views
94

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, incluya medidas para:Cómo configurar un servidor de Subversion (SVN) en GNU/Linux - Ubuntu

  • Obtener y configurar Apache, y los módulos necesarios (Sé que hay otras maneras de crear un servidor SVN, pero me gustaría que específica de Apache)
  • Configurar una forma segura de acceder el servidor (SSH/HTTPS)
  • Configurar un conjunto de usuarios autorizados (como en, que debe autorizarse a cometer, pero son libres de navegar)
  • Validar la configuración con una inicial cometen (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 (por ejemplo, nano en lugar de vi).

+0

¿Puedo utilizar el servidor de Subversion en Ubuntu, y los clientes en cualquier plataforma? como el cliente Tortoise SVN en Windows? –

Respuesta

140

Pasos que he tomado para convertir mi computadora portátil en un servidor de Subversion. El crédito debe ir al AlephZarro para sus instrucciones here. 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:

  • conseguir apt-programa gestor de paquetes
  • editor
  • texto (utilizo Kate)
  • derechos de acceso sudo

1: Instalar Servidor Apache HTTP y módulos necesarios:

sudo apt-get install libapache2-svn apache2 
Se instalarán

los siguientes paquetes extras:

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

2: Habilitar SSL

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

Agregar o comprobar que la siguiente es en el archivo:

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

3: Generar una 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 máquina virtual

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

Variaciones (en ports.conf):

"NameVirtualHost *" to "NameVirtualHost *:443" 

y (en svnserver)

<VirtualHost *> to <VirtualHost *:443> 

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

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 advertencias:

sudo kate /etc/apache2/apache2.conf 

Añadir:

"ServerName $your_server_name" 

6: Adición del repositorio (s): La siguiente configuración asume que queremos alojar múltiples repositorios. Ejecutar este para crear el primer repositorio:

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 repositorios: hacer el paso 6 de nuevo (cambiando el valor de REPOS), omitiendo la etapa de mkdir /var/svn

7: Añadir 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 elimine el comentario:

<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: Reiniciar servidor Apache:

sudo /etc/init.d/apache2 restart 

10: Validación:

puso en marcha un navegador:

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

Tanto requiere un nombre de usuario y contraseña. Creo descomentando:

<LimitExcept GET PROPFIND OPTIONS REPORT> 

</LimitExcept> 

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

El navegador muestra "Revisión 0: /"

Commit algo:

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

aceptar el certificado e introduzca la contraseña. En cuanto a lo que acaba de comprometido:

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

Después de estos pasos (suponiendo que no he hecho ninguna copia de error/pegar), que tenía un repositorio SVN trabajando en mi ordenador portátil.

+0

Las instrucciones también funcionaron perfectamente en Jaunty. ¡Gracias! –

+6

Parece que funciona perfectamente, pero me sale un 403 prohibido al intentar acceder a él, y no se solicita una contraseña. ¿Algún indicio de lo que podría estar mal? – korona

+0

@korona: Accediendo a él de qué manera: ¿ejecutando comandos SVN o navegando hacia él? – Grundlefleck

-3

Para Apache:

sudo apt-get -yq install apache2 

Para SSH:

sudo apt-get -yq install openssh-server 

para la subversión:

sudo apt-get -yq install subversion subversion-tools 

Si desea puede combinar estos en un solo comando como:

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

No puedo ayudar con el resto ...

1

This article parece dar un muy buen resumen 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.

1

Si obtiene 403 prohibido cuando acceda al servidor web puede deberse a que utilizó un nombre de host que no es el especificado en su archivo de configuración (es decir, localhost o 127.0.0.1). Intentar golpear https://whateveryousetasyourhostname lugar ...

+0

Otra causa 403: establecer la ruta svn a un enlace simbólico. Si su ruta svn es un enlace simbólico, tendrá que permitir los siguientes enlaces simbólicos. – copolii

2

Después, que necesitaba para ejecutar (en el contexto del ejemplo citado anteriormente)

$ 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, mantuvo recibir un error 409 al cometer modificaciones locales (aunque el los compromisos eran efectivos desde el lado del servidor, necesitaba hacer un seguimiento con las actualizaciones locales)

-3

Por favor, escriba un solo comando en el terminal.

Para abrir el terminal por favor presione Ctrl + Alt +T, y luego escriba este comando:

$sudo apt-get install subversion 
Cuestiones relacionadas