Howtux Comas

  • Uploaded by: Mario Oyorzabal
  • 0
  • 0
  • December 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Howtux Comas as PDF for free.

More details

  • Words: 3,162
  • Pages: 22
TuXsOuL

Mario Oyorzabal Salgado

Howtux:  “Ejecutando Comas bajo el plumerio de Apache 2”.

Índice de contenido Introducción.................................................................................................................................2 COMAS en la web.......................................................................................................................2 Objetivo........................................................................................................................................2 Requerimientos............................................................................................................................3 Descargando COMAS.............................................................................................................5 Archivos de Configuración...........................................................................................................6 Comas.pl.................................................................................................................................6 Comas_apache2.conf..............................................................................................................7 Comas.conf.............................................................................................................................8 Configurando Apache2..............................................................................................................10 Configurando PostgreSQL.........................................................................................................11 Bisturí en COMAS......................................................................................................................14 Bugs desconocidos................................................................................................................16 Rating Erróneo..................................................................................................................16 Ejecutando COMAS...................................................................................................................19 Errores en COMAS....................................................................................................................19 Errores típicos de configuración en COMAS..........................................................................19 Disclaimer..................................................................................................................................20 Contacto.....................................................................................................................................21 Changelog.................................................................................................................................22

 This work is licensed under a Creative Commons Attribution­Share Alike 2.5 License.   

TuXsOuL

Mario Oyorzabal Salgado

