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


lunes, 15 de octubre de 2018

Servidor para el control de versiones de código fuente

Qué es CVS

Concurrent Versions System o simplemente CVS, es una aplicación que implementa un sistema de control de versiones: mantiene el registro de todo el desarrollo y los cambios en los ficheros (código fuente principalmente, en un único archivo para cada fichero correspondiente),​ que forman un proyecto (de programa) y permite que distintos desarrolladores colaboren. CVS se ha hizo popular en el mundo del software libre. Sus desarrolladores difunden el sistema bajo la licencia GPL.

Su primera versión fue liberada en 1986. Desde 2008 no se publican nuevas versiones.

¿Porqué ahora CVS?

A qué viene ahora hablar de CVS cuando todo el mundo habla de GIT. Pues llevo años trabajando en un proyecto donde históricamente se estaba trabajando con CVS y hace unos días se murió el servidor de desarrollo y hemos tenido de volver a instalar el sistema de control de versiones en una nueva máquina.

Muchos pensareis que sería recomendable abandonar CVS y pasar a GIT, y sí está entre mis prioridades cambiar el sistema de control de versiones. Pero planificado y organizado, no deprisa y corriendo provocado por la caída de un sistema. Lo principal es dejar los sistemas funcionado tal y como estaba funcionando y después planificar las migraciones.

Por otro lado, no creo que se migren todos los proyectos a GIT cuando planifiquemos la migración. Tenemos proyectos que se quedarán en CVS a modo de reliquias.

Instalando servidor CVS en Debian 9 stretch

Para el funcionamiento de un servidor CVS, necesitaremos instalar los paquete cvs y xinetd. Necesitamos el paquete xinetd para permitir publicar nuestro servidor CVS en la red. Con el paquete cvs podríamos trabajar únicamente en local con el control de versiones.
root@miservidordedesarrollo:~# apt-get install cvs 
Reading package lists... Done
Building dependency tree     
Reading state information... Done
Suggested packages:
  mksh rcs
