<?xml version="1.0" encoding="ISO-8859-1"?>

<chapter id="instalacion">
	<title>Instalación y Actualización</title>

	<para>La instalación será aún más fácil si destina un 
		computador como servidor de SIVeL.  Si
		debe emplear en el mismo computador otros sistemas
		operativos se recomienda que destine un disco 
		duro independiente para SIVeL y configure un gestor
		de arranque que permita ingresar a uno o a otro en el
		momento de arrancar el equipo.  En último caso también
		es posible instalar en un mismo disco OpenBSD
		y otros sistemas como Linux o Windows, para esto
		asegúrese de dejar una partición primaria
		de al menos 2GB para OpenBSD (si se trata de un computador 
		nuevo 
		haga la solicitud al vendedor, si se trata de un computador 
		donde ya está instalado Windows/Linux destine una de las
		particiones existentes o emplee una herramienta para
		reparticionar).</para>

	<para>Para instalar puede descargar de Internet la imagen
		ISO de la distribución Aprendiendo De Jesus (adJ) &VER-ADJ; 
		(ver <ulink url="http://aprendiendo.pasosdeJesus.org"></ulink>)
		y quemarla en un CD como imagen ISO (no como simple archivo
		o de lo contrario no podrá arrancar su computador con esta).
		AdJ es una distribución de OpenBSD &VER-OPENBSD; con todos los 
		paquetes requeridos por SIVeL, SIVeL, datos públicos
		del Banco de Datos de DH, DIH y VPS del CINEP y un 
		script de instalación que instala y configura SIVeL y sus
		prerrequisitos.  
	</para>

	<para>Por precaución saque copia de la información importante de
		su disco.  Inicie su computador con el CD.
		Instale OpenBSD respondiendo las preguntas del instalador
		estándar de OpenBSD --y teniendo cuidado de instalar justo
		en el disco o partición que ha destinado para OpenBSD.  
		Reinicie y configure arranque múltiple si es el caso. Una 
		vez entre en su sistema recién instalado ejecute el script 
		<command>/inst-adJ.sh</command> y responda las preguntas 
		que le hace recordando dejar PostgreSQL en imagen
		encriptada, a continuación ejecute el script
		<command>/inst-sivel.sh</command>.
	</para>

	<para>El resto de instrucciones de este capítulo, le servirán si 
		tiene inconvenientes con el procedimiento anterior o si 
		prefiere hacer una instalación menos automatizada o en otras 
		plataformas.  </para>

	<sect1 id="prerrequisitos">
		<title>Prerrequisitos</title>
		<para>
			<itemizedlist>
				<listitem>
					<para>
Sistema tipo Unix, recomendamos OpenBSD &VER-OPENBSD;
(ver <ulink url="http://structio.sourceforge.net/guias/usuario_OpenBSD/"></ulink>) y en particular la distribución Aprendiendo de Jesús (ver <ulink url="http://aprendiendo.pasosdeJesus.org"></ulink>).
					</para>
				</listitem>
				<listitem>
					<para>
Para hacer pruebas durante la configuración puede emplear
una consola y el navegador tipo texto <command>lynx</command>, 
sin embargo se sugiere configurar X-Window 					(ver <ulink url="http://structio.sourceforge.net/guias/usuario_OpenBSD/sobre-la-instalacion.html#configuracion-de-xfree86"></ulink>) y 
un navegador gráfico como <command>mozilla-firefox</command>.</para>
				</listitem>
				<listitem>
					<para>
Se sugiere crear dos imágenes encriptadas en las que residirán
la base de datos y copias de respaldo respectivamente.  Cada una
debe ser al menos de 100MB aunque se sugiere 700MB --para que quepa
cada una en un CD por si desea mantener copias de respaldo (ver <ulink url="http://structio.sourceforge.net/guias/usuario_OpenBSD/configuracion-de-algunos-dispositivos.html#imagen-encriptada"></ulink>).
					</para>
				</listitem>
				<listitem>
					<para>
Servidor web con SSL, recomendamos Apache con <literal>mod_ssl</literal>
(ver <ulink url="http://structio.sourceforge.net/guias/servidor_OpenBSD/apache.html#ssl"></ulink>).
Sugerimos que lo ejecute con <command>chroot</command> en 
<filename>/var/www</filename> y que cree el directorio 
<filename>/var/www/tmp</filename> para que PostgreSQL ubique su socket allí, 
con permisos de ejecución, lectura y escritura para todos.
					</para>
				</listitem>
				<listitem>
					<para>
