verificación google

miércoles, 17 de octubre de 2018

Cómo instalar cvsweb en Debian 9 stretch

Esta entrada tiene relación con la anterior entrada donde hago referencia a la instalación del servidor CVS, podes consultarla y ver el porqué sigo utilizando cvs cuando existen sistemas de control de versiones mucho más potentes y populares como git.

¿Qué es CVSWEB?

Es una aplicación desde la que podemos visualizar nuestro repositorio CVS desde un navegador web. Desde CVSWEB podemos navegar entre las modificaciones que ha sufrido nuestro proyecto, así como ver quién y qué modificó en cada una de las versiones de un fichero.


Esta es una captura de pantalla del formato en el que cvsweb muestra las modificaciones de un fichero. Como podéis ver asigna una versión al fichero, nos muestra la fecha de la modificación, información sobre el usuario que realizó la modificación y en el caso de escribir algún comentario cuando se hizo el commit, se vería aquí también.

Como muchos sistemas de control de versiones también podemos ver diferencias entre las distintas versiones del fichero para ver exactamente qué se modificó.

Instalar CVSWEB

Desde la gestión de paquetes de Debian 9 stretch nos solucionan mucho la tarea de instalación de CVSWEB, simplemente tenemos que instalar el paquete cvsweb con la siguiente instrucción. 
root@desarrollo:~# apt-get install cvsweb
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias   
Leyendo la información de estado... Hecho
Se instalarán los siguientes paquetes adicionales:
  apache2 apache2-bin apache2-data apache2-utils libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libconvert-binhex-perl libicu57
  libio-pty-perl libio-socket-ssl-perl libipc-run-perl libldap-2.4-2 libldap-common liblua5.2-0 libmailtools-perl libmime-tools-perl
  libnet-smtp-ssl-perl libnet-ssleay-perl libnghttp2-14 libperl5.24 libsasl2-2 libsasl2-modules-db libtimedate-perl liburi-perl libxml2 perl
  perl-modules-5.24 perl-openssl-defaults rcs
Paquetes sugeridos:
  www-browser apache2-doc apache2-suexec-pristine | apache2-suexec-custom cvsgraph enscript libmime-types-perl zip libwww-perl perl-doc
  libterm-readline-gnu-perl | libterm-readline-perl-perl make
Paquetes recomendados:
  ssl-cert libauthen-sasl-perl libsasl2-modules xml-core rename
Se instalarán los siguientes paquetes NUEVOS:
  apache2 apache2-bin apache2-data apache2-utils cvsweb libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libconvert-binhex-perl
  libicu57 libio-pty-perl libio-socket-ssl-perl libipc-run-perl libldap-2.4-2 libldap-common liblua5.2-0 libmailtools-perl libmime-tools-perl
  libnet-smtp-ssl-perl libnet-ssleay-perl libnghttp2-14 libperl5.24 libsasl2-2 libsasl2-modules-db libtimedate-perl liburi-perl libxml2 perl
  perl-modules-5.24 perl-openssl-defaults rcs
