Cómo instalar Apache Subversion (SVN) en RHEL 8 / Rocky Linux 8

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:///svn/repo

Svn-repo-Web-Browser-Authentication

En el navegador, simplemente reemplace la dirección IP con la IP de su servidor SVN

Repo-Revisión-SVN-Web

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

Devops-Proyecto-SVN-Web

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.

Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *