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ú:
Aplicaciones – Accesorios – Terminal 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 ./configure – make – make 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
Para instalar debemos realizar los siguientes pasos
- Descarga del archivo jdk-6u31-linux-i586.bin de la web de Oracle www.oracle.com/technetwork/java/javase/downloads
- 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
Arrancamos la máquina y comprobamos la correcta instalación de Java mediante el comandoexport JAVA_HOME=/usr/lib/java/jdk1.6.0_31
export PATH=$JAVA_HOME/bin:$PATH
# java -versionUna 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 rootmysql> 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.shy 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/shAl script de arranque de OpenOffice le hemos llamado openoffice y tiene el siguiente contenido
# /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
#!/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.
Brother tengo problemas instalando el SWFtool
ResponderEliminarlo 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??
en Debian?
ResponderEliminar# apt-get install make
?
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.
ResponderEliminarSaludos y gracias!
Lo siento, pero no he hecho pruebas con la versión 12.04 que utilizas.
ResponderEliminarEstaría bien que comentaras las diferencias o las dificultades que puedas encontrar.
Javier:
EliminarPues 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.
Hola buenas tardes,
ResponderEliminarAntes 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
Hola Antonio.
ResponderEliminarEste 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.
Buenas otra vez. Gracias por la info.
ResponderEliminarOtra 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.
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.
ResponderEliminarHay 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
Muchas gracias de nuevo Javier. A ver si me dejan entrar en el foro.
ResponderEliminar:)
Saludos
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
ResponderEliminarcreo 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
Hola Genoveva.
ResponderEliminarDesde 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.
Despues de tanto trastear y encontrarme con el mismo error de Antonio Herreros, lo he solicionado de la siguiente forma:
ResponderEliminarvoy 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.
Hola a todos, luego de seguir el manual e ingresar a http://mylocalhost:5080/openmeetings/install
ResponderEliminarme 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?
Nice blog, it's so knowledgeable, informative, and good looking site. I appreciate your hard work. Good job. Thank you for this wonderful sharing with us. Keep Sharing.
ResponderEliminarhome tutor in Lucknow | home tutor in Lucknow