Ir al contenido principal

Instalación de dspace 7 ubuntu 21.0.4



Actualice su sistema


sudo apt update
sudo apt upgrade -y


Instalar los requisitos previos
1. Instalar Java OpenJDK 11




sudo apt install openjdk-11-jdk


2. Instalar Apache Maven y Ant



DSpace 7 requiere maven 3.3.xo superior y 1.8.xo superior.

sudo apt-get install ant ant-optional maven -y
mvn -v
ant -version

3. Instalar la base de datos PostgreSQL v11


Agregar el repositorio APT de PostgreSQL 11

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

--------------------------------

RELEASE=$(lsb_release -cs) echo "deb http://apt.postgresql.org/pub/repos/apt/ ${RELEASE}"-pgdg main | sudo tee /etc/apt/sources.list.d/pgdg.list
sudo apt update
sudo apt-get install postgresql-11 postgresql-contrib-11 libpostgresql-jdbc-java -y
sudo nano /etc/postgresql/11/main/pg_hba.conf
Agregar la siguiente linea al final
 
host dspace dspace 127.0.0.1 255.255.255.255 md5

Esto configurará el tipo de acceso basado en el host en una base de datos llamada dspace por el usuario de la base de datos llamado dspace en la dirección localhost (127.0.0.1) especificada. Crearemos el dspaceusuario de la base de datos y la base de datos en una etapa posterior.
A continuación, ejecute los siguientes 3 comandos en sucesión para cambiar los permisos de usuario de la base de datos a sólo "de confianza".

sudo sed -i 's/ident/trust/' /etc/postgresql/11/main/pg_hba.conf
sudo sed -i 's/md5/trust/' /etc/postgresql/11/main/pg_hba.conf
sudo sed -i 's/peer/trust/' /etc/postgresql/11/main/pg_hba.conf
Reinicie la base de datos PostgreSQL para que estos cambios surtan efecto.
sudo systemctl restart postgresql

Ahora tenemos que crear el dspaceusuario de la dspace base de datos y la propia base de datos como se mencionó anteriormente. Primero, diríjase al usuario del sistema postgres.

sudo su postgres

Al instalar la base de datos postgresql, postgres se crea un usuario del sistema predeterminado por el nombre . En el comando anterior, hemos cambiado la sesión de la línea de comandos para usar la cuenta de este usuario. Luego crea el dspaceusuario de la base de datos con el siguiente comando


createuser dspace

Ahora crea la dspace base de datos con los siguientes comandos

createdb dspace -E UNICODE

Esto creará una base de datos llamada "dspace" con codificación Unicode A continuación, debemos otorgar permisos al usuario dspace de la base de datos llamado a la base de datos que acabamos de crear, también llamada dspace. Acceda al shell de la base de datos y use la dspacebase de datos con el siguiente comando único


psql -d dspace

Luego comience creando la extensión pgcrypto para la dspacebase de datos

CREATE EXTENSION pgcrypto;

Crea la contraseña

ALTER ROLE dspace WITH PASSWORD 'your-db-password-here';

Reemplace el texto entre comillas por una contraseña secreta de su elección en un sistema de producción.
Luego, otorgue al dspace usuario de la dspace base de datos la propiedad de la base de datos como se muestra aquí.

ALTER DATABASE dspace OWNER TO dspace;

Luego otorgue todos los privilegios al dspace usuario de la dspace base de datos en la base de datos con el siguiente comando

GRANT ALL PRIVILEGES ON DATABASE dspace TO dspace;

Para ver la lista de bases de datos existentes en el sistema junto con otros detalles como la propiedad de la base de datos, emita el siguiente comando


\l


Ahora tenemos una configuración de base de datos en funcionamiento y después de instalar dspace, solo necesitaremos configurar nuestra instalación de dspace para conectarnos a esta base de datos con el nombre de usuario y la contraseña configurados en localhost. Salga del shell de PostgreSQK con el siguiente comando


\q
Salga de la sesión de usuario de postgres con el siguiente comando

exit
Reinicie PostgreSQL con el siguiente comando

sudo systemctl restart postgresql

4. Instalar Apache Solr