PostgreSQL (ver <ulink url="http://structio.sourceforge.net/guias/servidor_OpenBSD/postgresql.html#primera-instalaci%C3%B3n"></ulink>),
sugerimos que la configure para usar sockets en 
<filename>/var/www/tmp</filename>.  Así mismo se sugiere que active 
autovaciado en <filename>/var/postgresql/data/postgresql.conf</filename>
con las líneas:
<screen>
autovacuum = on
stats_start_collector = on
stats_row_level = on
</screen>
					</para>
				</listitem>
				<listitem>
					<para> 
PHP 5 con módulo para PostgreSQL y Pear (ver instalación
de PHP 5 en <ulink url="http://structio.sourceforge.net/guias/servidor_OpenBSD/apache.html#php"></ulink>). 
					</para>
					<para>
Se sugiere editar <filename>/var/www/conf/php.ini</filename>
para asegurar que tiene:
<!--<screen>
session.auto_start = 1
</screen> -->
<screen>
max_execution_time = 900
max_input_time = 900
</screen>
así cada analista tendrá más tiempo de edición en algunos casos.
					</para>
					<para>
Para instalar <command>pear</command> en OpenBSD, configure la variable 
<literal>PKG_PATH</literal> (ver
<ulink url="http://structio.sourceforge.net/guias/usuario_OpenBSD/paquetes-y-portes.html#paquetes "></ulink>)
y ejecute:
<screen>
# pkg_add $PKG_PATH/pear-<replaceable>version</replaceable>.tgz
</screen>
					</para>
				</listitem>
				<listitem>
					<para>
Puede instalar 
algunos paquetes estables de <application>pear</application> que 
también están disponibles como paquetes de OpenBSD por ejemplo con:
<screen>
# pkg_add pear-DB
</screen>
Otros paquetes estables para <application>pear</application>
los puede instalar con una conexión a Internet por ejemplo con:
<screen>
# pear install Auth 
# pear install HTML_Common
# pear install HTML_Menu
# pear install HTML_QuickForm 
# pear install HTML_QuickForm_Controller
# pear install HTML_Table
# pear install HTML_Javascript
# pear install HTML_CSS
# pear install Date
# pear install DB_DataObject
# pear install Mail
# pear install Mail_Mime
# pear install Net_Socket
# pear install Net_SMTP
# pear install Benchmark </screen>
					</para>
					<para>
Y los paquetes en desarrollo en el momento de este escrito los
puede descargar e instalar con:
						<screen>
# pear download Validate
# pear install ./Validate-*
# pear download DB_DataObject_FormBuilder
# pear install ./DB_DataObject_FormBuilder-*

</screen>
					</para>
				</listitem>
				<!--				<listitem>
					<para>La ejecución de algunos archivos
						de comandos requieren un interprete de
					comandos que soporte</para>
			</listitem> -->
			</itemizedlist>
		</para>

	</sect1>

	<sect1 id="pasos">
		<title>Procedimiento de instalación</title>

		<para>

			<orderedlist>
				<listitem>
					<para>
Aunque no es indispensable se recomienda que cree una cuenta
para sivel (digamos con login <literal>sivel</literal>).  
</para>
				</listitem>
				<listitem>
					<para>
Instale en un directorio utilizable por Apache con SSL.
Por ejemplo si las fuentes están en
<filename>~/baja/sivel-&PRY-VERSION;.tar.gz</filename> y va a 
instalar en el directorio <filename>/var/www/users/sivel</filename> que
debería ser visible para Apache, emplee:
<screen>
# cd /var/www/users
# mkdir sivel
# ln -s /var/www/users/sivel/ /home/sivel/sivel
# cd /home/sivel
# tar -x -vz -s "/sivel-[0-9.]*/sivel/g" -f ~/baja/sivel-&PRY-VERSION;.tar.gz
# cd sivel
# chown -R sivel:sivel .
# chmod -R a+r .
# chmod -R a+x aut
# chmod -R go-rx bin
# touch ultimoenvio.txt
# chown www:www ultimoenvio.txt
</screen>
Después puede editar <filename>/var/www/conf/httpd.conf</filename>
y cambiar algunas líneas de la configuracion de SSL (remplace 
<literal>miServidor</literal> y 
<literal>micorreo@midominio.org</literal> por valores apropiados para su caso):
<screen>
DocumentRoot /var/www/users/sivel
ServerName miServidor
ServerAdmin micorreo@midominio.org
ErrorLog logs/error_log
TransferLog logs/access_log
</screen>

					</para>
				</listitem>
				<listitem>
					<para>
 Cree un usuario para PostgreSQL para manejar la base de datos:
 <screen>
# mkdir /var/www/tmp
# chmod a+w /var/www/tmp
# su - _postgresql
$ createuser -h /var/www/tmp/ -A -d sivel
$ exit
</screen>

					</para>
				</listitem>
				<listitem>
					<para>
Ejecute el archivo de comandos de configuración:
<screen>
./conf.sh
</screen>
					</para>
				</listitem>
				<listitem>
					<para>
En el directorio con fuentes (<filename>/home/sivel/sivel</filename>) 
copie el archivo <filename>aut/conf.php.plantilla</filename> en 
<filename>aut/conf.php</filename> y edite este último (sólo tendrá que
hacer cambios si empleó un usuario o desea emplear una base de datos con
un nombre diferente a <literal>sivel</literal>).
Asegurese de tener un usuario para PostgreSQL y que
tal usuario quede configurado en <filename>aut/conf.php</filename></para>
<para>
Copie el archivo <filename>DataObject.ini.plantilla</filename> en 
<filename>DataObject.ini</filename> y editelo
(debe coincidir usuario con el de <filename>aut/conf.php</filename>).</para>
<para>
Copie el archivo <filename>vardb.sh.plantilla</filename> en 
<filename>vardb.sh</filename> y modifique la ruta
de instalación en la variable <literal>dirap</literal>.
</para>
<para>
	Pude poner el logo de su organización en <filename>imagen/FondoSecc.jpg</filename>.
Si el nombre de la base de datos que emplea no es <literal>sivel</literal> 
(digamos que es <literal>sivel-devel</literal>) cree enlaces simbólicos:
<screen>
ln -s sivel.ini sivel-devel.ini
ln -s sivel.links.ini sivel-devel.links.ini
</screen>
					</para>
				</listitem>
				<listitem>
					<para>
Para crear y poblar la base de datos, desde una cuenta con permiso para 
crear bases de datos de PostgreSQL (en este ejemplo <literal>sivel</literal>) 
ejecute:
<screen>
	./bin/creapg.sh
</screen>

					</para>
				</listitem>
				<listitem>
					<para>
						Agregue uno o más usuarios con:
<screen>
	./bin/agus.sh
</screen>
Uno de los usuarios que cree debe estar en el rol de administrador.
					</para>
				</listitem>
				<listitem>
					<para>
Desde un navegador abra el directorio en el que instaló.   Si lo requiere
puede revisar errores en la bitácora de Apache (por defecto
<filename>/var/www/log/error_log</filename>).
					</para>
				</listitem>
			</orderedlist>


		</para>
		<sect2 id="inst-opcional">
			<title>Otros pasos de instalación opcionales</title>

			<orderedlist>
				<listitem>
					<para>
Si desea generar la documentación:
<screen>
$ cd doc
$ ./conf.sh
$ cp personaliza.ent.plantilla personaliza.ent
</screen>
modifique <filename>personaliza.ent</filename> y finalmente:
<screen>
make
</screen>
					</para>
				</listitem>
				<listitem>
					<para>
Si desea configurar un esquema de respaldos puede emplear
los archivos de comandos <literal>bin/pgdump.sh</literal> y 
<literal>bin/respaldo.sh</literal>, que facilitan hacer respaldo
diario y mantener la copia del último mes en el computador local y
opcionalmente de la última semana en un computador remoto. Requieren 
<command>scp</command> y algunas variables de configuración de 
<filename>aut/conf.php</filename> (ver <xref linkend="copias-respaldo"></xref>).  
					</para>
				</listitem>
				<listitem>
					<para>Para activar corrección
ortográfica, instale 
<application>ispell</application> e <application>ispell-spanish</application>.
Si Apache corre chroot en un directorio (digamos <filename>/var/www</filename>),
cree en ese directorio la estructura de directorios que requieren
<application>ispell</application> e <application>ispell-spanish</application>
y copie lo básico de estos en la nueva estructura ---las librerías compartidas
que <command>ispell</command> requiera puede verlas con 
<command>ldd</command>.  Eventualmente podrá efectuar estas operaciones
con el script <literal>bin/prep-chroot.sh</literal> distribuido
junto con las fuentes de SIVeL.
</para>
<para>
	Una vez instale y pruebe <command>ispell</command> en el directorio
	chroot, desde el directorio de fuentes de SIVeL verifique que la 
	ruta esté especificada en <filename>confv.empty</filename> (variable 
	<literal>CHROOT</literal>) y ejecute:
	<screen>
$ rm confv.sh
$ ./conf.sh
	</screen>
	Finalmente puede editar <filename>aut/conf.php</filename> para 
	modificar el mensaje que se presenta cuando se encuentras errores
	ortográficos 
	(<literal>MENS_ORTOGRAFIA</literal>). </para>
