Bienvenidos a este Blog

Bienvenidos a este blog dirigido a todos aquellos docentes interesados en utilizar cada vez más y mejor las TIC dentro de su aula.
Se trata de un blog con una clara vocación de divulgación técnica y su objetivo es facilitar a los formadores el acceso a los recursos informáticos existentes hoy en día.

jueves, 22 de marzo de 2012

Instalación de un servidor Openmeetings en Debian 6 Squeeze.


En un artículo anterior expliqué cómo instalar un servidor OpenMeetings en un PC con Windows, con el objetivo de disponer de una instalación que nos permitiera evaluar el producto y aprender su funcionamiento básico sin tener que complicarnos la vida con instalaciones en entornos linux, que para muchos, por desconocimiento del mismo, suponen un esfuerzo añadido.

Este artículo va dirigido a aquellos que finalmente han decido que el producto vale la pena y que desean instalar un servidor de videoconferencia en producción y que, como no podría ser de otra manera, van a hacerlo con linux.

Aunque en este blog se ha hablado en algunas ocasiones de este sistema operativo, quiero dejar claro que mi conocimiento y habilidad en el manejo del mismo es limitada y que cualquier operación un poco compleja requiere por mi parte de continuas y numerosas consultas a la documentación del distro utilizado y a los foros especializados donde gracias a usuarios más expertos que yo y que comparten sus conocimientos he podido salir a delante en este proyecto.

Dado el carácter divulgativo de este blog es posible que lo que en principio puede parecer un inconveniente (alguien que dice que no sabe lo suficiente de linux explicando cómo hacer la instalación de un producto complejo como Openmeetings) en realidad pueda ser una ventaja, ya que el punto de de vista de un “no experto” seguramente puede abordar el reto con un poco más de pragmatismo y con un espíritu más didáctico al no dar nada por hecho de antemano.


Para hacer la instalación de OpenMeetings en linux he elegido Debian 6 (Squeeze). 

Inicilamente he instalado el sistema operativo básico; esta instalación no tiene ningún secreto y hay documentación suficiente en la red para que no sea necesario que dedique tiempo a la misma.

Posteriormente he ido añadiendo los diferentes productos necesarios para la instalación de OpenMeetings; la lista de estos productos ya se comentaron en otro articulo anterior y recomendaría al lector que lo leyera previamente.

Para instalar cualquier producto en Debian 6 debemos hacerlo desde una consola de administrador, que podemos abrir desde la opción de menú:
AplicacionesAccesoriosTerminal de “Root”

El comando que permite instalar aplicaciones en Debian es
#aptitude install <aplicación1> <aplicación2> ….. <aplicaciónN>

Recordemos que en linux cada aplicación depende de una serie de paquetes que si no están instalados, el sistema los busca e instala de los repositorios externos que utiliza la distribución correspondiente

Sobre los repositorios a utilizar, además de los estándar que ya vienen configurados en Debian 6 debemos añadir algunos más que serán necesarios durante el proceso de instalación de algunos de los paquetes que necesitamos. Por lo tanto, modificaremos el archivo que mantiene la lista de repositorios.
# gedit /etc/apt/sources.list
de manera que quede así
deb http://ftp.es.debian.org/debian/ squeeze main contrib non-free
deb-src http://ftp.es.debian.org/debian/ squeeze main contrib non-free

deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free

# squeeze-updates, previously known as 'volatile'
deb http://ftp.es.debian.org/debian/ squeeze-updates main
deb-src http://ftp.es.debian.org/debian/ squeeze-updates main

## Añadido Multimedia Estable
deb http://www.debian-multimedia.org squeeze main

Una vez hecha la modificación debemos ejecutar


# aptitude update


para actualizar la lista de paquetes disponibles.

También instalaremos los paquetes necesarios para poder instalar después aquellas aplicaciones que no están en los repositorios y que necesitan un proceso manual que utiliza la secuencia de instrucciones ./configuremakemake install

# aptitude install libncurses5 libncurses5-dev build-essential

Como último paso, elegiremos una carpeta de maniobra para la descarga y manipulación de estas aplicaciones, por ejemplo, la carpeta de usuario
/home/<usuario>

Empezaremos por mencionar las aplicaciones que no requieren instalación porque ya han sido instaladas inicialmente junto con el sistema operativo
  • OpenOffice
  • ImageMagick
  • Ghostscript

Comprobar que tenemos instalado OpenOffice es sencillo, pero si queremos verificar que ImageMagick y Ghostscript lo están, podemos hacerlo con estos comandos que nos deben dar un resultado positivo (“Estado: Instalado”)
# aptitude show imagemagick | grep instal
# aptitude show ghostscript | grep instal

Comenzaremos por instalar Java JDK, paquete necesario para la ejecución de OpenMeetings. Debemos tener en cuenta diversos aspectos sobre Java aplicado a OpenMeetins
  • Desde la compra de SUN por parte de Oracle, por políticas de licencias de esta compañía,  Java de Sun ya no está disponible en muchos de los repositorios de las diferentes versiones de linux y terminará por desaparecer de todos ellos.
  • Existe una versión "open" de java denominada OpenJDK (openjdk-6-jdk) . Esta versión se puede instalar a partir de los repositorios de Debian mediante los mecanismo internos como el comando "aptitude install", pero a día de hoy, OpenMeetings no está preparado para trabajar con esta versión, lo que seguramente ocurrirá en un futuro cercano.

Tras diversas pruebas realizadas con las dos versiones de Java JDK la solución la hemos encontrado en la instalación manual del Java de Sun en su versión 6.

Para instalar debemos realizar los siguientes pasos 
  • Creación de un directorio para Java
# mkdir /usr/lib/java
  • copia al directorio de  java, asignación de permisos de ejecución  y ejecución del archivo descargado
# cp /<directorio descarga>/jdk-6u31-linux-i586.bin /usr/lib/java
# chmod +x /usr/lib/java/jdk-6u31-linux-i586.bin
# ./jdk-6u31-linux-i586.bin
  • añadir variables de entorno de Java en los archivos /roor/.bashhrc y /home/<usuario>/.bashrc
    # gedit /root/.bashrc y # gedit /home/<usuario>/.bashrc
Añadir las siguientes líneas a los archivos anteriores
export JAVA_HOME=/usr/lib/java/jdk1.6.0_31
export PATH=$JAVA_HOME/bin:$PATH
Arrancamos la máquina y comprobamos la correcta instalación de Java mediante el comando
# java -version
Una vez instalado Java ya podemos comenzar a instalar las aplicaciones que están en los repositorios de Debian                                    
# aptitude install flashplugin-nonfree                              (Adobe Flash)
# aptitude install ffmpeg                                                        (FFMpeg)
# aptitude install sox                                                               (SoX)

Seguidamente debemos instalar SWFTools, que por algún motivo que desconozco no está disponible en los repositorios de Debian 6 y que deberemos descargar y compilar manualmente

En primer lugar instalamos los paquetes de los que SWFTools depende y que deben estar instalados previamente
# aptitude install zlib1g-dev
# aptitude install libfreetype6-dev
# aptitude install libgif-dev
# aptitude install libjpeg62-dev

Descargamos el paquete de SWFTols en nuestra carpeta de maniobra, lo descomprimimos y lo instalamos.
#wget http://swftools.org/swftools-0.9.1.tar.gz
#tar -xf  swftools-0.9.1.tar.gz
# cd swftools-0.9.1
# ./configure
# make
# make install

Para comprobar que la instalación ha sido correcta podemos ejecutar el comando
# pdf2swf
que deberá dar la una salida válida mostrando las opciones del comando.

Una vez instalado el software previo, vamos instalar el gestor de base de datos, que en nuestro caso será MySQL.
# aptitude install mysql-server
En el proceso de instalación nos pedirá una contraseña para el usuario administrador (root) de MySQL.

