Instalando DSpace en Linux
- Autor:
- Jaime Virgilio Gómez Negrete
- Publicado:
- 01 de Octubre de 2011
- Derechos:
- Derechos Reservados © 2012 Jaime Virgilio Gómez Negrete
| i | ||
Actualmente es muy frecuente entre las instituciones de educación superior la necesidad de establecer sistemas de repositorios digitales para el correcto manejo y preservación de una amplia gama de documentos informáticos. Un repositorio digital opera en un entorno de red, permite un buen nivel de colaboración entre los miembros de la comunidad y posibilita la interoperabilidad con otros repositorios situados en otras instituciones, enriqueciendo mutuamente sus respectivas colecciones. En este artículo le mostraremos cómo instalar un repositorio digital basado en DSpace, un software desarrollado inicialmente en conjunto por la biblioteca del Instituto Tecnológico de Massachusetts (MIT) y la empresa Hewlett-Packard (HP) aunque actualmente cuenta con el soporte de DuraSpace [01], una empresa sin fines de lucro creada para promover además el desarrollo de Fedora y DuraCloud.
Mostraré cómo hacer la instalación en Linux porque es la alternativa por excelencia cuando se habla de servidores. Como este artículo se basa en mi experiencia, hago entonces referencia a la distribución Mandriva, sin embargo los pasos indicados pueden utilizarse prácticamente en cualquier distribución de Linux. Este artículo tiene un carácter técnico y se requiere un mínimo de experiencia y cierta familiaridad en el manejo de la línea de comandos de Linux, sin embargo una lectura cuidadosa y la paciencia apropiada le permitirán a un principiante lograr una instalación adecuada de Dspace, prácticamente sin esfuerzo y créame, le ahorrará mucho tiempo y hasta dolores de cabeza.
Importante. Este artículo muestra cómo realicé la instalación de DSpace en Linux distribución Mandriva en Octubre de 2011. Es fundamental que verifique la vigencia del software utilizado. Algunos hipervínculos para la descarga del software pueden no funcionar debido al cambio en la versión del software utilizado. Consulte en la sección de referencias los sitios de cada uno de los productos de software mencionados en este artículo.
DSpace, requisitos de instalación
Como afirman en su sitio web, DSpace se puede instalar fácilmente y queda en operación prácticamente al sacarlo de la caja. La mala noticia es que DSpace no viene en una caja. Dejemos a un lado los sarcasmos. DSpace requiere para su operación de los siguientes productos de software:
- Sistema operativo Linux
- Sistema de base de datos relacional PostgreSQL
- Kit para el desarrollo de software (SDK) de Java
- Administrador de proyectos Apache Maven
- Administrador de procesos Apache Ant
- Servidor web Jakarta Tomcat
Instalación de Linux, distribución Mandriva
Cuando se trata de instalar un servidor web lo más recomendable es hacerlo en una máquina destinada especialmente para tal fin. Naturalmente, si Usted esta interesado solo en conocer el producto y probablemente experimentar con el mismo, la instalación de Linux se puede hacer en una partición existente en su disco duro actual e implementar un mecanismo de doble arranque, todo dependerá de los fines de cada quién. Lo importante es empezar con una instalación limpia pues esto nos ahorrará futuros problemas. Afortunadamente, las más recientes distribuciones de Linux vienen con modernos mecanismos de instalación que facilitan mucho la tarea, esta es una buena noticia particularmente para los principiantes, pero desafortunadamente las tendencias de las distribuciones Linux en hacer énfasis en sistemas propios para escritorio han retirado de la instalación estándar elementos que son indispensables para trabajar con software como es el caso de DSpace. En este artículo no entraremos en detalles respecto a la instalación de Linux, solo queremos hacer énfasis en lo importante que es empezar con una instalación limpia y 100% operativa. Como recomiendo usar la distribución Mandriva, le proporciono el enlace para descargar la imagen ISO tanto en 32 como en 64 bits. Descargue la que corresponda a su equipo en particular.
Una vez descargada la imagen, úsela para crear un DVD y después use éste disco para arrancar e instalar el sistema operativo.
En la instalación de Linux es suficiente con seguir las indicaciones en pantalla, solo le recomiendo un pequeño detalle en relación a la asignación de las particiones del disco duro: Hágase la vida simple. ¿A qué me refiero? Bueno, cuando llegue al punto en la instalación donde se le pregunte por la asignación de las particiones, sólo defina tres en este orden:
- Partición swap. Igual al doble de la cantidad de memoria RAM de su sistema. Claro, esta es una regla popular, igual no tiene mucho sentido asignar más allá de 2 Gb. para esta partición.
- Partición / también conocida como raíz. Asigne unos 40 Gb, para cualquier distribución Linux es más que suficiente.
- Partición /usr/local. Esta recomendación de mi parte es poco ortodoxa, pues por lo general los textos recomiendan para los principiantes la partición /home. El motivo por el cual le recomiendo asignar una partición para /usr/local es porque es el lugar en donde instalaremos todo, y al estar en una partición de uso exclusivo facilita mucho las actualizaciones del sistema e incluso la migración a otros equipos sin problemas. Asignar el resto del espacio libre del disco duro.
Después de asignar las particiones, siga con las indicaciones en pantalla hasta completar la instalación. Una vez que tenga el escritorio de Linux operando, no haga nada, excepto seguir las indicaciiones de este artículo. Naturalmente, como siguió las indicaciones de instalación, ahora ya sabe que hay dos tipos de usuario: el normal y el usuario root. Seguramente tomó nota de la contraseña de root pues este dato lo necesitará con frecuencia.
En este artículo asumimos que la cuenta de usuario normal lleva su nombre de pila, es una práctica frecuente. Para fines de ilustración, en este artículo la cuenta normal se llama mi_cuenta y la cuenta del super usuario lleva el nombre por todos conocido: root. Durante el proceso de instalación, se crearán dos cuentas de usuario adicionales, pero esto lo verá en su momento.
Instalación del software de requisito
Instalaremos DSpace, pero como éste requiere de PostgreSQL y éste a su vez necesita ciertas aplicaciones previamente instaladas, empezaremos con la instalación de éstas. El secreto de una buena instalación es el orden correcto en la instalación de los requisitos, pues éstos a su vez dependen mutuamente de sus antecesores. Esta es la lista de software que instalaremos:
- M4 [02]
- Autoconf [03]
- Automake [04]
- Bison [05]
- Flex [06]
- Libtool [07]
- Ncurses [08]
- Readline [09]
- Zlib [10]
- Perl [11]
- PostgreSQL [12]
- Java SDK [13]
- Apache Maven [14]
- Apache Ant [15]
- Apache Tomcat [16]
- DSpace
Es necesario instalar Perl a pesar de que en su sistema con toda seguridad ya cuenta con el mismo. La razón de instalar todo este software desde su respectivo código fuente es que necesitamos los documentos de encabezado y además el objetivo es contar en la partición /usr/local con un sistema que facilite futuras actualilzaciones del sistema operativo.
Es hora de entrar en acción. Abra la línea de comandos y ejecute las siguientes instrucciones. Primero creamos el directorio en donde descargaremos el software:
[mi_cuenta@localhost ~]$ pwd
/home/mi_cuenta
[mi_cuenta@localhost ~]$ mkdir software
[mi_cuenta@localhost ~]$ cd software
Ahora descargamos las aplicaciones necesarias:
[mi_cuenta@localhost ~]$ wget http://ftp.gnu.org/gnu/m4/m4-1.4.15.tar.gz
[mi_cuenta@localhost ~]$ wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.68.tar.gz
[mi_cuenta@localhost ~]$ wget http://ftp.gnu.org/gnu/automake/automake-1.11.1.tar.gz
[mi_cuenta@localhost ~]$ wget http://ftp.gnu.org/gnu/bison/bison-2.4.3.tar.gz
[mi_cuenta@localhost ~]$ wget http://prdownloads.sourceforge.net/flex/flex-2.5.35.tar.gz
[mi_cuenta@localhost ~]$ wget http://ftp.gnu.org/gnu/libtool/libtool-2.4.tar.gz
[mi_cuenta@localhost ~]$ wget http://ftp.gnu.org/gnu/ncurses/ncurses-5.7.tar.gz
[mi_cuenta@localhost ~]$ wget http://ftp.gnu.org/gnu/readline/readline-6.1.tar.gz
[mi_cuenta@localhost ~]$ wget http://zlib.net/zlib-1.2.5.tar.gz
[mi_cuenta@localhost ~]$ wget http://www.cpan.org/src/5.0/perl-5.14.2.tar.gz
[mi_cuenta@localhost ~]$ wget http://wwwmaster.postgresql.org/download/mirrors-ftp/source/v9.0.5/postgresql-9.0.5.tar.gz
Una vez descargado el software es necesario descomprimir los archivos, por lo tanto ejecute las siguientes instrucciones:
[mi_cuenta@localhost ~]$ tar -xzf m4-1.4.15.tar.gz
[mi_cuenta@localhost ~]$ tar -xzf autoconf-2.68.tar.gz
[mi_cuenta@localhost ~]$ tar -xzf automake-1.11.1.tar.gz
[mi_cuenta@localhost ~]$ tar -xzf bison-2.4.3.tar.gz
[mi_cuenta@localhost ~]$ tar -xzf flex-2.5.35.tar.gz
[mi_cuenta@localhost ~]$ tar -xzf libtool-2.4.tar.gz
[mi_cuenta@localhost ~]$ tar -xzf ncurses-5.7.tar.gz
[mi_cuenta@localhost ~]$ tar -xzf readline-6.1.tar.gz
[mi_cuenta@localhost ~]$ tar -xzf zlib-1.2.5.tar.gz
[mi_cuenta@localhost ~]$ tar -xzf perl-5.14.2.tar.gz
[mi_cuenta@localhost ~]$ tar -xzf postgresql-9.0.5.tar.gz
Ahora viene el proceso de instalación de cada aplicación.
Instalando M4
[mi_cuenta@localhost ~]$ cd m4-1.4.15/
[mi_cuenta@localhost ~]$ ./configure --prefix=/usr/local
[mi_cuenta@localhost ~]$ make
[mi_cuenta@localhost ~]$ su
Contraseña: root_password
[root@localhost mi_cuenta]# make install
[root@localhost mi_cuenta]# exit
Instalando Autoconf
[mi_cuenta@localhost ~]$ cd ../autoconf-2.68/
[mi_cuenta@localhost ~]$ ./configure --prefix=/usr/local
[mi_cuenta@localhost ~]$ make
[mi_cuenta@localhost ~]$ su
Contraseña: root_password
[root@localhost mi_cuenta]# make install
[root@localhost mi_cuenta]# exit
Instalando Automake
[mi_cuenta@localhost ~]$ cd ../automake-1.11.1/
[mi_cuenta@localhost ~]$ ./configure --prefix=/usr/local
[mi_cuenta@localhost ~]$ make
[mi_cuenta@localhost ~]$ su
Contraseña: root_password
[root@localhost mi_cuenta]# make install
[root@localhost mi_cuenta]# exit
Instalando Bison
[mi_cuenta@localhost ~]$ cd ../bison-2.4.3/
[mi_cuenta@localhost ~]$ ./configure --prefix=/usr/local
[mi_cuenta@localhost ~]$ make
[mi_cuenta@localhost ~]$ su
Contraseña: root_password
[root@localhost mi_cuenta]# make install
[root@localhost mi_cuenta]# exit
Instalando Flex
[mi_cuenta@localhost ~]$ cd ../flex-2.5.35/
[mi_cuenta@localhost ~]$ ./configure --prefix=/usr/local
[mi_cuenta@localhost ~]$ make
[mi_cuenta@localhost ~]$ su
Contraseña: root_password
[root@localhost mi_cuenta]# make install
[root@localhost mi_cuenta]# exit
Instalando Libtool
[mi_cuenta@localhost ~]$ cd ../libtool-2.4/
[mi_cuenta@localhost ~]$ ./configure --prefix=/usr/local
[mi_cuenta@localhost ~]$ make
[mi_cuenta@localhost ~]$ su
Contraseña: root_password
[root@localhost mi_cuenta]# make install
[root@localhost mi_cuenta]# exit
Instalando Ncurses
[mi_cuenta@localhost ~]$ cd ../ncurses-5.7/
[mi_cuenta@localhost ~]$ ./configure --with-libtool --without-cxx-binding
[mi_cuenta@localhost ~]$ make
[mi_cuenta@localhost ~]$ su
Contraseña: root_password
[root@localhost mi_cuenta]# make install
[root@localhost mi_cuenta]# exit
Instalando Readline
[mi_cuenta@localhost ~]$ cd ../readline-6.1/
[mi_cuenta@localhost ~]$ ./configure --prefix=/usr/local
[mi_cuenta@localhost ~]$ make
[mi_cuenta@localhost ~]$ su
Contraseña: root_password
[root@localhost mi_cuenta]# make install
[root@localhost mi_cuenta]# exit
Instalando Zlib
[mi_cuenta@localhost ~]$ cd ../zlib-1.2.5/
[mi_cuenta@localhost ~]$ ./configure --shared
[mi_cuenta@localhost ~]$ make
[mi_cuenta@localhost ~]$ su
Contraseña: root_password
[root@localhost mi_cuenta]# make install
[root@localhost mi_cuenta]# exit
Instalando Perl
[mi_cuenta@localhost ~]$ cd ../perl-5.14.2/
[mi_cuenta@localhost ~]$ rm -f config.sh Policy.sh
[mi_cuenta@localhost ~]$ sh Configure -de
[mi_cuenta@localhost ~]$ make
[mi_cuenta@localhost ~]$ make test
[mi_cuenta@localhost ~]$ su
Contraseña: root_password
[root@localhost mi_cuenta]# make install
[root@localhost mi_cuenta]# exit
Instalando PostgreSQL
[mi_cuenta@localhost ~]$ cd ../postgresql-9.0.5/
[mi_cuenta@localhost ~]$ ./configure --prefix=/usr/local
[mi_cuenta@localhost ~]$ make
[mi_cuenta@localhost ~]$ su
Contraseña: root_password
[root@localhost mi_cuenta]# make install
Ahora creamos dos cuentas de usuario nuevas, una para el sistema de base de datos referencial llamada postgres y una más para uso exclusivo del repositorio denominada dspace. Enseguida creamos un directorio para almacenar el clúster de base de datos, le asignamos como propietario la cuenta postgres, cambiamos a esta cuenta para inicializar el clúster y finalmente arrancamos el demonio del sistema de base de datos:
[root@localhost mi_cuenta]# adduser -m postgres
[root@localhost mi_cuenta]# adduser -m dspace
[root@localhost mi_cuenta]# mkdir /usr/local/pgsql_data
[root@localhost mi_cuenta]# chown postgres /usr/local/pgsql_data
[root@localhost mi_cuenta]# su - postgres
[postgres@localhost ~]$ initdb -D /usr/local/pgsql_data --pwprompt --encoding=UTF8
[postgres@localhost ~]$ postgres -D /usr/local/pgsql_data >logfile 2>&1 &
Ya con el demonio de PostgreSQL operando, creamos un rol denominado dspace que será el propietario de una nueva base de datos, igualmente denominada dspace que será la que más adelante reciba toda la información que DSpace necesitará. Es necesario que esta base de datos exista de lo contrario el proceso de instalación fallará. Las instrucciones indican que deberá asignar una contraseña, por lo que se recomienda tome nota para su futuro uso.
[postgres@localhost ~]$ createuser -U postgres -d -A -P dspace
[postgres@localhost ~]$ createdb -U dspace -E UNICODE dspace
Instalando Java y DSpace
El siguiente paso es instalar el SDK de Java y todas las aplicaciones que DSpace necesita. Salimos de la cuenta postgres, creamos un directorio para almacenar todo lo que tenga que ver con Java, lo asignamos al usuario dspace, cambiamos a ésta cuenta y al directorio recién creado, y descargamos de Internet las aplicaciones Java requeridas:
[postgres@localhost ~]$ exit
[root@localhost mi_cuenta]# mkdir /usr/local/java
[root@localhost mi_cuenta]# chown dspace /usr/local/java
[root@localhost mi_cuenta]# chgrp dspace /usr/local/java
[root@localhost mi_cuenta]# su - dspace
[dspace@localhost ~]$ cd /usr/local/java
[dspace@localhost ~]$ wget http://download.oracle.com/otn-pub/java/jdk/6u27-b07/jdk-6u27-linux-i586.bin
[dspace@localhost ~]$ wget http://www.apache.org/dyn/closer.cgi/maven/binaries/apache-maven-2.2.1-bin.tar.gz
[dspace@localhost ~]$ wget http://apache.webxcreen.org//ant/binaries/apache-ant-1.8.2-bin.tar.gz
[dspace@localhost ~]$ wget http://apache.webxcreen.org/tomcat/tomcat-7/v7.0.22/bin/apache-tomcat-7.0.22.tar.gz
[dspace@localhost ~]$ wget http://sourceforge.net/projects/dspace/files/DSpace%20Stable/1.7.2/dspace-1.7.2-src-release.tar.gz
Lo que sigue es descomprimir los archivos descargados:
[dspace@localhost ~]$ tar -xzf apache-maven-2.2.1-bin.tar.gz
[dspace@localhost ~]$ tar -xzf apache-ant-1.8.2-bin.tar.gz
[dspace@localhost ~]$ tar -xzf apache-tomcat-7.0.22.tar.gz
[dspace@localhost ~]$ tar -xzf dspace-1.7.2-src-release.tar.gz
Ahora, ajustamos los permisos de ejecución para la instalación del SDK de Java y ejecutamos la aplicación, la cual nos generará un directorio homónimo a la versión descargada que contiene todo el SDK propiamente dicho:
[dspace@localhost ~]$ chmod a+x jdk-6u27-linux-i586.bin
[dspace@localhost ~]$ ./jdk-6u27-linux-i586.bin
Como parte del requisito de instalación de DSpace, es necesario crear un directorio en donde el proceso de instalación almacenará la aplicación de DSpace debidamente configurada para su uso en su sistema:
[dspace@localhost ~]$ mkdir /usr/local/java/dspace
Ahora nos cambiamos al directorio en donde descomprimimos la aplicación de instalación de DSpace, definimos algunas variables de entorno y ajustamos la variable $PATH para que al ejecutar la instalación Linux encuentre tanto al SDK de Java como a las aplicaciones Java requeridas:
[dspace@localhost ~]$ cd /dspace-1.7.2-src-release/dspace/
[dspace@localhost ~]$ export M2_HOME=/usr/local/java/apache-maven-2.2.1
[dspace@localhost ~]$ export M2=$M2_HOME/bin
[dspace@localhost ~]$ export MAVEN_OPTS="-Xms256m -Xms512m"
[dspace@localhost ~]$ export PATH=$M2:$PATH
[dspace@localhost ~]$ export JAVA_HOME=/usr/local/java/jdk1.6.0_27
[dspace@localhost ~]$ export PATH=$JAVA_HOME/bin:$PATH
[dspace@localhost ~]$ export ANT_HOME=/usr/local/java/apache-ant-1.8.2
[dspace@localhost ~]$ export PATH=$ANT_HOME/bin:$PATH
[dspace@localhost ~]$ export TOMCAT_USER=dspace
[dspace@localhost ~]$ export JAVA_OPTS="-Xmx512M -Xms64M -Dfile.encoding=UTF-8"
Antes de iniciar la instalación de DSpace es necesario configurar algunas variables en el documento denominado dspace.cfg que se encuentra en la siguiente ubicación:
- usr/local/java/dspace-1.7.2-src-release/dspace/config/dspace.cfg
Localice y ajuste los valores para las siguientes variables. Entre paréntesis le mostramos un ejemplo de los posibles valores, lógicamente asigne los datos que correspondan a su caso en particular:
- dspace.dir (/usr/local/java/dspace)
- dspace.url (http://www.midspacedemo.com)
- dspace.hostname (http://www.midspacedemo.com)
- dspace.name (Mi repositorio DSpace)
- db.password (postgres_password_asignada)
- mail.server (http://smtp.midspacedemo.com)
- mail.from.address (mi_nombre@midspacedemo.com)
- feedback.recipient (sugerencias@midspacedemo.com)
- mail.admin (mi_nombre@midspacedemo.com)
- alert.recipient (mi_nombre@midspacedemo.com)
- registration.notify (mi_nombre@midspacedemo.com)
Por fin estamos en posibilidad de iniciar el proceso de instalación de DSpace:
[dspace@localhost ~]$ mvn package
[dspace@localhost ~]$ cd /dspace-1.7.2-src-release/dspace/target/dspace-1.7.2-build.dir
[dspace@localhost ~]$ ant fresh_install
Ahora copiamos la aplicación DSpace en el servidor Tomcat:
[dspace@localhost ~]$ cp -R /usr/local/java/dspace/webapps/* /usr/local/java/apache-tomcat-7.0.21/webapps
El siguiente paso es crear la cuenta administrativa para DSpace:
[dspace@localhost ~]$ /usr/local/java/dspace/bin/dspace create-administrator
Antes de arrancar el servidor Tomcat es necesario realizar unos ajustes en el archivo server.xml ubicado en:
- /usr/local/java/apache-tomcat-7.0.21/conf/server.xml
En particular, ajuste los valores para el puerto que escuchará las peticiones de entrada, que puede ser 8080 o bien 80. También es importante ajustar la codificación a UTF-8 como lo indica el siguiente segmento del archivo server.xml:
<Connector port="8080"
maxThreads="150"
minSpareThreads="25"
maxSpareThreads="75"
enableLookups="false"
redirectPort="8443"
acceptCount="100"
connectionTimeout="20000"
disableUploadTimeout="true"
URIEncoding="UTF-8"/>
Es momento de iniciar el servidor Tomcat:
[dspace@localhost ~]$ cd /usr/local/java/apache-tomcat-7.0.21/bin
[dspace@localhost ~]$ ./startup.sh
Finalmente, abra su navegador favorito y vaya a la siguiente dirección para ver la interfaz basada en JSP:
- http://www.midspacedemo.com:8080/jspui
La interfaz XML, también conocida como Manakin la encuentra en esta dirección:
- http://www.midspacedemo.com:8080/xmlui
Y la interfaz para OAI-PMH se encuentra en:
- http://www.midspacedemo.com:8080/oai/request?verb=Identify
¿Que sigue?
Con la instalación de DSpace en realidad solo se ha completado un paso, después es necesario trabajar en la organización del repositorio que incluye una variedad de actividades entre las que se pueden mencionar crear al menos una comunidad, crear una o varias colecciones, asignar roles para los usuarios, definir esquemas de metadatos y más, todos estos son temas válidos para futuros artículos.
Por el lado de la programación es necesario personalizar la interfaz gráfica de usuario, ya sea que Usted prefiera trabajar en la interfaz JSP o bien en Manakin que le ofrece una mayor flexibilidad para crear sitios con una estructura más compleja, todo controlado mediante transformaciones XSL.
En lo que al servidor respecta, queda pendiente programar los scripts que servirán para el auto arranque de PostgreSQL y Apache Tomcat, de la misma manera, establecer las actividades de mantenimiento periodicas por medio de entradas al cron de Linux.
Por lo general, el trabajo en torno a un repositorio institucional se realiza en un grupo de trabajo multidisciplinario de tal manera que la presente guía es de utilidad para quienes estan involucrados en la implementación del servidor. Esperamos que la información aquí proporcionada sea de utilidad.
Referencias
[01] http://www.duraspace.org/
[02] http://www.gnu.org/s/m4/
[03] http://www.gnu.org/s/autoconf/
[04] http://www.gnu.org/software/automake/
[05] http://www.gnu.org/software/bison/
[06] http://flex.sourceforge.net/
[07] http://www.gnu.org/software/libtool/
[08] http://www.gnu.org/s/ncurses/
[09] http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html
[10] http://zlib.net/
[11] http://www.perl.org/
[12] http://www.postgresql.org/
[13] http://www.oracle.com/technetwork/java/javase/downloads/index.html
[14] http://maven.apache.org/download.html
[15] http://ant.apache.org/bindownload.cgi
[16] http://tomcat.apache.org/whichversion.html