<para>Una vez en operación podrá agregar palabras que sean correctas en
	el diccionario configurado (por defecto está en las fuentes de SIVeL con
	nombre <filename>ispell.dic</filename>); una palabra por línea, sin
	dejar espacios a izquierda ni derecha.  Si va a agregar palabras
	con tildes, cambie la vocal tildada por la vocal sin tilde pero con
	un apostrofe como prefijo, por ejemplo la palabra "nación" se agrega
	como "naci'on" (sin comillas).
	</para>
				</listitem>
				<listitem>
					<para>Para publicar la Consulta
Web en Internet y activar 
retroalimentación encriptada por correo vea 
<xref linkend="retroalimentacion"></xref>.
	</para>
				</listitem>
			</orderedlist>
   		</sect2>
	</sect1>
	<sect1 id="actualizacion-sivel">
		<title>Actualización</title>
		<para>Es importante:
			<itemizedlist>
				<listitem>
					<para>Actualizar SIVeL y sistema operativo aproximadamente cada 6 meses, para cerrar posibles fallas de seguridad o funcionalidad descubiertas en ese lapso.</para>
				</listitem>
				<listitem>
					<para>Mantenerse informado de novedades, por ejemplo mediante la lista 
						<literal>sivel-soporte@lists.sourceforge.net</literal></para>
				</listitem>
				<listitem>
					<para>Capacitarse para realizar actualizaciones periódicas al sistema operativo y a SIVeL.</para>
				</listitem>
			</itemizedlist>
		</para>

		<para>Para actualizar fuentes personalizadas es necesario que un
			desarrollador (PHP, SQL y seguridad informática) mezcle actualizaciones del SIVeL 
			genérico a las fuentes personalizadas.  En instalaciones genéricas o con 
			personalizaciones simples (tablas básicas, interfaz y reinterpretaciones, 
			ver <xref linkend="personalizacion"></xref>) la actualización puede 
			hacerla un administrador de red así:
			<orderedlist>
				<listitem>
				<para>Revise la versión de SIVeL que tiene instalada, desde el menú principal en la barra de título o examinando el 
						archivo <literal>confv.empty</literal> en las fuentes y 
						comparelo con el mostrado en <ulink url="http://sivel.sf.net"></ulink> </para>
				</listitem>
				<listitem>
					<para>De resultarle posible actualice 
						el sistema operativo
			completo empleando la distribución 
			<ulink url="http://aprendiendo.pasosdeJesus.org">AdJ</ulink> 
			más reciente y el script de instalación
			<filename>inst-sivel.sh</filename>.   De esta forma
			asegurará tener versiones recientes de todos los
			componentes (particularmente PHP, PostgreSQL, Pear y
			paquetes de Pear como 
			<literal>DB_DataObject_FormBuilder</literal>),
			que pueden ser requeridos por versiones recientes
			de SIVeL.
					</para>
				</listitem>
				<listitem>
					<para>Revise el
			apéndice <xref linkend="novedades"></xref>
			y siga los pasos de actualización que allí se
			describan comenzando en la versión que tenía
			instalada hasta la versión más reciente. 
			Termine la actualización abriendo
			con un navegador SIVeL pero agregando a la dirección
			<literal>actualiza.php</literal> 
			(e.g <literal>https://127.0.0.1/actualiza.php</literal>).
				</para>
				</listitem>
			</orderedlist>
		</para>
	</sect1>
	<sect1 id="pruebas-regresion">
		<title>Pruebas de regresión</title>
		<para>Una vez instale o actualice SIVeL es recomendable que
			ejecute las pruebas de regresión para verificar
			que en su plataforma opera como se espera.  
			Ejecutelas desde una terminal en el subdirectorio
			<filename>pruebas</filename> del directorio
			con fuentes de SIVeL 
			(e.g <literal>cd /home/sivel/sivel/pruebas</literal>).
			Los scripts eliminarán y crearán una base
			de datos con nombre <literal>sivel-prueba</literal>.
		</para>
			<warning><para>No use la base <literal>sivel-prueba</literal> 
					porque será borrada cada vez que 
					se ejecuten las pruebas de regresión.
			</para></warning>
		<para> Después ejecute:
			<screen>
				./pruebas.sh
			</screen>
			un resumen del resultado se presentará en pantalla,
			si alguna de las pruebas falla por favor reportenos
			el inconveniente adjuntando el archivo 
			<filename>pruebas.bitacora</filename> que contiene
			datos sobre su instalación y posibles fallas.
		</para>
	</sect1>

</chapter>