Apache solr es el motor de búsqueda utilizado por dspace. En DSpace 7, apache solr se ha desacoplado del resto del código de DSpace y debe instalarlo y ejecutarlo por separado en el puerto 8983 u otro puerto preferido que esté libre en su sistema.
Cree un directorio para descargar e instalar solr. En esta guía, usaremos /opt/solr-8 para representar la versión de solr que usaremos. DSpace 7 requiere Solr 7.2.1 o posterior.

sudo mkdir /opt/solr-8
cd /opt/solr-8

Cambiar el propietario del directorio al usuario de dspace
crear usuario dspace  con permisos de administrador

adduser dspace
groups dspace
usermod -aG sudo dspace
visudo
/etc/sudoers
root    ALL=(ALL:ALL) ALL
/etc/sudoers
root    ALL=(ALL:ALL) ALL
dspace ALL=(ALL:ALL) ALL
Cambiar el propietario del directorio al usuario de dspace

sudo chown -R dspace:dspace /opt/solr-8

Luego descargue solr-8 desde allí con el siguiente comando


wget -c https://downloads.apache.org/lucene/solr/8.10.1/solr-8.10.1.tgz
tar xvf solr-8.10.1.tgz
cp -rf /opt/solr-8/solr-8.10.1/* /opt/solr-8/
/opt/solr-8/bin/solr start -force

-----------

Si accede http://server-url:8983/solr en su navegador, el panel de administración de solr debería cargarse. Si no es así, revise los pasos seguidos nuevamente.



5. Instalar el servlet tomcat 9.0.54


Creamos el usuario tomcat 

 sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat

sudo mkdir /opt/tomcat
wget -c https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.54/bin/apache-tomcat-9.0.54.tar.gz
sudo tar xzvf apache-tomcat-9.0.54.tar.gz -C /opt/tomcat --strip-components=1
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/
ramans@diginet-app02:~$ cd /etc/systemd/system
ramans@diginet-app0[2:/etc/systemd/system$ sudo nano /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-1.11.0-openjdk-amd64
 Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
 Environment=CATALINA_HOME=/opt/tomcat
 Environment=CATALINA_BASE=/opt/tomcat
 Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
 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
ramans@diginet-app02:/etc/systemd/system$ sudo systemctl daemon-reload
 ramans@diginet-app02:/etc/systemd/system$ sudo systemctl start tomcat
 ramans@diginet-app02:/etc/systemd/system$ sudo systemctl status tomcattomcat.service - Apache Tomcat Web Application Container
     Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-01-09 09:28:53 PST; 1min 10s ago
     Process: 68356 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
    Main PID: 68363 (java)
      Tasks: 30 (limit: 9451)
      Memory: 138.8M
      CGroup: /system.slice/tomcat.service
              └─68363 /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -Djava.util.logging.config.file=/opt/tomca>
 Jan 09 09:28:53 diginet-app02 systemd[1]: Starting Apache Tomcat Web Application Container…
 Jan 09 09:28:53 diginet-app02 startup.sh[68356]: Tomcat started.
 Jan 09 09:28:53 diginet-app02 systemd[1]: Started Apache Tomcat Web Application Container.
 
ramans@diginet-app02:/opt/tomcat$ sudo nano /opt/tomcat/conf/tomcat-users.xml


sudo ufw allow 8080/tcp
sudo systemctl restart tomcat
http://<your_domain_or_IP_address>:8080


2. Segunda parte: instalar el backend

Descarga el código fuente

Obtenga la última versión de DSpace de Github y descárguela como se muestra a continuación

wget -c https://github.com/DSpace/DSpace/archive/refs/tags/dspace-7.0.tar.gz

tar zxvf dspace-7.0.tar.gz
mv DSpace-dspace-7.0 dspace-7
cd dspace-7

Configuración inicial

Crea el directorio de instalación
sudo mkdir /opt/dspace-7

Establecer permisos para el dspace usuario en el directorio de instalación


sudo chown dspace:dspace -R /opt/dspace-7

Cree un local.cfg archivo de configuración copiando el archivo de ejemplo existente.

cp dspace/config/local.cfg.EXAMPLE dspace/config/local.cfg

Edite el archivo y establezca algunas configuraciones requeridas comunes, como la conexión a la base de datos y el directorio de instalación.

nano dspace/config/local.cfg

Por ahora, busque y configure los siguientes ajustes en consecuencia

dspace.dir=/opt/dspace-7
solr.server = http://localhost:8983/solr
db.url = jdbc:postgresql://localhost:5432/dspace
db.driver = org.postgresql.Driver
db.username = dspace
db.password = *****

Construir DSpace

Asegúrese de estar en el directorio del código fuente y luego ejecute el comando

mvn package


Instalar DSpace

Apache ant ahora se usa para copiar / instalar el código dspace compilado en el directorio de implementación, probar si nuestro código puede conectarse a la base de datos y luego crear las tablas necesarias en la base de datos para nosotros. Para hacer esto, ejecute estos comandos


cd dspace/target/dspace-installer
ant fresh_install

Si tiene éxito 😀, debería ver un resultado similar al siguiente 




Implementar la aplicación web del servidor

cd /opt/tomcat/webapps
sudo cp -r /opt/dspace-7/webapps/*    cd /opt/tomcat/webapps
sudo chown -R tomcat:tomcat *
sudo systemctl restart tomcat

Luego reinicie Tomcat como se muestra en uno de los pasos anteriores. Si accede http://server-ip:8080/server, debería poder ver la interfaz de backend como se muestra a continuación


👉Copiar núcleos solr
cp -r /opt/dspace-7/solr/* /opt/solr-8/server/solr/configsets
/opt/solr-8/bin/solr restart -force


http://localhost:8080/server/oai/request?verb=Identify


NOTA: verificar que quede todo bien instalado antes de continuar con el siguiente paso

3. Instale el extremo frontal - Dspace angular


Instalación de NVM en Ubuntu

sudo apt install curl 
curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash                                                     
source ~/.profile   

Instalación de Node usando NVM

Instale la última versión de node.js. Aquí, el nodo es el alias de la última versión.


nvm install node 

Para instalar una versión específica de nodo:


nvm install 12.18.3

Cómo instalar Yarn en Ubuntu

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

Una vez que el repositorio esté habilitado, actualice la lista de paquetes e instale Yarn.

sudo apt update
sudo apt install yarn
yarn --version

La salida se verá así:

1.22.4
Instale NodeJS 14

Paso 1: agregar el PPA de NodeSource
Comencemos por instalar NodeSource PPA. Esto nos permitirá instalar versiones posteriores de NodeJS usando el administrador de paquetes Apt. Asegurémonos de que estamos en el directorio de inicio y descarguemos el script de configuración:


cd ~
curl -sL https://deb.nodesource.com/setup_14.x -o setup_14.sh
A continuación, ejecutemos la configuración que agregará el PPA de NodeSource:

sudo sh ./setup_14.sh


Paso 2: instalar NodeJS

Ahora tendremos el PPA de NodeSource agregado, lo que nos permitirá instalar NodeJS 14. Primero, actualice la biblioteca de paquetes APT:


sudo apt update

Y finalmente, instale NodeJS 14:

sudo apt install nodejs



Paso 3: verificar la versión de NodeJS

Ahora deberíamos tener NodeJS 14 instalado. Necesitaremos verificar la versión instalada, podemos hacerlo ejecutando el siguiente comando:

node -v

Download DSpace 7 front-end


Descargue la última versión de interfaz de usuario de dspace 7 de esta página en github https://github.com/DSpace/dspace-angular/releases

Es preferible que lo descargue del directorio de inicio del usuario de dspace, es decir o en la  raiz  /

wget -c https://github.com/DSpace/dspace-angular/archive/refs/tags/dspace-7.0.tar.gz
Luego extraiga el archivo descargado

tar zxvf dspace-7.0tar.gz

Tendrá un directorio llamado dspace-angular-dspace-7.0 o similar. Cambie el nombre de este archivo para acortar el nombre

mv dspace-angular-dspace-7.0 dspace-7-angular

Cambiar al directorio


cd dspace-7-angular

Y luego construya las dependencias de front-end usando yarn



Modifique el front-end para conectarse a su back-end de DSpace editando el siguiente archivo

Cree un archivo de configuración de producción en opt/dspace-angular/src/environments/environment.prod.ts . Es posible que desee utilizar el environment.template.ts como punto de partida. Este environment.prod.tsarchivo se puede utilizar para anular cualquiera de las configuraciones predeterminadas especificadas en environment.common.ts(en ese mismo directorio).  Como mínimo, este archivo DEBE incluir las secciones "ui" y "rest" similares a las siguientes (tenga en cuenta que solo necesita incluir la configuración que necesita modificar): 


crear archivo opt/dspace-angular/src/environments/environment.prod.ts y agregar los siguientes datos:


export const environment = {  
  // The "ui" section defines where you want Node.js to run/respond. It often is a *localhost* (non-public) URL, especially if you are using a Proxy.
  // In this example, we are setting up our UI to just use localhost, port 4000.
  // This is a common setup for when you want to use Apache or Nginx to handle HTTPS and proxy requests to Node on port 4000
  ui: {
      ssl: false,
      host: 'localhost',
      port: 4000,
      // NOTE: Space is capitalized because 'namespace' is a reserved string in TypeScript
      nameSpace: '/'
  },
  // This example is valid if your Backend is publicly available at https://api.mydspace.edu/server/
  // The REST settings MUST correspond to the primary URL of the backend. Usually, this means they must be kept in sync
  // with the value of "dspace.server.url" in the backend's local.cfg
  rest: {
      ssl: false,
      host: 'localhost',
      port: 8080,
      // NOTE: Space is capitalized because 'namespace' is a reserved string in TypeScript
      nameSpace: '/server'
  }
};


sudo chown dspace:dspace -R /opt/dspace-7-angular
cd /opt/dspace-7-angular

Cree y ejecute la aplicación de front-end


yarn start


Cuando termine, acceda al front-end en http://server-ip:4000


Solución de errores mas comunes :

1. El front end no carga despues de compilar 


Solución :  opt/dspace-angular/src/environments/environment.prod.ts cambiar el host por la ip o por 0.0.0.0



 ui: {
      ssl: false,
      host: '192.168.0.x',
      port: 4000,
      // NOTE: Space is capitalized because 'namespace' is a reserved string in TypeScript
      nameSpace: '/'


Es recomendable realizar este mismo cambio en el back-end 


opt/dspace-angular/src/environments/environment.prod.ts

rest: {
      ssl: false,
      host: '192.168.0.x',
      port: 8080,
      // NOTE: Space is capitalized because 'namespace' is a reserved string in TypeScript
      nameSpace: '/server'

Cambios


/opt/dspace-7/config/local.cfg

dspace.server.url = http://192.168.0.x:8080/server
dspace.ui.url = http://192.168.0.x:4000
solr.server = http://192.168.0.x:8983/solr

2. Ha sido bloqueado por la política de CORS" o "Error de CORS


solución : agregar en /opt/dspace-7/config/local.cfg

useProxies = true
# Trusted, comma separated list of IPs.  It's recommended that this include minimally the IP address of the Angular UI
proxies.trusted.ipranges = 127.0.0.1,0.0.0.0,192.168.0.x,localhost,192.168.0.x:8080/server,192.168.0.x:4000,0.0.0.0:4000

# This defaults to just "dspace.ui.url" (public URL), but it might also need localhost:4000 (private URL) for requests that come directly from the Node server to the backend.
rest.cors.allowed-origins = ${dspace.ui.url}, http://192.168.0.x:4000

# Trusted, comma separated list of origins/clients.  This defaults to minimally including the URL of the Angular UI





Comentarios

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. Hola me podrias ayudar, no me funciona, corre tomcat bien, solr pero dspace no funciona, ya instale una maquia desde cero, lo he realizado varias veces, por fa mi correo es yecava1785@gmail.com

    ResponderEliminar
  3. Buenas....primero que todo agradeciendo la atención de antemano. Primera vez que me solicitan instalar Dspace

    He seguido este tutorial para instalar Dspace 7, todo me ha funcionado, pero luego de "Implementar la aplicación web del servidor", paso a copiar los nucleos solr, ejecuto
    sudo /opt/solr-8/bin/solr restart -force
    y me da como resultado "Started Solr server on port 8983 (pid=5917). Happy searching!"

    El problema viene cuando accedo a http://IP_server:8080/server/oai/request?verb=Identify, me carga es una pantalla con la siguiente información

    Estado HTTP 500 – Internal Server Error

    Tipo Informe de estado

    mensaje An internal read or write operation failed

    Descripción El servidor encontró un error interno que hizo que no pudiera rellenar este requerimiento.
    Apache Tomcat/9.0.62

    Por favor me pueden orientar como solventar este problema para proseguir la instalación y lograr el objetivo de montar el Dspace

    ResponderEliminar

Publicar un comentario