Introducción COMAS   (Sistema   Manejador   de   Congresos   ­   siglas   en   inglés),   su   autor   es   Gunnar   Wolf  (http://www.gwolf.org) desarrollador oficial de la distribución Debian GNU/Linux (http://www.debian.org),  COMAS nace por primera vez en la falta de un sistema para controlar el flujo de información en un  congreso el cual fue CONSOL (Congreso Nacional de Software Libre ­ http://www.consol.org.mx).

COMAS en la web Se puede encontrar COMAS en su sitio web oficial (http://www.comas­code.org/) y el código para su  descarga en (https://alioth.debian.org/projects/comas/). COMAS esta hecho en un lenguaje de programación llamado Perl (http://www.perl.org), las primeras  versiones de COMAS se basaron en su desarrollo bajo el plumerio de Apache 1.x, por consiguiente  todos los módulos para esa versión.

Objetivo Para   nosotros   organizadores   de   CICOL   (http://www.cicol.org.mx),   no   podíamos   cambiar   nuestra  infraestructura, por lo cual tuvimos la necesidad de utilizar COMAS, bajo las nuevas plumas de Apache  2.x. Es por eso la realización de este howtux, además de tener un documento en cristiano (castellano),  ya que la documentación de COMAS es poca ya que no tiene mucha aportación de los usuarios. Por   lo   cual  también  invitamos  a   la   comunidad  a   que  ayude  en  el   desarrollo  de  COMAS,  y   en  la  documentación, como lo es este pequeño howtux.

 This work is licensed under a Creative Commons Attribution­Share Alike 2.5 License.   

TuXsOuL

Mario Oyorzabal Salgado

Requerimientos Para la utilización de COMAS dependiendo de nuestras necesidades montaremos nuestro servidor,  COMAS puede correr en  cualquier  ambiente *nix, salvo  la  necesidad  especifica del  lenguaje antes  mencionado Perl (http://www.perl.org). Este howtux no cubre la configuración ni especificar la necesidad  de hardware para el servidor si no únicamente la configuración de COMAS =P. Para   el   buen  funcionamiento   de   COMAS,   se   necesita  primero   cubrir  algunas  dependencias  como  librerías, parser's, etc., etc., todo lo que su diseñador utilizo. Este howtux es basado utilizando una  distribución GNU/Linux Instalar los siguientes componentes en Debian:      Apache2         PostgreSQL      Mod_perl

            apache2 postgresql             libapache2­mod­perl2

Apache::Comas      Apache::Request     libapache2­request­perl      Apache::Cookie       libapache2­request­perl      Apache::Session     libapache­session­perl      Config::Simple                  libconfig­simple­perl Comas::HTML      Data::Dumper::Simple libdata­dumper­simple­perl      Data::FormValidator libdata­formvalidator­perl      HTML::FromText             libhtml­fromtext­perl      HTML::Template             libhtml­template­perl      Scalar::Util                perl­base Comas backend      Date::Calc                       Date::Parse                      DBI                               DBD::Pg                          Storable                   

libdate­calc­perl libtimedate­perl libdbi­perl libdbd­pg­perl perl

 This work is licensed under a Creative Commons Attribution­Share Alike 2.5 License.   

TuXsOuL

Mario Oyorzabal Salgado

Los   paquetes   anteriores   así   pueden   ser   encontrados   en   la   estructuras   de   paquetes   en   Debian  GNU/Linux.   Para   facilidad   del   usuario   puede   copiar   y   pegar   la   siguiente   linea   para   instalar   las  dependencias necesarias en Debian GNU/Linux: #apt­get ­f install apache2 perl postgresql libapache2­mod­perl2 libapache2­request­perl \   libapache­session­perl libconfig­simple­perl libdata­dumper­simple­perl libdata­formvalidator­perl \   libhtml­fromtext­perl libhtml­template­perl libdate­calc­perl libtimedate­perl libdbi­perl libdbd­pg­perl El comando anterior instalará esos y otros paquetes más para cubrir las dependencias que se tienen  entre paquetes.

 This work is licensed under a Creative Commons Attribution­Share Alike 2.5 License.   

TuXsOuL

Mario Oyorzabal Salgado

Descargando COMAS  Para descargar comas necesitaremos "svn", ya que aún no hay un tar.gz, para poder bajar el código, así  que utilizaremos el código que se esta modificando día a día (dependiendo del autor), por lo cual se  debe tener cuidado, además que puede suceder que este howtux ya no funcione igual ante nuevas  versiones de COMAS. Primer instalamos "svn" si no lo tenemos: #apt­get ­f install subversion subversion­tools Ahora creamos una carpeta en donde colocaremos el código de COMAS: $mkdir comas $cd comas Ahora descargamos el código fuente de COMAS: $svn checkout svn://svn.debian.org/comas/trunk Despúes de unos minutos nuestra computadora habrá descargado toda la carpeta "trunk" en donde por  el momento se encuentra el código de COMAS.

 This work is licensed under a Creative Commons Attribution­Share Alike 2.5 License.   

TuXsOuL

Mario Oyorzabal Salgado

Archivos de Configuración Despúes  de   eso   preparamos  los   archivos   de   configuración  que   utilizaremos  en   este   caso   son   3  archivos: * comas.pl            (por si el código lo colocamos en algún path diferente a perl). * comas.conf            (configuración del propio comas). * comas_apache.conf            (configuración para la interacción entre apache2 y comas).

Estos archivos podemos crearlos con cualquier editor ya sea vi, nano, etc. A continuación se detalla el  contenido de cada archivo.

Comas.pl Este archivo debe contener lo siguiente: ­­ /etc/apache/startup.pl ­­ # Path to COMAS modules use lib qw(/path/to/comas/perl); #Return True 1; ­­ END ­­ Aquí modificamos el directorio en el cual se encuentra los archivos ".pm" de COMAS, si bajaste el  directorio usando "svn", los archivos ".pm" se encuentran en el path "trunk/perl", claro el path debe ser  absoluto no relativo, esto es, se debe escribir todo el path completo. Claro recordemos eliminar las lineas precedidas por "­­", a la hora de guardar el archivo.

 This work is licensed under a Creative Commons Attribution­Share Alike 2.5 License.   

TuXsOuL

Mario Oyorzabal Salgado

Comas_apache2.conf  Este archivo debe contener lo siguiente: ­­ /etc/apache/conf.d/comas_httpd.conf ­­   PerlRequire /etc/apache2/comas.pl         SetHandler perl­script      PerlHandler Apache2::Comas      PerlSetVar comas_config_file /path/to/your/comas.conf      PerlSetVar comas_instance    instance_name    ­­ END ­­ Aquí modificamos el path que tiene la linea "PerlRequire" hacia donde tenemos nosotros el archivo  "comas.pl", también hay que notar que en la configuración original de COMAS la linea: PerlHandler Apache::Comas Se cambio por esta: PerlHandler Apache2::Comas Para Apache2, despúes de eso tenemos que cambiar el path de la linea "comas_config_file" hacia  donde tengamos nosotros el archivo "comas.conf", por último modificamos el valor de "comas_instance"  por el nombre que nosotros queremos que se llame nuestra instancia de COMAS. Si se quisiera mostrar información de debug sobre COMAS, debemos agregar la siguiente linea:    PerlSetVar debug             "1"

 This work is licensed under a Creative Commons Attribution­Share Alike 2.5 License.   

TuXsOuL

Mario Oyorzabal Salgado

La cual debe ir antes de "" quedando el archivo de la siguiente manera: ­­ /etc/apache/conf.d/comas_httpd.conf ­­   PerlRequire /etc/apache2/comas.pl         SetHandler perl­script      PerlHandler Apache2::Comas      PerlSetVar comas_config_file /path/to/your/comas.conf      PerlSetVar comas_instance    instance_name      PerlSetVar debug             "1"    ­­ END ­­ Claro tampoco olvidemos eliminar las lineas precedidas por "­­", a la hora de guardar el archivo.

Comas.conf Este archivo debe contener lo siguiente: [comas_example] dbname="comas" #host="localhost" port="5432" dbuser="comas" dbpasswd="" adm_dbuser="comas_adm" adm_dbpasswd="" tmpl_path="/home/comas/examples/templates/" session_timeout=60 max_upload=10

 This work is licensed under a Creative Commons Attribution­Share Alike 2.5 License.   

TuXsOuL

Mario Oyorzabal Salgado

Aquí como podemos ver, solamente ponemos los valores adecuados para nuestra configuración de  COMAS los valores son obvios, salvo la etiqueta "comas_example" esta etiqueta debe ser el mismo  valor que utilizamos en el archivo anterior en el campo "comas_instance". En el caso de los "templates"  o   "tmpl_path"   se   puede   utilizar   por   mientras   los   que   trae   COMAS   como   ejemplos   ubicados   en  "trunk/examples/templates/consol" o "trunk/examples/templates/icgtmp". Claro recordemos eliminar las lineas precedidas por "­­", a la hora de guardar el archivo.

 This work is licensed under a Creative Commons Attribution­Share Alike 2.5 License.   

TuXsOuL

Mario Oyorzabal Salgado

Configurando Apache2 Para poder usar COMAS en Apache2 necesitamos habilitar los módulos correspondientes: * Módulo para perl #a2enmod perl * Módulo apreq para "Apache2::request" (peticiones GET y POST). #a2enmod apreq Primero creamos un enlace simbólico desde Apache2 para "comas_apache.conf", para así cargar la  primera configuración de COMAS: * Primero entramos en la carpeta "conf.d" contenida en el directorio de archivos de configuración de  Apache2. #cd /etc/apache2/conf.d * Despúes creamos un enlace simbólico hacia el archivo "comas_apache.conf": #ln ­s /directorio/a/donde/este/comas_apache.conf * Y reiniciamos Apache2. #/etc/init.d/apache2 restart

 This work is licensed under a Creative Commons Attribution­Share Alike 2.5 License.   

TuXsOuL

Mario Oyorzabal Salgado

Configurando PostgreSQL  Ahora configuraremos PostgreSQL (http://www.postgresql.org), ya que COMAS lo utiliza para guardar  toda la información. Para esto también es necesario el cliente de PostgreSQL por si no se instalo en los  apt­get's anteriores, esto lo podemos verificar ejecutando el comando "psql". Primero creamos los usuarios necesarios para COMAS asignándoles un password a cada uno, a la  hora de crear los usuarios en Postgresl nos hará unas preguntas, si queremos que el usuario pueda  crear más usuarios, y si el usuario puede crear más bases de datos, ha estas preguntas contestamos  que no. La creación de usuarios la hacemos de la siguiente manera, verificando que PostgreSQL este  en ejecución. * Cambiamos al usuario PostgreSQL: $su #su postgres $_ * Creamos al primer usuario con nombre "comas" $createuser comas ­P Ingrese la contraseña para el nuevo usuario: Ingrésela nuevamente: ¿Debe permitírsele al usuario la creación de bases de datos? (s/n) n ¿Debe permitírsele al usuario la creación de otros usuario? (s/n) n CREATE USER * Creamos al usuario "comas_adm" $createuser comas_adm ­P Ingrese la contraseña para el nuevo usuario: Ingrésela nuevamente: ¿Debe permitírsele al usuario la creación de bases de datos? (s/n) n ¿Debe permitírsele al usuario la creación de otros usuario? (s/n) n CREATE USER

 This work is licensed under a Creative Commons Attribution­Share Alike 2.5 License.   

TuXsOuL

Mario Oyorzabal Salgado

* Creamos la base de datos "comas" con dueño "comas_adm" sin salir de usuario PostgreSQL $createdb comas ­O comas_adm ­E latin1 *   Agregamos   el   lenguaje   "plpgsql"   a   la   base   de   datos   "comas"   para   ejecución   de   funciones  (programación) $createlang plpgsql comas Hasta ya tenemos la base de datos lista falta, el esquema (estructura), funciones y datos de prueba.  Para  eso  salimos  del   usuario  actual   y   nos  logeamos  como  "root",   para  modificar  los  permisos  de  PostgreSQL y nos permita loguearnos a la base de datos dando el password de usuario (recordando a  los usuarios que creamos anteriormente). Modificamos   el   archivo   "pg_hba.conf",  ubicado   en   "/etc/postgresql"   dependiendo  de   la   versión  de  PostgreSQL, se puede ejecutar la instrucción como root: #locate "pg_hba.conf" La cual nos dirá la ubicación del archivo que necesitamos. Lo modificamos agregando las siguientes  lineas al principio del archivo o antes de las lineas que trae de configuración ya establecida: # Comas local   comas       comas                                            md5 local   comas       comas_adm                                    md5 Con   esto   le   decimos   que   de   manera   local   (peticiones   únicamente   a   localhost   o   socket   unix)   a  PostgreSQL  se   le  harán  peticiones  de  los  usuarios  "comas",  "comas_adm"  para   la  base  de  datos  "comas" y la autentificación lo haga mediante "md5" para no revelar los passwords. Guardamos el  archivo y reiniciamos PostgreSQL, algunos dicen que no es necesario reiniciar PostgreSQL, pero más  vale. Ahora ya podemos logearnos como usuarios "comas" o "comas_adm" para probarlo ejecutamos: $psql ­d comas ­U comas_adm ­W

 This work is licensed under a Creative Commons Attribution­Share Alike 2.5 License.   

TuXsOuL

Mario Oyorzabal Salgado

Con lo cual nos preguntará nuestro password (el cual ingresamos a la hora de crear al usuario), y que le  decimos que nos conecte a la base de datos "comas". Si hay algún error hasta aquí hay que checar los  pasos anteriores o nuestra instalación de PostgreSQL. Una   vez   dentro   de   PostgreSQL   como   el   usuario   "comas_adm",  creamos   las   tablas   y   funciones  necesarias para eso podemos utilizar los archivos de ejemplo que COMAS trae. comas=> \i /directorio/hacia/donde/esta/comas/trunk/sql/schema.sql comas=> \i /directorio/hacia/donde/esta/comas/trunk/sql/functions.sql Con lo cual PostgreSQL hará todo el trabajo, ahora solo faltan los datos de prueba: comas=> \i /directorio/hacia/donde/esta/comas/trunk/examples/consol_initial_data.sql Ahora si ya tenemos todo nuestro PostgreSQL configurado para usar COMAS.

 This work is licensed under a Creative Commons Attribution­Share Alike 2.5 License.   

TuXsOuL

Mario Oyorzabal Salgado

Bisturí en COMAS Antes   de   probar   nuestro   COMAS,   primero   se   le   tienen   que   hacer   unas   modificaciones  que   se  encontraron para corregir algunos errores con la utilización bajo el plumerio de Apache2, esto es en el  código fuente de COMAS. Como estamos usando Apache2, el archivo que modificaremos esta ubicado  en "trunk/perl/Apache2/Comas.pm". * Primera modificación: Desde la Linea #47: use Apache::Const qw(:common); use Apache::Request; use Apache::RequestRec; use Apache::RequestUtil; Para que quede así: use Apache2::Const qw(:common); use Apache2::Request; use Apache2::RequestRec; use Apache2::RequestUtil; Además anexamos una librería más, ya que en el release para apache2 el código de Apache2::Request  fue separado, por lo que ahora necesitamos otra librería para los Uploads: use Apache2::Upload; Por lo que al final debe quedar así: use Apache2::Const qw(:common); use Apache2::Request; use Apache2::RequestRec; use Apache2::RequestUtil; use Apache2::Upload;

 This work is licensed under a Creative Commons Attribution­Share Alike 2.5 License.   

TuXsOuL

Mario Oyorzabal Salgado

* Segunda modificación: Linea #208:      $request = Apache::Request­>new($r, POST_MAX => $max_upload * 1024 * 1024); Por:      $request = Apache2::Request­>new($r, POST_MAX => $max_upload * 1024 * 1024); En los dos casos anteriores solamente se cambio la referencia "Apache::" por "Apache2::" para el uso  con las plumas de Apache2 con su nuevos módulos de Perl. * Última modificación: Linea #216:     # We process the parameter list this way in order to be able to deal with     # multivalued parameters (i.e. checkbox groups).     for my $key (keys %{$request­>param}) {         my @values = $request­>param($key);         $params{$key} = scalar(@values) > 1 ? [@values] : $values[0];     } Por:      # We process the parameter list this way in order to be able to deal with     # multivalued parameters (i.e. checkbox groups).     if ( defined ( $request­>param ) ) {         for my $key (keys %{$request­>param}) {             my @values = $request­>param($key);             $params{$key} = scalar(@values) > 1 ? [@values] : $values[0];         }     } Con eso arreglamos los detalles que a nosotros nos salieron.

 This work is licensed under a Creative Commons Attribution­Share Alike 2.5 License.   

TuXsOuL

Mario Oyorzabal Salgado

Bugs desconocidos Al ver el funcionamiento normal de “Comas”, notamos una serie de pequeños bugs, los cuales iremos  agregando  en  esta  sección,  en   caso  de  que  podamos   solucionarlos  colocaremos  la   solución   aquí  mismo.

Rating Erróneo Sucede cuando los miembros del comité registrados en “Comas”, evalúan un cierto material y colocan  su calificación del mismo, el rating funciona de manera errónea no llegando a calificar la presentación  de manera adecuada u otro tipo de mal funcionamiento. Para solucionar este bug, tendremos que recargar una funcion que “Comas” tiene, las funciones se  encuentran en el archivo “functions.sql”: Linea #600: ­­ ############################################################################# ­­ set_rating: Sets the rating and comments for a proposal. Receives four ­­ arguments: ­­ ­ The proposal ID (numeric) ­­ ­ The administrator's ID (numeric) ­­ ­ The requested rating (numeric) ­­ ­ Any comment that should be added to the rating (text). ­­ Returns true on success, throws exception on failure. CREATE OR REPLACE FUNCTION set_rating(integer, integer, integer, text)         returns bool AS 'DECLARE         set_prop_id ALIAS FOR $1;         set_admin_id ALIAS FOR $2;         set_rating ALIAS FOR $3;         set_comment ALIAS FOR $4;         been_rated integer; BEGIN

 This work is licensed under a Creative Commons Attribution­Share Alike 2.5 License.   

TuXsOuL

Mario Oyorzabal Salgado

        SELECT INTO been_rated count(rating) FROM prop_revision WHERE                 proposal_id=set_prop_id AND admin_id=set_admin_id;         IF been_rated = 0 THEN                 INSERT INTO prop_revision (proposal_id, admin_id, rating,                         comments) VALUES (set_prop_id, set_admin_id,                         set_rating, set_comment);         ELSE                 UPDATE prop_revision SET rating=set_rating,comments=set_comment                         WHERE proposal_id = set_prop_id AND                         admin_id = set_admin_id;         END IF;         RETURN ''t''; END;' LANGUAGE 'plpgsql'; Tiene que quedar de la siguiente forma: ­­ ############################################################################# ­­ set_rating: Sets the rating and comments for a proposal. Receives four ­­ arguments: ­­ ­ The proposal ID (numeric) ­­ ­ The administrator's ID (numeric) ­­ ­ The requested rating (numeric) ­­ ­ Any comment that should be added to the rating (text). ­­ Returns true on success, throws exception on failure. CREATE OR REPLACE FUNCTION set_rating(integer, integer, integer, text)         returns bool AS 'DECLARE         set_prop_id ALIAS FOR $1;         set_admin_id ALIAS FOR $2;         set_rating ALIAS FOR $3;         set_comment ALIAS FOR $4;         been_rated integer; BEGIN         SELECT INTO been_rated count(proposal_id) FROM prop_revision WHERE                 proposal_id=set_prop_id AND admin_id=set_admin_id;         IF been_rated = 0 THEN

 This work is licensed under a Creative Commons Attribution­Share Alike 2.5 License.   

TuXsOuL

Mario Oyorzabal Salgado

                INSERT INTO prop_revision (proposal_id, admin_id, rating,                         comments) VALUES (set_prop_id, set_admin_id,                         set_rating, set_comment);         ELSE                 UPDATE prop_revision SET rating=set_rating,comments=set_comment                         WHERE proposal_id = set_prop_id AND                         admin_id = set_admin_id;         END IF;         RETURN ''t''; END;' LANGUAGE 'plpgsql'; No es necesario que edites el archivo original, es a tu gusto, también puedes generar un archivo:  “cualquiernombre.sql”, copiando el código anterior y pegándolo en el nuevo, o puedes editar el archivo  original y dar los cambios, esto es a tu gusto. Ya   por   último  tendrás  que  volver   a  recargar  el   código  anterior  dentro   de  PostgreSQL  mediante   el  siguiente comando: comas=> \i /directorio/hacia/donde/esta/comas/trunk/sql/functions.sql O el nombre del archivo que creaste que contiene el código ya arreglado.

 This work is licensed under a Creative Commons Attribution­Share Alike 2.5 License.   

TuXsOuL

Mario Oyorzabal Salgado

Ejecutando COMAS Para ejecutar COMAS no te queda más que reiniciar Apache2, y dirigirte con tu browser (navegador  favorito) a la carpeta COMAS, eso dependiendo de la url por ejemplo: http://localhost/comas

Errores en COMAS Este howtux, no cubre toda una gama de errores que puedes tener en COMAS ya sea por algún error  en  el  código  fuente,  o por alguna función mal  hecha  en alguna librería  ya  que hay  veces  que las  librerías se actualizan tan rápido que ya dejan muchas cosas obsoletas, etc., etc. Para ver errores que tenga COMAS al momento de ejecutarse, estos errores son enviados al log de  Apache2 "error.log", por lo cual con ver este archivo te darás cuenta de lo que le pasa a tu COMAS.

Errores típicos de configuración en COMAS No modificar adecuadamente los archivos de configuración de COMAS, esto es, no poner los  valores adecuados con respecto a nuestro sistema, ya los valores que se ponen en este howtux,  son por default y tienen que modificarse. ● Instalar el directorio COMAS bajo "/var/www" cuando apache2 toma este mismo directorio como  "DocumentRoot", este también es un error típico, no podemos colocar la carpeta "COMAS" bajo  este   directorio   por   cuestiones  de   seguridad  la   recomendación   es   que   no   expongan   este  directorio a la web, pueden colocarlo en otro lugar. Por otro lado cuando se coloca una carpeta  con   el   nombre   "COMAS"   apache2,   tratara   primero   de   resolver   "http://localhost/comas",  buscando el directorio antes de ejecutar en si COMAS. ●

 This work is licensed under a Creative Commons Attribution­Share Alike 2.5 License.   

TuXsOuL

Mario Oyorzabal Salgado

Disclaimer Este howtux, no es oficial por parte de los desarrolladores de COMAS, así que no trates de enviarles a  ellos  algo  como  "hice  lo  que  decía  un  howtux  que  me  encontré  y   no  funciona  que  hago",  ya  que  COMAS incluye un archivo "Install.txt", en el cual de manera oficial se describe los pasos que hay que  seguir para su instalación y configuración. Recuerda que este howtux nació de la necesidad de los usuarios de CICOL por tener documentación ya  que luego se olvidan las cosas.

 This work is licensed under a Creative Commons Attribution­Share Alike 2.5 License.   

TuXsOuL

Mario Oyorzabal Salgado

Contacto Pues si quieres contactarnos para ayudar a mejorar este howtux bienvenido, o para invitarnos unas  pizzas también, jeje =). CICOL ­ http://www.cicol.org.mx IRC ­ chat.freenode.net #cicol ¿Pero quién hizo este howtux? Autor de este howtux: Web: E­mail:

Mario Oyorzabal Salgado  http://blog.tuxsoul.com [email protected]

Reporte de bugs: Web: email:

Jair Gaxiola Mercado <jyr> http://jyr.ath.cx [email protected]

 This work is licensed under a Creative Commons Attribution­Share Alike 2.5 License.   

TuXsOuL

Mario Oyorzabal Salgado

Changelog ●





2006­12­28 ○ Corrección número de línea en la última modificación "trunk/perl/Apache2/Comas.pm". ○ Agregada nueva sección Bugs desconocidos. ○ Cambio de la palabra “Postgresql” a “PostgreSQL”. 2006­12­25 ○ Pequeñas modificaciones al formato. ○ Liberado este howtux bajo licencia Creative Commons. ○ Actualizada url página jyr. 2006­04­09 ○ Howtux creado.

 This work is licensed under a Creative Commons Attribution­Share Alike 2.5 License.   

Related Documents

Howtux Comas
December 2019 17
Howtux Planetplanet
December 2019 15
Comas Toxicos
November 2019 22
Cementerio De Comas
May 2020 5
Pago Laudo Comas 2.docx
December 2019 13

More Documents from ""

Howtux Planetplanet
December 2019 15
Instalacion De Informix
December 2019 12
Usando Informix Con Php
December 2019 15
Howtux Comas
December 2019 17
Configurando Informix
December 2019 16
December 2019 77