En mi artículo de septiembre de 2009 sobre Mashups en la Web 2.0 mencioné que la plataforma Morfeo EzWeb permitía crear mashups empresariales. Para ello hay dos opciones, o bien se crean y se publican sobre la plataforma pública Open EzWeb Beta que está a disposición de todos los internautas, o bien se hace una instalación en un servidor particular de la misma. Antes de empezar con la creación de aplicaciones y suponiendo que no se tuviera acceso a la plataforma Open EzWeb Beta, se va a comentar los pasos a seguir en el proceso de instalación de la misma.
Se decidió que la plataforma se instalaría en una máquina con Ubuntu Server 9.10 para máquina de 32 bits instalado. Para ello se siguieron las instrucciones que aparecen en la página http://forge.morfeo-project.org/wiki/index.php/Instalaci%C3%B3n_en_Sistemas_Debian/Ubuntu. En ella aparecían las siguientes instrucciones que se siguieron para completar la instalación:
Primero se edita el fichero /etc/apt/sources.list mediante la siguiente instrucción:
|
sudo vi /etc/apt/sources.list |
Y se añade la siguiente línea:
|
deb http://europa.ls.fi.upm.es/packages/debian/ latest main |
Esto sirve para añadir un repositorio más a la lista de paquetes. Una vez hecho esto se actualiza la lista de paquetes empleando:
Y, finalmente, se instala la Plataforma EzWeb mediante la expresión
|
sudo apt-get install ezweb-platform |
Al ejecutar esta última instrucción se obtiene:
|
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
No se pudieron instalar algunos paquetes. Esto puede significar que usted pidió una situación imposible o, si está usando la distribución inestable, que algunos paquetes necesarios no han sido creados o han sido movidos fuera de Incoming.
La siguiente información puede ayudar a resolver la situación:
Los siguientes paquetes tienen dependencias incumplidas:
ezweb-platform: Depende: ezweb-platform-common (>= 0.3~svn1499) pero no va a instalarse
Depende: ezweb-platform-postgres pero no va a instalarse o
ezweb-platform-mysql pero no es instalable o
ezweb-platform-sqlite3 pero no va a instalarse
E: Paquetes rotos |
Este error se debe a que los paquetes de Debian ya no se mantienen y a que una de las librerías que se piden como requeridas ha cambiado el nombre. Puesto que dentro de la forja de las tecnologías Morfeo se ofrece otra forma de instalarlo, se procedió a hacerlo así. En la primera intentona hubo un problema pues habían movido el repositorio de sitio y no se podía acceder a él, pero más adelante volvió a tener la dirección correcta, con lo cual se solucionó el problema y se pudo terminar la instalación.
Así pues, para la instalación de la plataforma Morfeo EzWeb eran necesarias una serie de tecnologías que o bien había que instalar en la máquina, o bien ya venían instaladas con la instalación por defecto de Ubuntu. Estas tecnologías eran:
-
-
-
Driver para el gestor de base de datos y la versión de Python utilizada
-
Django 1.0.x o superior y las siguientes librerías:
-
mod_python (sólo necesario en caso de utilizar Apache como servidor Web)
-
El gestor de base de datos puede ser cualquiera siempre y cuando disponga del correspondiente driver para la versión de Python que esté utilizando. Si no se dispone de ningún gestor, existen muchas alternativas OpenSource que se pueden obtener fácilmente a través de la Web junto con su correspondiente documentación.
Los gestores de base de datos OpenSource más recomendados son:
-
-
Driver para Python [Windows].
PyPgSQL
-
-
En el caso que se muestra en el artículo se instaló MySQL (la base de datos que en principio instalaba los paquetes de la distribución de Debian era la PostgreSQL). Para facilitar el proceso, la instalación se hizo desde el gestor de paquetes Synaptic de la interfaz gráfica de Ubuntu. Si se hubiera querido hacer por consola se hubiera empleado el comando apt-get (en sistemas basados en Red Hat Linux se podría emplear yum):
Así pues, la instalación de paquetes mediante el uso del gestor de paquetes Synaptic es muy sencilla.
Esta aplicación se encuentra en:
Una vez que se abre, se debe buscar el paquete a instalar. Para eso se puede emplear o bien los cuadros de búsqueda o ir a la lista de la parte izquierda donde se pueden seleccionar distintos valores que sirven para filtrar el tipo de paquetes que se muestran.
Una vez que se ha encontrado el paquete que se quiere instalar, se pulsa con el botón derecho sobre el paquete y se clica sobre “Marcar para instalar”:
En este punto del proceso, puede que se necesiten otros paquetes pues son dependencias, entonces aparecerá una ventana similar a la que se muestra a continuación y que contendrá todas las dependencias:
Para continuar con la instalación habrá que elegir Marcar. Una vez elegido esto, los paquetes a instalar aparecen marcados de manera especial y sólo queda aplicar los cambios:
De esta manera:
-
Se instaló MySQL como base de datos y todas sus dependencias (hay que instalar el servidor, no sólo el cliente, puesto que en el servidor será donde se alojen las bases de datos).
-
Se instaló Python 2.6.4 (esto ya viene instalado por defecto con la instalación por defecto de Ubuntu)
-
Se instaló el driver para MySQL y Python (python-mysqldb y python-mysqldb-dbg) con las dependencias que se necesitaban.
-
Se instaló apache2 con todas sus dependencias y libapache2-mod-python
-
Se instaló Django (python-django versión 1.1.1)
-
Se instaló PyXML (se descarga desde sourceForge, versión 0.8.4).
-
Se descargó desde sourceForge (la versión 0.8.4: es de 2004)
-
Se descomprimió
-
Se movió a /usr/lib/python2.6/dist-packages (en la instalación realizada, si se hubiera empleado python 2.5, entonces se debería haber movido a /usr/lib/python2.5/site-packages):
|
sudo mv {Dir_a_directorio_donde_descomprimido}/PyXML-0.8.4 /usr/lib/python2.6/dist-packages
Si se emplea la versión 2.5 sustituir dist-packages por site-packages |
Una vez instaladas todas las tecnologías necesarias que necesitaba la plataforma se probó a instalar de nuevo con la instrucción sudo apt-get install ezweb-platform pero tampoco funcionó. Daba el mismo error que se ha mostrado más arriba. Este error se debe a que los paquetes de la distribución de Debian están obsoletos y tienen dependencia de una librería que actualmente ha cambiado.
Entonces se procedió a instalar el sistema de versiones subversion para descargarse la última versión de la plataforma del repositorio donde se guardan. Una vez instalado se ejecutó en un terminal:
Esta instrucción lo que hace es un checkout de los paquetes que existen en el repositorio dado por la URL / URI, en el directorio desde donde se esté haciendo la ejecución de la instrucción. Por ejemplo si la ruta actual donde se encuentra el usuario al ejecutar esta instrucción desde consola es /home/blanca (para saber la localización actual emplear la instrucción pwd), en ese directorio se creará una carpeta con el nombre de la carpeta desde la que se están descargando los datos (checkout) en la que se descargará todo el contenido que existe en la dirección URL / URI de la instrucción.
Una vez descargado el contenido ya se tiene la plataforma EzWeb y lo que se debe hacer es configurarla. Para eso:
Primero se debe configurar la base de datos para la Plataforma EzWeb. Para ello hay que editar el fichero settings.py que se encuentra en el directorio raíz de EzWeb (en el caso de la instalación que se estaba haciendo home/blanca):
|
DATABASE_ENGINE = 'mysql' # 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' u 'oracle'.
DATABASE_NAME = 'mydb' # Nombre de la base de datos o path a la base de datos si se usa sqlite3.
DATABASE_USER = 'user' # Nombre de usuario de la base de datos. No se usa con sqlite3.
DATABASE_PASSWORD = 'pass' # Contraseña. No se usa con sqlite3.
DATABASE_HOST = '' # Cadena vacía si localhost. No se usa con sqlite3.
DATABASE_PORT = '' # Cadena vacía si es el puerto por defecto. No se usa con sqlite3. |
Una vez definida la configuración de la base de datos hay que construirla en función de los modelos definidos en la plataforma. Para eso se debe ejecutar:
Con esto ya estaría configurada la plataforma, sólo quedaría desplegarla en un Servidor Web. Este despliegue dependerá de qué tipo de servidor se utilice. Si se utiliza el servidor Apache, hay que copiar los ficheros de la plataforma en el directorio correspondiente de Apache (directorio donde se deben guardar las páginas web, o hacer un link a los ficheros que interesan ejecutar mediante la opción ln –s destino origen. Si utiliza el servidor de Django, se debe ejecutar desde el directorio raíz de EzWeb (en el caso de la instalación que se estaba haciendo home/blanca):
|
python manage.py runserver host:port |
En este caso host y port son la máquina y el puerto donde desea arrancar la plataforma, respectivamente, por ejemplo localhost y 8080.
Con esto ya se tendría instalada la plataforma. El resultado final se puede ver en la siguiente imagen:
BIBLIOGRAFÍA: