En esta pequeña guía se explicará la manera en que se puede instalar DSpace 6.3 en Ubuntu 20.04 y aplicarle un tema responsivo.
Antes de comenzar con los comandos para dicha actividad, veamos de qué se trata este software.
DSpace es un software que permite la creación de repositorios digitales institucionales, es gratuito y además se puede personalizar para adaptarse a las necesidades de las organizaciones.
https://duraspace.org/dspace/about/
DSpace es útil porque conserva y permite un acceso fácil a todo tipo de contenido digital, incluido texto, imágenes, imágenes en movimiento, mpegs y conjuntos de datos. Cuenta con una comunidad de desarrolladores en constante crecimiento que se enfoca en la expansión y mejora continua del software.
1. Prerrequisitos
Previo a la instalación se sugiere revisar los requisitos con los que debe contar el sistema donde se pretende realizar la instalación de DSpace, los cuales son los siguientes:
- JDK 7 u 8
- Apache Maven 3.05 o superior
- Apache Ant 1.8 o superior
- Base de datos relacional PostgreSQL 9.4 o superior u Oracle 10g o superior
- Tomcat
Estos requisitos son los que se mencionan en las notas de instalación de DSpace, la cual puede ser consultada en la página https://wiki.lyrasis.org/display/DSDOC6x/Installing+DSpace
Comprobación de la versión de los paquetes y dependencias necesarias
Para comprobar si se tienen instalados los programas y la versión de los mismos se pueden utilizar los siguientes comandos.
Jdk
java -version
javac -version
Apache Maven
mvn –version
Apache Ant
ant –version
Postgres
Para el caso de Postgres se puede verificar el directorio en el que comúnmente se instala Postgres para verificar que esté instalado.
/usr/lib/postgresql/[version]/bin/postgres –V
Tomcat
Para el caso de Tomcat se puede verificar en el directorio en el que comúnmente se instala Tomcat
/opt/tomcat
Instalación de prerrequisitos
Si no se han instalado los paquetes necesarios para utilizar DSpace se pueden instalar de la siguiente forma:
Actualizar los repositorios de apt para Ubuntu antes de proceder con la instalación
sudo apt-update
Java
Se sugiere utilizar la versión 8 ya que algunas dependencias no pueden ser actualizadas a Java 11, esto de acuerdo Lyrasis.
sudo apt-get install -y openjdk-8-jdk
Maven
sudo apt-get install -y maven
Ant
sudo apt-get install -y ant
Postgresql
El paquete postgresql-contrib es necesario para utilizar la extensión pgcrypto por lo que se debe de instalar también.
sudo apt-get install postgresql postgresql-client postgresql-contrib
Habilitar conexiones TCP/IP en el archivo postgresql.conf verificando en el archivo /etc/postgresql/[postgres-version]/main/postgresql.conf
que tenga la línea listen_addresses = 'localhost'
vi /etc/postgresql/12/main/postgresql.conf
En el archivo /etc/postgresql/[postgres-version]/main/pg_hba.conf cambiar la configuración de autenticación para la conexión a la base de datos de DSpace con la siguiente linea
host dspace dspace 127.0.0.1 255.255.255.255 md5
Tomcat
Para la instalación de Tomcat se tomó como referencia el artículo: https://www.digitalocean.com/community/tutorials/install-tomcat-9-ubuntu-1804-es, lo primero que hay que hacer es crear el usuario que ejecutará Tomcat y agregarlo a su grupo correspondiente.
sudo groupadd tomcat
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
Descargar de la versión 9.0.58, se sugiere la versión 9 debido a que Tomcat 7 requiere configuración adicional para compilar JSP cuando se utiliza una versión diferente de Java 1.6, en las notas de instalación de DSpace de Lyrasis se sugiere utilizar Tomcat 8.033 o superior.
cd /tmp
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.58/bin/apache-tomcat-9.0.58.tar.gz
Después extrae el archivo
sudo tar xzvf apache-tomcat-*tar.gz -C /opt/tomcat --strip-components=1
Actualizar permisos
cd /opt/tomcat
sudo chgrp -R tomcat /opt/tomcat
sudo chmod -R g+r conf
sudo chmod g+x conf
sudo chown -R tomcat webapps/ work/ temp/ logs/
Crear archivo de servicio systemd con el contenido que se señala a continuación
vi /etc/systemd/system/tomcat.service
[Unit] Description=Apache Tomcat Web Application Container After=network.target [Service] Type=forking Environment=JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid Environment=CATALINA_HOME=/opt/tomcat Environment=CATALINA_BASE=/opt/tomcat Environment='CATALINA_OPTS=-Xmx512M -Xms64M -server -XX:+UseParallelGC -Dfile.encoding=UTF-8' Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom' ExecStart=/opt/tomcat/bin/startup.sh ExecStop=/opt/tomcat/bin/shutdown.sh User=tomcat Group=tomcat UMask=0007 RestartSec=10 Restart=always [Install] WantedBy=multi-user.target
Cargar el demonio systemd e inciar el servicio tomcat
sudo systemctl daemon-reload
sudo systemctl start tomcat
Verificar el estado del servicio de tomcat
sudo systemctl status tomcat
Habilitar el servicio para que se inicie automáticamente
sudo systemctl enable tomcat
Configurar el archivo server.xml como lo sugiere el manual de instalación de DSpace estableciendo los siguientes parámetros
sudo vi /opt/tomcat/conf/server.xml
Git
Git es necesario para la construcción del proyecto con maven debido a módulos de terceros.
sudo apt-get install git
2. Instalación de DSpace
Una vez que contamos con los paquetes necesarios, procedemos con la instalación del software DSpace, comenzando con la configuración de la base de datos de DSpace en Postgres
Cambiar a la cuenta de postgres en Ubuntu
sudo -i -u postgres
Crear el usuario para la base de datos
sudo createuser --username=postgres --no-superuser --pwprompt dspace
Crear la base de datos para DSpace
sudo createdb --username=postgres --owner=dspace --encoding=UNICODE dspace
Habilitar la extensión pgcrypto para la base de datos de DSpace
psql --username=postgres dspace -c "CREATE EXTENSION pgcrypto;"
Cerrar la sesión del usuario postgres
exit
Descargar la versión 6.3 de dspace del repositorio de github https://github.com/DSpace/DSpace/releases/tag/dspace-6.3
cd ~
wget https://github.com/DSpace/DSpace/releases/download/dspace-6.3/dspace-6.3-src-release.tar.gz
Extraer el archivo
tar -zxf dspace-6.3-src-release.tar.gz
cd ~/dspace-6.3-src-release/
Crear el archivo de configuración inicial para la instalación y configurar las opciones básicas recomendadas en la guía de instalación:
dspace.dir*
dspace.baseUrl*
solr.server*
db.url*
db.driver*
db.dialect*
db.username*
db.password*
db.schema*
Para ello copiamos el archivo de ejemplo
cp ./dspace/config/local.cfg.EXAMPLE ./dspace/config/local.cfg
vi ./dspace/config/local.cfg
Crear el directorio para la instalación de DSpace
sudo mkdir /dspace
sudo chown tomcat /dspace
Construir el proyecto con Maven situándonos en la carpeta que se extrajo anteriormente.
cd ~/dspace-6.3-src-release
mvn package
Realizar la instalación ahora con Ant situándonos en la carpeta dspace-installer
cd ~/dspace-6.3-src-release/dspace/target/dspace-installer/wo
sudo ant fresh_install
Copiar las aplicaciones de DSpace del directorio de instalación a la carpeta webapps de tomcat
sudo cp -R /dspace/webapps/* opt/tomcat/webapps*
Asegurarse de que el usuario que ejecuta Tomcat tenga permisos de lectura y escritura sobre la carpeta de instalación de DSpace
sudo chown -R tomcat:tomcat /dspace/
Crear un usuario administrador de DSpace con el comando dspace
/dspace/bin/dspace create-administrator
3. Instalación con el tema Mirage 2
Mirage 2 es un tema responsivo XMLUI para DSpace que puede ser habilitado escribiendo la opción -Dmirage2.on=true al compilar DSpace.
El proceso de compilación con esta opción puede ser tardado, por lo que para reducir el tiempo de compilación se sugiere instalar las dependencias manualmente, como se menciona en el artículo https://wiki.lyrasis.org/display/DSDOC6x/Mirage+2+Configuration+and+Customization.
Los prerrequisitos para habilitar el tema Mirage 2 en DSpace en linux, de acuerdo a la documentación de Mirage 2 en github (https://github.com/DSpace/DSpace/tree/dspace-6_x/dspace-xmlui-mirage2#installation) son los siguientes Git, Node, Bower, Grunt, Ruby y Compass.
Se sugiere verificar estos prerrequisitos con los siguientes comandos
git --version
node -v
bower -v
grunt –version
ruby -v
compass version
Instalación de prerrequisitos para Mirage 2
Instalar Node con Node Version Manager
sudo apt-get install curl
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
*Cerrar y abrir la terminal de nuevo
nvm install 12
nvm alias default 12
node -v
Instalar Bower de forma global
npm install –g bower
bower -v
Instalar Grunt de forma global
npm install -g grunt && npm install -g grunt-cli
grunt –v
* grunt -v indica la versión de grunt seguida de Fatal error: Unable to find local grunt, esto probablemente es porque se instaló de forma global https://stackoverflow.com/questions/13925916/what-is-causing-this-error-fatal-error-unable-to-find-local-grunt
Ruby
Instalar el paquete para claves gpg2
sudo apt install gnupg2
Instalar clave gpg
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
Descargar rvm
curl -sSL https://get.rvm.io | bash -s stable
source ~/.rvm/scripts/rvm
rvm –v
Instalar Ruby, tener en cuenta que la documentación de Mirage 2 recomienda la versión 2.2.x o superior
rvm install 3.0.0
rvm use 3.0.0 --default
ruby -v
Instalar Compass. En la documentación de Mirage 2 se sugier utilizar las versiones SASS v3.3.14 y Compass v1.0.1
gem install sass -v 3.3.14
gem install compass -v 1.0.1
compass -v
Compilación de dspace con Mirage 2
Las versiones de los prerrequisitos utilizados fueron las siguientes
Git 2.25.1, Node v12.22.10, Bower 1.8.13, Grunt v1.4.3, Ruby 3.0.0, Compass 1.0.1
Habilitar el tema Mirage 2
La documentación en Github señala que se debe agregar una línea en la sección temas del archivo xmlui.conf en el directorio src/dspace/config/xmlui.xconf, en nuestro caso se utilizó
vi ~/dspace-6.3-src-release/dspace/config/xmlui.xconf
Reemplazar el tema que hay en esa sección por la siguiente línea.
< theme name="Mirage 2" regex=".*" path="Mirage2/" />&
Compilar DSpace con el tema Mirage 2 habilitado.
Una vez que los prerrequisitos han sido instalados y se ha habilitado el tema en el archivo xmlui.xconf se procede a compilar DSpace.
De acuerdo con https://wiki.lyrasis.org/display/DSDOC6x/Mirage+2+Configuration+and+Customization la compilación se debe realizar con un usuario que no sea root y sin utilizar sudo.
cd ~/dspace-6.3-src-release/
mvn package -Dmirage2.on=true -Dmirage2.deps.included=false
Situarse en la carpeta target para hacer la instalación con ant. Notar que en esta ocasión, a diferencia de una instalación desde cero, se utiliza el comando ant update en lugar de ant fresh_install
cd ~/dspace-6.3-src-release/dspace/target/dspace-installer/
sudo ant update
Situarse en la carpeta de tomcat donde se encuentra a la carpeta webapps para reemplazar la carpeta xmlui por la que se encuentra en el directorio de instalación.
cd /opt/tomcat/
sudo rm -r webapps/xmlui/
sudo cp -r /dspace/webapps/xmlui webapps/
Configuraciones de DSpace
Cuando se realizan modificaciones se debe tomar en cuenta que se pueden realizar en diferentes directorios: el directorio source, el directorio de instalación, y el directorio donde se encuentran las aplicaciones en tomcat. Por ejemplo, para habilitar el tema Mirage 2 se modificó el archivo dspace-6.3-src-release/dspace/config/xmlui.xconf y esa modificación se vió reflejada en /dspace-6.3-src-release/dspace/target/dspace-installer/config/xmlui.xconf, después de compilar el proyecto con mvn, y en /dspace/config/xmlui.xconf, después de ejecutar el comando ant udpate.
Estas son algunas consideraciones a tomar en cuenta al realizar modificaciones.
Tomcat: Las modificaciones que se realizan dentro de estas carpetas están relacionadas con las aplicaciones de DSpace, se pueden cambiar los estilos y estos se verán reflejados al reiniciar el servicio de tomcat.
Carpeta de instalación: los cambios realizados en las aplicaciones de DSpace de este directorio no se verán reflejados a menos que copiemos la aplicación a tomcat. Se pueden modificar otros aspectos además de las aplicaciones.
Se debe tomar en cuenta que estas configuraciones pueden ser reescritas si se ejecuta el comando ant update, por lo que puede ser necesario respaldar dichas configuraciones.
Carpeta dspace-installer: En esta carpeta también encontramos archivos de configuración, los cuales son copiados a la carpeta de instalación al ejecutar el comando de ant update. Estos archivos son generados cuando se compila el proyecto con el comando mvn package en la carpeta source, de modo que serán reescritos al compilar el proyecto.
Carpeta source: Esta es la carpeta que contiene la configuración base, las configuraciones realizadas se copiarán a la carpeta dspace-installer después de compilar la aplicación, y en consecuencia al ejecutar el comando ant update sobrescribirán también a las configuraciones en la carpeta de instalación. Antes de hacer un cambio en esta carpeta y recompilar el proyecto se deben respaldar los archivos que hayan sido modificados en la carpeta de instalación o en la carpeta dspace-installer
Elaborado por:
José Manuel Carrizosa Bustamante