Apache Subversion también se conoce como SVN, es un programa de control de versiones y revisiones de código abierto que ayuda a almacenar las versiones de archivos históricas presentes y pasadas, como documentos, códigos fuente y páginas web. SVN viene bajo licencia Apache.
En este tutorial, aprenderemos cómo instalar y configurar SVN en RHEL 8 y Rocky Linux 8. Aquí, los usuarios autenticados podrán realizar operaciones de registro y salida en el repositorio de SVN.
Paso 1) Instalar SVN y Apache
Los paquetes SVN y Apache (http) están disponibles en los repositorios de paquetes predeterminados de RHEL 8 y Rocky Linux 8. Ejecute el siguiente comando dnf para instalar los paquetes necesarios.
$ sudo dnf install -y httpd subversion mod_dav_svn
Paso 2) Edite el archivo de configuración de Apache Subversion
Cree un archivo ‘/etc/httpd/conf.d/subversion.conf’ y agréguele las siguientes líneas.
$ sudo vi /etc/httpd/conf.d/subversion.conf <Location /svn> DAV svn SVNParentPath /var/www/svn/ AuthType Basic AuthName "SVN Repository" AuthUserFile /etc/svn/svn-auth-accounts Require valid-user </Location>
La configuración anterior permitirá que solo los usuarios autenticados usen el repositorio SVN.
Paso 3) Crear usuarios SVN a través del comando htpasswd
Ejecute el siguiente comando para crear un usuario para SVN a través del comando htpasswd,
$ sudo htpasswd -cm /etc/svn-auth-accounts linuxtechi New password: Re-type new password: Adding password for user linuxtechi $
En el comando htpasswd anterior hemos usado ‘-c’ & ‘-metro’ opciones -c se usa para crear el archivo de contraseñas (/etc/svn-auth-accounts) y -m se usa para crear una contraseña de cifrado MD5 para el usuario. Para crear un segundo usuario, elimine la ‘-c’ del comando anterior; de lo contrario, sobrescribirá el archivo existente.
$ sudo htpasswd -m /etc/svn-auth-accounts pkumar New password: Re-type new password: Adding password for user pkumar $
Paso 4) Crear repositorio SVN
Ejecute los siguientes comandos uno tras otro para crear su primer repositorio svn y establecer los permisos necesarios,
$ sudo mkdir /var/www/svn $ cd /var/www/svn/ $ sudo svnadmin create repo $ sudo chown apache.apache repo/
Nota: En caso de que SELinux esté habilitado, aplique las siguientes reglas de selinux ejecutando,
$ sudo chcon -R -t httpd_sys_content_t /var/www/svn/repo/ $ sudo chcon -R -t httpd_sys_rw_content_t /var/www/svn/repo/
Paso 5) Inicie y habilite el servicio Apache
Ejecute los siguientes comandos systemctl para iniciar y habilitar el servicio del servidor web apache.
$ sudo systemctl start httpd $ sudo systemctl enable httpd
En caso de que el firewall esté habilitado en su sistema, permita el siguiente puerto ejecutando,
$ sudo firewall-cmd --permanent --zone=public --add-service=http $ sudo firewall-cmd --permanent --zone=public --add-service=https $ sudo firewall-cmd --reload
Paso 6) Acceda a SVN Repo desde el navegador web
Escriba la siguiente URL en su navegador web,
http://
En el navegador, simplemente reemplace la dirección IP con la IP de su servidor SVN
Paso 7) Deshabilite el acceso anónimo en el Repositorio SVN
Edite el archivo: /var/www/svn/repo/conf/svnserve.conf, agregue las dos líneas a continuación
## Disable Anonymous Access anon-access = none ## Enable Access control authz-db = authz
Paso 8) Importar el contenido del directorio del proyecto al repositorio SVN
Vamos a crear nuestro primer directorio de proyecto de muestra y su archivo.
$ mkdir devops $ cd devops/ $ touch testfile_1 ; touch testfile_2 $
Ahora use el comando SVN para importar el proyecto ‘devops’ al repositorio. Como hemos creado un proyecto de muestra ‘devops’ en el propio servidor svn. Así que ejecuta el siguiente comando svn,
$ sudo svn import -m "First SVN Repo" devops file:///var/www/svn/repo/devops Adding devops/testfile_1 Adding devops/testfile_2 Committing transaction... Committed revision 1. $
Ahora verifique desde el navegador
Paso 9) Echa un vistazo al proyecto
En mi caso, quiero verificar el proyecto devops en mi computadora portátil Ubuntu usando el comando SVN. Entonces, para realizar operaciones de pago, asegúrese de que su sistema tenga instalado el paquete subversion, si no, use el comando «sudo apt install -y subversion» para instalar el paquete requerido.
$ mkdir svn_data $ svn co http://192.168.1.180/svn/repo/devops/ /home/pkumar/svn_data/ --username linuxtechi A svn_data/testfile_1 A svn_data/testfile_2 Checked out revision 1. $
Paso 10) Confirmar cambios
Después de realizar los cambios necesarios en el código del proyecto, podemos confirmar los cambios en los repositorios SVN. En mi caso, he creado un archivo más en la carpeta linuxproject.
$ cd svn_data/ $ touch testfile_3 $ svn add testfile_3 --username linuxtechi A testfile_3 $ $ svn commit -m "New File addedd" --username linuxtechi Adding testfile_3 Transmitting file data . Committed revision 2. $
Nota: al realizar los cambios si obtiene el siguiente error
svn: E000013: Error de confirmación (los detalles siguen):
svn: E000013: no se pudo iniciar una transacción
Luego, para resolver este error, asegúrese de que el usuario de Apache tenga acceso de lectura y escritura a todo el repositorio.
$ cd /var/www/svn/repo $ sudo chown -R apache:apache * $ sudo chmod -R 664 *
Eso es todo de este tutorial, comparta sus comentarios y consultas en la sección de comentarios a continuación.