The following NEW packages will be installed:
  cvs
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 2779 kB of archives.
After this operation, 4681 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian stretch/main amd64 cvs amd64 2:1.12.13+real-22+deb9u1 [2779 kB]
Fetched 2779 kB in 0s (9564 kB/s)
Selecting previously unselected package cvs.
(Reading database ... 27062 files and directories currently installed.)
Preparing to unpack .../cvs_2%3a1.12.13+real-22+deb9u1_amd64.deb ...
Unpacking cvs (2:1.12.13+real-22+deb9u1) ...
Setting up cvs (2:1.12.13+real-22+deb9u1) ...
Allowing use of questionable username.
Adding group `_cvsadmin' (GID 111) ...
Done.
Processing triggers for man-db (2.7.6.1-2) ...
root@miservidordedesarrollo:~# apt-get install xinetd
Reading package lists... Done
Building dependency tree     
Reading state information... Done
Recommended packages:
  update-inetd
The following NEW packages will be installed:
  xinetd
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 133 kB of archives.
After this operation, 316 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian stretch/main amd64 xinetd amd64 1:2.3.15-7 [133 kB]
Fetched 133 kB in 0s (1978 kB/s)
Selecting previously unselected package xinetd.
(Reading database ... 27137 files and directories currently installed.)
Preparing to unpack .../xinetd_1%3a2.3.15-7_amd64.deb ...
Unpacking xinetd (1:2.3.15-7) ...
Setting up xinetd (1:2.3.15-7) ...
Processing triggers for systemd (232-25+deb9u4) ...
Processing triggers for man-db (2.7.6.1-2) ...

Configurar servidor CVS

Ahora tenemos que configurar nuestro servidor, en primer lugar vamos a crear el directorio donde desplegaremos el repositorio. Realmente no importa demasiado el lugar donde lo despliegues, simplemente tendrás que definir la ruta elegida en los ficheros de configuración.
root@miservidordedesarrollo:~# mkdir /var/lib/cvs   
Tras crear el directorio hay que inicializar el directorio para que el servidor CVS lo interprete como raíz de repositorio de datos.
root@miservidordedesarrollo:~# cvs -d /var/lib/cvs init
Simplemente con estos pasos tendrás funcionando en tu sistema un servidor CVS para el control de versiones de tus proyectos. No obstante únicamente podrás utilizarlo de forma local y no podrás compartir tus proyectos con otros desarrolladores.

Publicar CVS en red con xinetd

Esto es un poco absurdo, en cualquier proyecto necesitarás trabajar con más desarrolladores y necesitarás un servidor para el control de versiones en red para poder de forma fácil trabajar con otros desarrolladores.

Tendrás que crear el fichero /etc/xinetd.d/cvs
root@miservidordedesarrollo:~# nano /etc/xinetd.d/cvs
Escribir el siguiente contenido:
service cvspserver
{
     port = 2401
     socket_type = stream
     protocol = tcp
     user = root
     wait = no
     type = UNLISTED
     server = /usr/bin/cvs
     server_args = -f --allow-root /var/lib/cvs pserver
     disable = no
}
Finalmente reiniciar el servidor xinetd para que coja la configuración definida.
root@miservidordedesarrollo:~# /etc/init.d/xinetd restart

viernes, 12 de octubre de 2018

Apache NetBeans 9 PHP 7 Plugins


netbeans-logo-32@3x.png

Si has instalado la nueva versión de Apache NetBeans 9 y has intentado gestionar tus proyectos PHP, te habrás dado cuenta que aún no está disponible el plugin para PHP. Y como bien nos comentan en esta entrada del blog del proyecto Apache NetBeans el 1 de octubre de 2018:

"Hi all. Today, we will briefly show you about PHP7.3 support which will be available in the next NetBeans version i.e. NetBeans 10."

Así pues tendremos que esperar hasta la versión 10 de NetBeans para utilizar de forma nativa un plugin de PHP. No obstante Apache NetBeans por ahora continua siendo compatible con los repositorios del antiguo NetBeans 8.2, de esta forma podemos añadir un repositorio con el antiguo catálogo de plugins e instalar los plugins necesarios de la antigua versión.

Es importante destacar que para la instalación de Apache NetBeans 9 será necesario tener en nuestro sistema una versión igual o superior a jdk9, aquí os dejo los enlaces de descarga para jdk11, es el jdk que yo he utilizado para mi instalación de Apache NetBeans9.

¿Cómo instalamos el plugin PHP 7 en Apache NetBeans 9?

Esto es muy simple, tenemos que añadir un nuevo catálogo. Esto se hace desde Tools > Plugins > Settings > Add y veremos la siguiente pantalla.

Ventana para Tools > Plugins > Settings > Add

Desde esta venta tendremos que añadir el nombre que le queremos dar al catálogo de plugins que en este caso hace referencia a "NetBeans IDE 8.2 Plugin Centre" y la url correspondiente al catálogo "https://updates.netbeans.org/netbeans/updates/8.2/uc/final/distribution/catalog.xml.gz".

Ventana para Tools > Plugins > Available Plugins

Ahora si desde esta misma ventana de Tools > Plugins nos dirigimos a Tools > Plugins > Available Plugins y buscamos PHP en el buscador localizado en la parte superior derecha; nos aparecerán los plugins relacionados con la palabra PHP. Marcaremos el último "PHP" y pulsaremos el botón Install.

Esto lanzará algunas ventanas para confirmar la instalación de dependencias, aceptación de términos de uso y licencias y al terminar nos solicitará reiniciar el IDE de desarrollo Apache NetBeans 9 para que funcione el nuevo plugin de PHP7 que hemos instalado.






¡¡Funciona el plugin de PHP7 bajo Apache NetBeans 9!!

Perfecto, ahora ya tenemos funcionando el plugin para PHP7 en nuestro Apache NetBeans 9. Cuando creamos un nuevo proyecto, ahora tendremos la posibilidad de seleccionar un proyecto de tipo PHP.

Lamentablemente solo podemos definir hasta la versión 7.0 de PHP con este plugin. Para utilizar hasta la versión de PHP 7.3 tendremos que esperar a la siguiente versión de Apache NetBeans 10. Pero por ahora podemos continuar trabajando con este sistema.