Seguidamente crearemos una base de datos de nombre openmeetings con un usuario de nombre openmeetings y contraseña openmeetings. Utilizaremos los siguientes comandos.
# mysql -p -u root

mysql> CREATE DATABASE openmeetings DEFAULT CHARACTER SET 'utf8';
mysql> GRANT ALL PRIVILEGES ON openmeetings.* TO 'openmeetings'@'localhost' IDENTIFIED BY 'openmeetings' WITH GRANT OPTION;
mysql> exit
Con toda la infraestructura lista, ya podemos descargar, descomprimir y colocar la aplicación Openmeetings (y el servidor red5) en la carpeta adecuada.
# wget http://openmeetings.googlecode.com/files/openmeetings_1_9_1_r4707.zip
# unzip openmeetings_1_9_1_r4707.zip
# mv red5 /usr/lib

Quitamos permisos innecesarios y damos permisos de ejecución al script principal de red5 y al script de conversión de documentos OpenOffice
# chown -R nobody /usr/lib/red5
# chmod +x /usr/lib/red5/red5.sh
# chmod +x /usr/lib/red5/webapps/openmeetings/jod/jodconverter2.sh

El siguiente paso es configurar OpenMeetings para que trabaje con la base de datos MySQL que creamos anteriormente. Para ello es necesario cambiar el archivo de configuración del arranque de OpenMeetings
/usr/lib/red5/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml

Originalmente este archivo está configurado para trabajar con la base de datos Apache Derby que viene en el paquete red5+openmmetings

Dado que Openmmeetings nos proporciona modelos de configuración para cada tipo de base de datos soportada, renombramos el archivo original y copiamos el archivo de configuración correspondiente a MySQL
# cd /usr/lib/red5/webapps/openmeetings/WEB-INF/classes/META-INF
# mv persistence.xml apachederby_persistence.xml
# cp mysql_persistence.xml persistence.xml

Editamos el fichero de configuración
# gedit persistence.xml
y modificamos las líneas donde figuran los datos de conexión del usuario que asignamos a la base de datos cuando la creamos
, Username=openmeetings
, Password=openmeetings “/>

Solo nos queda arrancar el servidor. Para hacerlo manualmente deberíamos ejecutar el script
/usr/lib/red5/red5.sh
y lanzar OpenOffice como servicio, mediante el comando
soffice -headless -nologo -nofirststartwizard -accept="socket, host=127.0.0.1, port=8100;urp"
Ahora bien, lo que necesitamos es que estos procesos arranquen automáticamente cada vez que arrancamos la máquina. Para ello, deberemos crear un script de autoarranque para cada servicio; en la red podemos encontrar numeros scritps, pero muchos de ellos no funcionan correctamente, por lo que hemos preferido crearlos por nosotros mismos basándonos en los ya exitentes y simplificándolos al máximo


Al script de arranque de red5 le hemos llamado red5 y tiene el siguiente contenido
# !/bin/sh
# /etc/init.d/red5

case "$1" in
  start)
    cd /usr/lib/red5
    sudo sh red5.sh
    ;;
  stop)
    cd /usr/lib/red5
    sudo killall java
    ;;
  esac
Al script de arranque de OpenOffice le hemos llamado openoffice y tiene el siguiente contenido

#!/bin/bash
# /etc/init.d/openoffice

case "$1" in
  start)
    cd /usr/lib/openoffice/program
    sudo soffice -headless -nologo -nofirststartwizard -accept="socket,host=127.0.0.1,port=8100;urp" & > /dev/null
    ;;
  stop)
    sudo killall soffice
    ;;
  esac

Debemos guardar los scripts en la carpeta /etc/init.d, que es donde Debian guarda los scripts que se ejecutan durante el arranque de la máquina,  darles permisos de ejecución y añadirlos al proceso de arranque
# cd /etc/init.d
# chmod +x /etc/init.d/red5
# update-rc.d red5 defaults
# chmod +x /etc/init.d/openoffice
# update-rc.d openoffice defaults