0 actualizados, 32 nuevos se instalarán, 0 para eliminar y 0 no actualizados.
Se necesita descargar 19,1 MB de archivos.
Se utilizarán 85,3 MB de espacio de disco adicional después de esta operación.
¿Desea continuar? [S/n]
Des:1 http://deb.debian.org/debian stretch/main amd64 perl-modules-5.24 all 5.24.1-3+deb9u4 [2.724 kB]
Des:2 http://deb.debian.org/debian stretch/main amd64 libperl5.24 amd64 5.24.1-3+deb9u4 [3.522 kB]
Des:3 http://deb.debian.org/debian stretch/main amd64 perl amd64 5.24.1-3+deb9u4 [218 kB]
Des:4 http://deb.debian.org/debian stretch/main amd64 libapr1 amd64 1.5.2-5 [96,6 kB]
Des:5 http://deb.debian.org/debian stretch/main amd64 libaprutil1 amd64 1.5.4-3 [85,8 kB]
Des:6 http://deb.debian.org/debian stretch/main amd64 libaprutil1-dbd-sqlite3 amd64 1.5.4-3 [19,3 kB]
Des:7 http://deb.debian.org/debian stretch/main amd64 libsasl2-modules-db amd64 2.1.27~101-g0780600+dfsg-3 [68,2 kB]
Des:8 http://deb.debian.org/debian stretch/main amd64 libsasl2-2 amd64 2.1.27~101-g0780600+dfsg-3 [105 kB]
Des:9 http://deb.debian.org/debian stretch/main amd64 libldap-common all 2.4.44+dfsg-5+deb9u2 [85,5 kB]
Des:10 http://deb.debian.org/debian stretch/main amd64 libldap-2.4-2 amd64 2.4.44+dfsg-5+deb9u2 [219 kB]
Des:11 http://deb.debian.org/debian stretch/main amd64 libaprutil1-ldap amd64 1.5.4-3 [17,4 kB]
Des:12 http://deb.debian.org/debian stretch/main amd64 liblua5.2-0 amd64 5.2.4-1.1+b2 [110 kB]
Des:13 http://deb.debian.org/debian stretch/main amd64 libnghttp2-14 amd64 1.18.1-1 [79,1 kB]
Des:14 http://deb.debian.org/debian stretch/main amd64 libicu57 amd64 57.1-6+deb9u2 [7.700 kB]
Des:15 http://deb.debian.org/debian stretch/main amd64 libxml2 amd64 2.9.4+dfsg1-2.2+deb9u2 [920 kB]
Des:16 http://deb.debian.org/debian stretch/main amd64 apache2-bin amd64 2.4.25-3+deb9u5 [1.186 kB]
Des:17 http://deb.debian.org/debian stretch/main amd64 apache2-utils amd64 2.4.25-3+deb9u5 [217 kB]
Des:18 http://deb.debian.org/debian stretch/main amd64 apache2-data all 2.4.25-3+deb9u5 [162 kB]
Des:19 http://deb.debian.org/debian stretch/main amd64 apache2 amd64 2.4.25-3+deb9u5 [236 kB]
Des:20 http://deb.debian.org/debian stretch/main amd64 rcs amd64 5.9.4-3 [206 kB]
Des:21 http://deb.debian.org/debian stretch/main amd64 libio-pty-perl amd64 1:1.08-1.1+b2 [33,6 kB]
Des:22 http://deb.debian.org/debian stretch/main amd64 libipc-run-perl all 0.94-1+deb9u1 [99,1 kB]
Des:23 http://deb.debian.org/debian stretch/main amd64 libconvert-binhex-perl all 1.125-1 [30,5 kB]
Des:24 http://deb.debian.org/debian stretch/main amd64 libtimedate-perl all 2.3000-2 [42,2 kB]
Des:25 http://deb.debian.org/debian stretch/main amd64 perl-openssl-defaults amd64 3 [6.782 B]
Des:26 http://deb.debian.org/debian stretch/main amd64 libnet-ssleay-perl amd64 1.80-1 [285 kB]
Des:27 http://deb.debian.org/debian stretch/main amd64 libio-socket-ssl-perl all 2.044-1 [195 kB]
Des:28 http://deb.debian.org/debian stretch/main amd64 libnet-smtp-ssl-perl all 1.04-1 [6.184 B]
Des:29 http://deb.debian.org/debian stretch/main amd64 libmailtools-perl all 2.18-1 [88,5 kB]
Des:30 http://deb.debian.org/debian stretch/main amd64 libmime-tools-perl all 5.508-1 [212 kB]
Des:31 http://deb.debian.org/debian stretch/main amd64 liburi-perl all 1.71-1 [88,6 kB]
Des:32 http://deb.debian.org/debian stretch/main amd64 cvsweb all 3:3.0.6-8 [60,7 kB]
Descargados 19,1 MB en 1s (10,1 MB/s)
Extrayendo plantillas para los paquetes: 100%
Seleccionando el paquete perl-modules-5.24 previamente no seleccionado.
(Leyendo la base de datos ... 27169 ficheros o directorios instalados actualmente.)
Preparando para desempaquetar .../00-perl-modules-5.24_5.24.1-3+deb9u4_all.deb ...
Desempaquetando perl-modules-5.24 (5.24.1-3+deb9u4) ...
Seleccionando el paquete libperl5.24:amd64 previamente no seleccionado.
Preparando para desempaquetar .../01-libperl5.24_5.24.1-3+deb9u4_amd64.deb ...
Desempaquetando libperl5.24:amd64 (5.24.1-3+deb9u4) ...
Seleccionando el paquete perl previamente no seleccionado.
Preparando para desempaquetar .../02-perl_5.24.1-3+deb9u4_amd64.deb ...
Desempaquetando perl (5.24.1-3+deb9u4) ...
Seleccionando el paquete libapr1:amd64 previamente no seleccionado.
Preparando para desempaquetar .../03-libapr1_1.5.2-5_amd64.deb ...
Desempaquetando libapr1:amd64 (1.5.2-5) ...
Seleccionando el paquete libaprutil1:amd64 previamente no seleccionado.
Preparando para desempaquetar .../04-libaprutil1_1.5.4-3_amd64.deb ...
Desempaquetando libaprutil1:amd64 (1.5.4-3) ...
Seleccionando el paquete libaprutil1-dbd-sqlite3:amd64 previamente no seleccionado.
Preparando para desempaquetar .../05-libaprutil1-dbd-sqlite3_1.5.4-3_amd64.deb ...
Desempaquetando libaprutil1-dbd-sqlite3:amd64 (1.5.4-3) ...
Seleccionando el paquete libsasl2-modules-db:amd64 previamente no seleccionado.
Preparando para desempaquetar .../06-libsasl2-modules-db_2.1.27~101-g0780600+dfsg-3_amd64.deb ...
Desempaquetando libsasl2-modules-db:amd64 (2.1.27~101-g0780600+dfsg-3) ...
Seleccionando el paquete libsasl2-2:amd64 previamente no seleccionado.
Preparando para desempaquetar .../07-libsasl2-2_2.1.27~101-g0780600+dfsg-3_amd64.deb ...
Desempaquetando libsasl2-2:amd64 (2.1.27~101-g0780600+dfsg-3) ...
Seleccionando el paquete libldap-common previamente no seleccionado.
Preparando para desempaquetar .../08-libldap-common_2.4.44+dfsg-5+deb9u2_all.deb ...
Desempaquetando libldap-common (2.4.44+dfsg-5+deb9u2) ...
Seleccionando el paquete libldap-2.4-2:amd64 previamente no seleccionado.
Preparando para desempaquetar .../09-libldap-2.4-2_2.4.44+dfsg-5+deb9u2_amd64.deb ...
Desempaquetando libldap-2.4-2:amd64 (2.4.44+dfsg-5+deb9u2) ...
Seleccionando el paquete libaprutil1-ldap:amd64 previamente no seleccionado.
Preparando para desempaquetar .../10-libaprutil1-ldap_1.5.4-3_amd64.deb ...
Desempaquetando libaprutil1-ldap:amd64 (1.5.4-3) ...
Seleccionando el paquete liblua5.2-0:amd64 previamente no seleccionado.
Preparando para desempaquetar .../11-liblua5.2-0_5.2.4-1.1+b2_amd64.deb ...
Desempaquetando liblua5.2-0:amd64 (5.2.4-1.1+b2) ...
Seleccionando el paquete libnghttp2-14:amd64 previamente no seleccionado.
Preparando para desempaquetar .../12-libnghttp2-14_1.18.1-1_amd64.deb ...
Desempaquetando libnghttp2-14:amd64 (1.18.1-1) ...
Seleccionando el paquete libicu57:amd64 previamente no seleccionado.
Preparando para desempaquetar .../13-libicu57_57.1-6+deb9u2_amd64.deb ...
Desempaquetando libicu57:amd64 (57.1-6+deb9u2) ...
Seleccionando el paquete libxml2:amd64 previamente no seleccionado.
Preparando para desempaquetar .../14-libxml2_2.9.4+dfsg1-2.2+deb9u2_amd64.deb ...
Desempaquetando libxml2:amd64 (2.9.4+dfsg1-2.2+deb9u2) ...
Seleccionando el paquete apache2-bin previamente no seleccionado.
Preparando para desempaquetar .../15-apache2-bin_2.4.25-3+deb9u5_amd64.deb ...
Desempaquetando apache2-bin (2.4.25-3+deb9u5) ...
Seleccionando el paquete apache2-utils previamente no seleccionado.
Preparando para desempaquetar .../16-apache2-utils_2.4.25-3+deb9u5_amd64.deb ...
Desempaquetando apache2-utils (2.4.25-3+deb9u5) ...
Seleccionando el paquete apache2-data previamente no seleccionado.
Preparando para desempaquetar .../17-apache2-data_2.4.25-3+deb9u5_all.deb ...
Desempaquetando apache2-data (2.4.25-3+deb9u5) ...
Seleccionando el paquete apache2 previamente no seleccionado.
Preparando para desempaquetar .../18-apache2_2.4.25-3+deb9u5_amd64.deb ...
Desempaquetando apache2 (2.4.25-3+deb9u5) ...
Seleccionando el paquete rcs previamente no seleccionado.
Preparando para desempaquetar .../19-rcs_5.9.4-3_amd64.deb ...
Desempaquetando rcs (5.9.4-3) ...
Seleccionando el paquete libio-pty-perl previamente no seleccionado.
Preparando para desempaquetar .../20-libio-pty-perl_1%3a1.08-1.1+b2_amd64.deb ...
Desempaquetando libio-pty-perl (1:1.08-1.1+b2) ...
Seleccionando el paquete libipc-run-perl previamente no seleccionado.
Preparando para desempaquetar .../21-libipc-run-perl_0.94-1+deb9u1_all.deb ...
Desempaquetando libipc-run-perl (0.94-1+deb9u1) ...
Seleccionando el paquete libconvert-binhex-perl previamente no seleccionado.
Preparando para desempaquetar .../22-libconvert-binhex-perl_1.125-1_all.deb ...
Desempaquetando libconvert-binhex-perl (1.125-1) ...
Seleccionando el paquete libtimedate-perl previamente no seleccionado.
Preparando para desempaquetar .../23-libtimedate-perl_2.3000-2_all.deb ...
Desempaquetando libtimedate-perl (2.3000-2) ...
Seleccionando el paquete perl-openssl-defaults:amd64 previamente no seleccionado.
Preparando para desempaquetar .../24-perl-openssl-defaults_3_amd64.deb ...
Desempaquetando perl-openssl-defaults:amd64 (3) ...
Seleccionando el paquete libnet-ssleay-perl previamente no seleccionado.
Preparando para desempaquetar .../25-libnet-ssleay-perl_1.80-1_amd64.deb ...
Desempaquetando libnet-ssleay-perl (1.80-1) ...
Seleccionando el paquete libio-socket-ssl-perl previamente no seleccionado.
Preparando para desempaquetar .../26-libio-socket-ssl-perl_2.044-1_all.deb ...
Desempaquetando libio-socket-ssl-perl (2.044-1) ...
Seleccionando el paquete libnet-smtp-ssl-perl previamente no seleccionado.
Preparando para desempaquetar .../27-libnet-smtp-ssl-perl_1.04-1_all.deb ...
Desempaquetando libnet-smtp-ssl-perl (1.04-1) ...
Seleccionando el paquete libmailtools-perl previamente no seleccionado.
Preparando para desempaquetar .../28-libmailtools-perl_2.18-1_all.deb ...
Desempaquetando libmailtools-perl (2.18-1) ...
Seleccionando el paquete libmime-tools-perl previamente no seleccionado.
Preparando para desempaquetar .../29-libmime-tools-perl_5.508-1_all.deb ...
Desempaquetando libmime-tools-perl (5.508-1) ...
Seleccionando el paquete liburi-perl previamente no seleccionado.
Preparando para desempaquetar .../30-liburi-perl_1.71-1_all.deb ...
Desempaquetando liburi-perl (1.71-1) ...
Seleccionando el paquete cvsweb previamente no seleccionado.
Preparando para desempaquetar .../31-cvsweb_3%3a3.0.6-8_all.deb ...
Desempaquetando cvsweb (3:3.0.6-8) ...
Configurando libapr1:amd64 (1.5.2-5) ...
Configurando perl-modules-5.24 (5.24.1-3+deb9u4) ...
Configurando libperl5.24:amd64 (5.24.1-3+deb9u4) ...
Configurando libnghttp2-14:amd64 (1.18.1-1) ...
Configurando libldap-common (2.4.44+dfsg-5+deb9u2) ...
Configurando perl-openssl-defaults:amd64 (3) ...
Configurando libsasl2-modules-db:amd64 (2.1.27~101-g0780600+dfsg-3) ...
Configurando libsasl2-2:amd64 (2.1.27~101-g0780600+dfsg-3) ...
Configurando apache2-data (2.4.25-3+deb9u5) ...
Configurando libicu57:amd64 (57.1-6+deb9u2) ...
Configurando libxml2:amd64 (2.9.4+dfsg1-2.2+deb9u2) ...
Configurando rcs (5.9.4-3) ...
Configurando perl (5.24.1-3+deb9u4) ...
update-alternatives: utilizando /usr/bin/prename para proveer /usr/bin/rename (rename) en modo automático
Procesando disparadores para libc-bin (2.24-11+deb9u3) ...
Configurando libldap-2.4-2:amd64 (2.4.44+dfsg-5+deb9u2) ...
Configurando liburi-perl (1.71-1) ...
Configurando libaprutil1:amd64 (1.5.4-3) ...
Procesando disparadores para systemd (232-25+deb9u4) ...
Procesando disparadores para man-db (2.7.6.1-2) ...
Configurando liblua5.2-0:amd64 (5.2.4-1.1+b2) ...
Configurando libconvert-binhex-perl (1.125-1) ...
Configurando libaprutil1-ldap:amd64 (1.5.4-3) ...
Configurando libio-pty-perl (1:1.08-1.1+b2) ...
Configurando libaprutil1-dbd-sqlite3:amd64 (1.5.4-3) ...
Configurando libtimedate-perl (2.3000-2) ...
Configurando libnet-ssleay-perl (1.80-1) ...
Configurando apache2-utils (2.4.25-3+deb9u5) ...
Configurando apache2-bin (2.4.25-3+deb9u5) ...
Configurando libio-socket-ssl-perl (2.044-1) ...
Configurando libipc-run-perl (0.94-1+deb9u1) ...
Configurando libnet-smtp-ssl-perl (1.04-1) ...
Configurando apache2 (2.4.25-3+deb9u5) ...
Enabling module mpm_event.
Enabling module authz_core.
Enabling module authz_host.
Enabling module authn_core.
Enabling module auth_basic.
Enabling module access_compat.
Enabling module authn_file.
Enabling module authz_user.
Enabling module alias.
Enabling module dir.
Enabling module autoindex.
Enabling module env.
Enabling module mime.
Enabling module negotiation.
Enabling module setenvif.
Enabling module filter.
Enabling module deflate.
Enabling module status.
Enabling module reqtimeout.
Enabling conf charset.
Enabling conf localized-error-pages.
Enabling conf other-vhosts-access-log.
Enabling conf security.
Enabling conf serve-cgi-bin.
Enabling site 000-default.
Created symlink /etc/systemd/system/multi-user.target.wants/apache2.service → /lib/systemd/system/apache2.service.
Created symlink /etc/systemd/system/multi-user.target.wants/apache-htcacheclean.service → /lib/systemd/system/apache-htcacheclean.service.
Configurando libmailtools-perl (2.18-1) ...
Configurando libmime-tools-perl (5.508-1) ...
Configurando cvsweb (3:3.0.6-8) ...
Procesando disparadores para libc-bin (2.24-11+deb9u3) ...
Procesando disparadores para systemd (232-25+deb9u4) ...
Como podemos ver en la salida del comando, este paquete tiene muchas dependencias, entre otras el servidor Apache2. Que será el encargado de publicar cvsweb desde cgi. Sin que tengamos que instalar nada más el paquete cvsweb nos desplegará todo lo necesario para su funcionamiento. No obstante en esta última versión de Debian 9 stretch, no incorpora la configuración correcta y tendremos que hacer algunas configuraciones manuales.