Ahora debemos reiniciar el sistema con el fin de comprobar que todo el proceso funciona adecuadamente.

Desde el navegador ejecutamos el proceso de instalación inicial de la aplicación.
http://localhost:5080/openmeetings/install
Debemos cumplimentar un formulario donde debemos indicar los datos del usuario administrador de OpenMeetings, la zona horaria y un nombre para nuestra organización. También podemos definir el idioma por omisión; en el caso del español, veremos que la aplicación está parcialmente traducida y que faltan muchas cadenas por traducir. El resto de las opciones las podemos dejar para más adelante.


Hasta aquí esta guía que espero sea de utilidad, sobre todo a aquellos que no están familiarizados con el sistema operativo linux.

Le puedo asegurar que el procedimiento aquí explicado ha sido testeado cuidadosamente y que funciona, pero he de decir que OpenMeetings es un programa complejo de instalar y que cualquier cambio de versión de cualquiera de los productos implicados puede generar problemas o modificar algún aspecto de este procedimiento; seguro que en algún momento le surgirá alguna dificultad; le sugiero que para resolverla haga como yo, recurra a la documentación existente en internet y los foros de la comunidad. He aquí la dirección del foro en español.







14 comentarios:

  1. Brother tengo problemas instalando el SWFtool
    lo descargo
    #wget http://swftools.org/swftools-0.9.1.tar.gz
    descomprimo
    #tar -xf swftools-0.9.1.tar.gz
    # cd swftools-0.9.1
    ejecuto el
    # ./configure
    y al compilarlo con # make me dice -bash: make: no se encontró la orden :( que puede ser lo que sucede??

    ResponderEliminar
  2. Hey Gracias por la información descrita. Seguramente hoy por la noche podré realizar la instalación y ver que es lo que sucede. Por mi parte estoy tratando de instalarlo en un Ubuntu Server 12.04 lts, pero hay "segun" yo algunas librerias que no están más disponibles.

    Saludos y gracias!

    ResponderEliminar
  3. Lo siento, pero no he hecho pruebas con la versión 12.04 que utilizas.

    Estaría bien que comentaras las diferencias o las dificultades que puedas encontrar.

    ResponderEliminar
    Respuestas
    1. Javier:

      Pues es un exitó la instalación en Debian 6 Desktop, y te comento lo siguiente a grandes rasgos:

      Tuve un problema en la ejecución del servicio red5, comenzaba todo bien, pero al final marcó un error, siento no poder postearlo debido a que me encuentro en casa. Lo que realizé fué leer dicho error, mencionaba "tomcat", instalé tomcat, seguía el mismo error, después asigne permisos a todos los archivos ".sh" de ejecución [la carpeta donde se encuntra red5.sh], nada, seguía igual. Hasta que leí por un foro que "ayudaba" la ejecución del archivo red5-debug.sh [si bien recuerdo] y finalmente todo se ejecutó a la perfección. Pare el servicio, y volví nuevamente a ejecutar red5.sh y corrió sin ningun problema [¿raro? ¿Qué fué? ni idea], pero funciona.

      El único problema pendiente es que haces mención de Open Office, a la hora de ejecutar dicho comando para que escuche por el puerto que mencionas se queda la consola en proceso, pausada, congelada... no sé, ¿Es normal?, hasta mañana lo sabré cuando llegue al trabajo.

      Gracias por tu esfuerzo y sobre todo el compartir el conocimiento.

      Guillermo.

      Eliminar
  4. Hola buenas tardes,
    Antes de nada, enorme tutorial para instalar openmeetings. Gran trabajo.
    Lo he intentado instalar pero justo cuando hay que que arrancar el servidor con el script "/usr/lib/red5/red5.sh" me aparece el siguiente error:
    Starting Red5
    Exception in thread "main" java.lang.NoClassDefFoundError: org/red5/server/Bootstrap
    Caused by: java.lang.ClassNotFoundException: org.red5.server.Bootstrap
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
    Could not find the main class: org.red5.server.Bootstrap. Program will exit.

    No he conseguido averiguar por qué aparece. Me puede ayudar? Muchas gracias de antemano

    ResponderEliminar
  5. Hola Antonio.

    Este tipo de errores tiene que ver con que OM no encuentra Java, bien porque la versión no es compatible (Java 7, por ejemplo, no va con OM, o la versión libre, OpenJDK, tampoco), bien porque no encuentra el directorio de Java.

    Revisa todo lo referente a la instalación de Java.

    Siento no poder ayudarte más.

    ResponderEliminar
  6. Buenas otra vez. Gracias por la info.
    Otra duda, si instalo una versión de java anterior, si que funciona? Instalé Java SE 6 Update 37. Si instalo la 31, crees que funcionará?
    Gracias y perdón por las molestias.

    ResponderEliminar
  7. Probarlo es un momento, así que puedes hacerlo. Revisa las variables de entorno JAVA_HOME y PATH y asegúrate que apuntan a la carpeta donde está instalada java, que no tiene por qué ser las que yo indico en el artículo.

    Hay un foro de OM en español al que puedes recurrir. Yo no tengo todas las respuestas y aquí hay gente muy potente.

    Está en

    https://groups.google.com/forum/?fromgroups#!forum/openmeetings-en-espanol

    ResponderEliminar
  8. Muchas gracias de nuevo Javier. A ver si me dejan entrar en el foro.
    :)
    Saludos

    ResponderEliminar
  9. Javier buenas tardes, no me dio errores y siembargo no se conecta, me da problema al cargar la pagina, tal vez sea de la version java ya en la actualidad esta la 39 y no la 31 , no se de que puede ser
    creo que el fallo es de java cuando quise entrar en red5 me arrojo fuera y ponia algo de java segui instalando porque vi que habia que modificar los scrips pero igualmente no entro en la pagina . gracias de antemano. geno

    ResponderEliminar
  10. Hola Genoveva.

    Desde luego, sin Java, OM no funciona.

    Desinstala todas las versiones de Java que tengas y vuelve a instalar Java 6. No creo que importe que la subversion sea la 31 o la 39, pero debes adaptar los valores de PATH y de JAVA_HOME al nombre de la carpeta que esta crea.

    ResponderEliminar
  11. Despues de tanto trastear y encontrarme con el mismo error de Antonio Herreros, lo he solicionado de la siguiente forma:

    voy al directorio donde esta el archivo de ejecucion:
    cd /usr/lib/red5/

    Le asigno permisos de ejecucion a todos los usuarios:
    chmod a+x red5.sh

    y lo ejecuto con el comando:
    ./red5.sh

    Para todo esto hay que tener java configurado y el comando "update-alternatives --config java" debería apuntar al Java requerido.

    ResponderEliminar
  12. Hola a todos, luego de seguir el manual e ingresar a http://mylocalhost:5080/openmeetings/install
    me da los siguientes erroes

    Error while running installer, please check your installation

    org.dom4j.DocumentException: languages/languages.xml (No such file or directory) Nested exception: languages/languages.xml (No such file or directory)
    at org.dom4j.io.SAXReader.read(SAXReader.java:266)
    at org.apache.openmeetings.installation.ImportInitvalues.getLanguageFiles(ImportInitvalues.java:708)
    at org.apache.openmeetings.web.pages.install.InstallWizard$LangDropDown.(InstallWizard.java:500)
    at org.apache.openmeetings.web.pages.install.InstallWizard$ParamsStep2.(InstallWizard.java:211)
    at org.apache.openmeetings.web.pages.install.InstallWizard.(InstallWizard.java:97)
    at org.apache.openmeetings.web.pages.install.InstallWizardPage.(InstallWizardPage.java:38)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:534)
    at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:175)
    at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:67)
    at org.apache.wicket.DefaultMapperContext.newPageInstance(DefaultMapperContext.java:133)
    at org.apache.wicket.core.request.handler.PageProvider.resolvePageInstance(PageProvider.java:268)

    Alguien puede ayudar?

    ResponderEliminar