Recuerdo utilizar hace años este mismo paquete y no tener que tocar nada en absoluto. Todo funcionó a la primera y sin tonar ninguna configuración extra. El propio paquete incorporaba la toda la configuración necesaria para su correcto despliegue.

Configuración de apache para CGI

Es importante que carguemos los modulos necesarios para el funcionamiento del paquete. Estos enlaces activarán los módulos necesarios para su funcionamiento.
cd /etc/apache2/mods-enabled/ && ln -s ../mods-available/cgi.load
cd /etc/apache2/mods-enabled/ && ln -s ../mods-available/cgid.conf
cd /etc/apache2/mods-enabled/ && ln -s ../mods-available/cgid.load
En mi caso estos dos enlaces ya existían previamente. No obstante verifica que existan antes de continuar.

cd /etc/apache2/mods-enabled/ && ln -s ../mods-available/alias.load
cd /etc/apache2/mods-enabled/ && ln -s ../mods-available/alias.conf

Por otro lado hay que crear este ultimo enlace para que las hojas de estilo e imágenes sean publicadas para una mejor visualización de cvsweb.
cd /var/www/ &&  ln -sd /usr/share/cvsweb/
Tras todos estos ajustes ahora únicamente nos falta reiniciar el servidor Apache2 para verlo todo funcionando correctamente.
/etc/init.d/apache2 restart