Autor: Bruno Nocera Zanette
Baseado em: https://wiki.duraspace.org/display/DSDOC/All+Documentation
HTML gerado por: https://dillinger.io/
root$ apt-get install --no-install-recommends tomcat8 openjdk-8-jdk-headless postgresql postgresql-contrib maven ant git vim
Caso queira usar o tema Mirage2, é necessário instalar mais alguns pacotes:
root$ apt-get install nodejs coffeescript ruby-compass
root$ npm install --no-check-certificate -g bower
root$ npm install --no-check-certificate -g grunt-cli
Observações:
O pacote postgresql-contrib
só é necessário para a instalação do DSpace 6, pois fornece o módulo pgcrypto
.
Caso o comando npm
não esteja disponível, adicionar o repositório oficial do Node.js e atualizar o pacote nodejs
com os seguintes comandos. Depois reexecute os comandos acima.
root$ apt-get install curl
root$ curl -sL https://deb.nodesource.com/setup_12.x | bash -
root$ apt-get update && apt-get upgrade
root
, adicione o comando sudo -E
antes do comando bash
.$ curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
A versão 8.0.32 do tomcat
possui um bug (DS-3242) que causa erros na execução do DSpace 6. Caso o sistema só disponibilize essa versão é recomendado usar o pacote tomcat7
. Para verificar a versão do pacote tomcat8
, utilize o comando $ apt show tomcat8
.
A versão 8.5.30 do tomcat
possui um bug (DS-4160) que impossibilita a execução do aplicativo REST do DSpace 6. Caso o sistema só disponibilize essa versão é recomendado usar o pacote tomcat7
. Para verificar a versão do pacote tomcat8
, utilize o comando $ apt show tomcat8
.
Não é recomendado instalar o sistema DSpace no usuário root
.
Caso deseje criar um novo usuário do sistema para esse fim, utilize os comandos abaixo.
Caso deseje usar um usuário já existente, utilize esse usuário quando o usuário dspace
do sistema for referenciado.
Para criar esse novo usuário, utilize o comando:
A opção -u 999
serve para não permitir o login desse usuário na tela de login, forçando o uso de um UID menor que 1000.
root$ adduser dspace -u 999
Para logar no usuário recém criado, utilize:
root$ su - dspace
Caso seja necessário voltar para o usuário root, utilize:
$ exit
Para executar os comandos a seguir é necessário a senha do usuário postgres
. Caso não saiba qual é a senha, execute os comandos abaixo para reconfigurar a senha.
root$ systemctl start postgresql
root$ su - postgres
$ psql -c "ALTER USER postgres WITH PASSWORD '[SENHA]' ;"
Para criar o usuário e o banco de dados no Postgres execute os seguintes comandos:
$ createuser -h localhost -U postgres --no-superuser --pwprompt [USUARIO_BD]
$ createdb -h localhost -U postgres -O [USUARIO_BD] [NOME_BD]
Para o DSpace 6 ou posterior é preciso habilitar a extensão pgcrypto no banco de dados:
$ psql -h localhost -U postgres -d [NOME_BD] -c "CREATE EXTENSION pgcrypto;"
Para remover um usuário ou um banco de dados, utilize os comandos:
$ dropdb -h localhost -U postgres [NOME_BD]
$ dropuser -h localhost -U postgres [USUARIO_BD]
No usuário dspace
:
Opção 1) Utilizando o Git:
dspace$ git clone https://github.com/DSpace/DSpace.git --branch dspace-6_x
dspace$ cd DSpace
dspace$ git checkout dspace-6.3
Opção 2) Diretamente pela página Git do projeto. Basta entrar na página, fazer o download e descompactar o pacote baixado.
No usuário dspace
:
As principais configurações do DSpace, como o diretório de instalação, URL e informações do banco de dados, estão em:
No DSpace 5 ou inferior: [DIR_SRC]/build.properties
. As alterações devem ser feitas diretamente nesse arquivo.
No Dspace 6 ou superior: [DIR_SRC]/dspace/config/local.cfg.EXAMPLE
. Copie esse arquivo para [DIR_SRC]/local.cfg
e faça as alterações nesse novo arquivo.
As configurações mais importantes são:
Diretório onde o DSpace será instalado:
dspace.dir = [DIR_INSTALACAO]
Informações sobre o banco de dados:
db.url=jdbc:postgresql://localhost:5432/[NOME_BD]
db.username=[USUARIO_BD]
db.password=[SENHA_USUARIO_BD]
Caso queira usar o tema Mirage2 modifique a seção <themes>
do arquivo [DIR_SRC]/dspace/config/xmlui.xconf
para habilitar o tema Mirage 2 e desabilitar o tema original:
<themes>
<!-- <theme name="Atmire Mirage Theme" regex=".*" path="Mirage/" /> -->
<theme name="Mirage 2" regex=".*" path="Mirage2/" />
</themes>
No usuário dspace
:
Antes da primeira execução do sistema, execute o seguinte comando para limpar arquivos temporários antigos e evitar erros:
dspace$ mvn clean
Para compilar o sistema, execute o comando a seguir na raiz do codigo-fonte do projeto:
dspace$ mvn package
Alguns pacotes do DSpace podem não ser úteis em alguns casos. Caso deseje ignorá-los durante a compilação, basta usar a opção “-P” passando como parâmetro os nomes dos pacotes antecedidos por “!”. Ex.:
dspace$ mvn package -P '!dspace-lni, !dspace-sword, !dspace-swordv2, !dspace-jspui, !dspace-rdf'
Para instalar o tema Mirage2, adicione as seguintes opções ao comando mvn package
:
-Dmirage2.on=true -Dmirage2.deps.included=false
Para instalar o sistema, execute os comandos a seguir. Durante essa instalação serão criadas as tabelas no banco de dados e o diretório de instalação contendo todos os arquivos necessários para a execução do Dspace.
dspace$ cd [DIR_SRC]/dspace/target/dspace-installer
dspace$ ant fresh_install
Directory /dspace/bin creation was not successful for an unknown reason
, verifique se o usuário dspace
é dono do diretório [DIR_INSTALACAO], ou tenha permissão de escrita. Por exemplo, caso [DIR_INSTALACAO] seja /dspace
:root$ mkdir /dspace
root$ chown -R dspace:dspace /dspace
Para atualizar o sistema, execute novamente o comando para compilar o sistema e depois, no lugar da opção fresh_install
utilizada no passo de instalação, utilize a opção update
. Isso irá atualizar os webapps, configurações do diretório [DIR_INSTALACAO] e fazer as migrações do banco de dados, e não irá alterar nada do que está armazenado no sistema.
dspace$ cd [DIR_SRC]/dspace/target/dspace-installer
dspace$ ant update
Configurar o Tomcat8 para ser executado no usuário dspace
para evitar problemas de conflito de permissões dos arquivos entre o usuário tomcat8
e dspace
. Para isso, altere os seguintes parâmetros no arquivo /etc/default/tomcat8
.
TOMCAT8_USER=dspace
TOMCAT8_GROUP=dspace
Adicionar o usuário dspace
ao grupo tomcat8
, executando o seguinte comando:
root$ usermod -a -G tomcat8 dspace
Em algumas versões do Tomcat8, o script de inicialização modifica automaticamente o diretório HOME
do usuário configurado em TOMCAT8_USER
para /var/lib/tomcat8
. Para desabilitar isso, comente a seguinte linha no arquivo /etc/init.d/tomcat8
:
usermod --home /var/lib/tomcat8 $TOMCAT8_USER > /dev/null 2>&1 || true
Alterar a permissão dos diretórios de trabalho do Tomcat8, executando os seguintes comandos como root
:
root$ systemctl stop tomcat8.service
root$ chown -R dspace /var/log/tomcat8
root$ chown -R dspace /var/cache/tomcat8
root$ chown -R dspace /var/lib/tomcat8/lib
root$ chown -R dspace /var/lib/tomcat8/webapps
root$ systemctl start tomcat8.service
Configuração do diretório base dos webapps utilizados pelo Tomcat8:
Opção 1) Utilizar o diretório de webapps criados durante a instalação do DSpace. Para isso, no arquivo /etc/tomcat8/server.xml
, altere o parâmetro appBase
do campo <Host>
para [DIR_INSTALACAO]/webapps
:
<Host name="localhost" appBase="[DIR_INSTALACAO]/webapps"
unpackWARs="true" autoDeploy="true">
Opção 2) Utilizar o diretório padrão de webapps do Tomcat8. Para isso, copie os diretórios existentes no diretório [DIR_INSTALACAO]/webapps
para /var/lib/tomcat8/webapps
:
rsync --checksum --delete-delay --recursive [DIR_INSTALACAO]/webapps/* /var/lib/tomcat8/webapps/
/var/lib/tomcat8
para que esse método funcione, pois o usuário dspace
não tem permissão de escrita nesse diretório:root$ systemctl stop tomcat8.service
root$ chown -R dspace /var/lib/tomcat8
root$ systemctl start tomcat8.service
Configurar o tomcat para usar criptografia SSL/HTTPS
Criar uma chave RSA
$ keytool -genkey -alias tomcat -keyalg RSA -keystore [ARQUIVO_KEYSTORE]
No arquivo /var/lib/tomcat8/conf/server.xml
, adicionar os parâmetros keystoreFile
e keystorePass
no campo <Connector port=8443>
:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150"
scheme="https" secure="true" clientAuth="false" sslProtocol="TLS"
keystoreFile="[ARQUIVO_KEYSTORE]" keystorePass="[SENHA]" />
ou, se a versão do tomcat for mais nova:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="[ARQUIVO_KEYSTORE]" certificateKeystorePassword="[SENHA]" type="RSA" />
</SSLHostConfig>
</Connector>
<Connector ...
estão.Para evitar problema de falta de memória durante a execução do DSpace, adicione ao arquivo /usr/share/tomcat8/bin/setenv.sh
as seguintes linhas:
#!/bin/bash
export CATALINA_OPTS="$CATALINA_OPTS -Xms2048m -Xmx2048m -XX:MaxPermSize=256m"
Para criar o usuário administrador, no usuário dspace
, execute os comandos:
dspace$ cd [DIR_INSTALACAO]
dspace$ ./bin/dspace create-administrator
Para testar o sistema, abra o navegador e acesse os links:
Para agilizar os passos de criar o usuário e banco de dados no PostgreSQL, foi criado dois scripts create_pqsl_user.sh
e create_pqsl_db.sh
que executam, respectivamente, essas tarefas. Para executá-los utilize os comandos abaixo:
$ ./create_pqsl_user.sh [USUARIO_BD]
$ ./create_psql_db.sh [USUARIO_BD] [NOME_BD]
Para agilizar os passos de compilação, instalação, atualização e deploy dos webapps foi criado um arquivo Makefile
.
Primeiramente, copie o arquivo Makefile
para o diretório [DIR_SRC].
Depois abra-o para edição e altere os seguintes parâmetros:
DSPACE_WEBAPPS_FOLDER
: Diretório onde os webapps do DSpace são instalados ([DIR_INSTALACAO]/webapps
).
MIRAGE2_FLAG
: true
para instalar o tema Mirage2, false
para não instalar
Execute os seguintes comandos, dentro do diretório [DIR_SRC], para executar as tarefas correspondentes:
Para compilar:
$ make
Para instalar:
$ make install
Para atualizar:
$ make update
Para fazer o deploys (copiar os webapps para o diretório de webapps padrão do Tomcat8):
$ make deploy
Para limpar os arquivos temporários criados durante a compilação:
$ make clean
$ mvn package -pl dspace-rest -am -T 4 && (cd dspace/target/dspace-installer/ && ant update)
Para acessar a interface gráfica do SOLR em um servidor externo deve ser usado um túnel SSH.
Criar um túnel SSH com o comando:
$ ssh -L 8585:localhost:8080 [email protected]
Acessar a interface gráfica do SOLR usando a porta 8585: http://localhost:8585/solr
Obs.: A porta 8585
é só um exemplo. Outras portas podem ser usadas.
Obs.2: O comando deve ser executado na máquina local e deve permanecer em execução até o fim do processo.
Fazer a migração do banco de dados:
Na instância original:
$ pg_dump -h localhost -U postgres -Ft -f dump_dspace.tar [NOME_BD]
Na instância nova:
$ createdb -h localhost -U postgres -O [USUARIO_BD] [NOME_BD_NOVO]
$ pg_restore -h localhost -U postgres -d [NOME_BD_NOVO] dump_dspace.tar
Fazer a migração dos arquivos, copiando o diretório assetstore
da instância original para a instância nova.
Fazer a migração dos logs, copiando o diretório logs
da instância original para a instância nova.
Fazer a migração das configurações do handle, copiando o diretório handle-server
da instância original para a instância nova, supondo que o servidor em que ficará instalada a nova instância tenha o mesmo IP que o servidor em que estava instalada a instância original.
Fazer a migração do dados do SOLR:
Copiar o conteúdo do diretório SOLR da instância original para a instância nova:
$ rsync -Arv --delete --delete-excluded [[email protected]:][DIR_INSTALACAO]/solr/* [[email protected]_NOVO:][DIR_INSTALACAO_NOVO]/solr/
Caso existam outros shards/cores de estatísticas do SOLR, ativados ou não, deve-se seguir os passos a seguir para adicioná-los ao SOLR da instância nova.
Obs.: O mesmo serve para os shards/cores diferentes dos originais que foram copiados da instância original, pois apenas os shards/cores originais do DSpace (authority, oai, search, statistics) são carregados automaticamente.
Copiar os diretórios dos shards para dentro do diretório SOLR da instância nova:
$ scp -r [[email protected]:][DIR_INSTALACAO]/solr/[SHARD] [[email protected]_NOVO:][DIR_INSTALACAO_NOVO]/solr/
Adicionar o shards/core no SOLR da instância original
Obs.: Os passos a seguir devem ser executados para cada shard, substituindo [NOME] pelo nome do shard e [DIR_INSTALACAO_NOVO] pelo caminho completo de instalação.
Método 1: Sem utilizar os comandos de importação/exportação (via linha de comando):
Obs.: Em caso de sucesso o comando deve retornar "status":0
$ curl -k "https://localhost:8443/solr/admin/cores?action=CREATE&wt=json&indexInfo=false&instanceDir=statistics&config=solrconfig.xml&schema=schema.xml&name=statistics-[NOME]&dataDir=[DIR_INSTALACAO_NOVO]/solr/statistics-[NOME]/data"
Ex.: “…&name=statistics-2017&/home/dspace/run/solr/statistics-2017/data”
Método 2: Utilizando os comandos de importação/exportação (via interface gráfica):
Caso a instalação não esteja sendo feita na máquina local deve ser usado um túnel SSH para acessar a interface gráfica do SOLR:
Como acessar o SOLR via túnel SSH
Utilizar um navegador para acessar a interface gráfica do SOLR no endereço localhost:8080/solr
ou, caso a instalação não não esteja sendo feita na máquina local, localhost:<PORTA>/solr
.
Clicar em Core Admin
, no menu lateral e depois em Add Core
, no menu superior.
Preencher os campos name
, instanceDir
e dataDir
da maneira a seguir e clicar em Add Core
(na parte inferior do diálogo):
name
: statistics-[NOME] / instanceDir
: statistics / dataDir
: [DIR_INSTALACAO_NOVO]/solr/statistics-[NOME]/data
Ex.: name
: statistics-2017 / instanceDir
: statistics / dataDir
: /home/dspace/run/solr/statistics-2017/data
Reindexar os shards/cores de estatísticas do SOLR, principalmente para os diretórios mais antigos que possuem esquemas diferentes dos atuais (ex.: uso do Handle e não do UUID na identificação do item)
$ ./bin/dspace solr-reindex-statistics -a reindex -i statistics-[NOME] -f
CUIDADO! Esse procedimento irá resetar todo o conteudo do DSpace. NUNCA FAZER ISSO EM UMA INSTÂNCIA DE PRODUÇÃO
Alterar o parâmetro db.cleanDisabled
para falso, no arquivo config/dspace.cfg
, a fim de permitir a execução do comando dspace database clean
. Esse parâmetro pode ser alterado diretamente no diretório de instalação e, nesse caso, não é necessário reiniciar o tomcat.
db.cleanDisabled=false
Adicionar poderes de Super-usuário ao usuário dspace
do postgresql:
$ psql -h localhost -U postgres -c "ALTER USER [USUARIO_BD] WITH SUPERUSER;"
Limpar o conteúdo do DSpace:
$ [DIR_INSTALACAO]/bin/dspace database clean
Limpar o conteúdo do SOLR do DSpace:
Obs.: É necessário que o tomcat esteja ativo
$ curl -k https://localhost:8443/solr/statistics/update?commit=true -H "Content-Type: text/xml" --data-binary "<delete><query>*:*</query></delete>"
$ curl -k https://localhost:8443/solr/authority/update?commit=true -H "Content-Type: text/xml" --data-binary "<delete><query>*:*</query></delete>"
Reabilitar a extensão pgcrypto no banco de dados:
$ psql -h localhost -U postgres -d [NOME_BD] -c "CREATE EXTENSION pgcrypto;"
Recriar o banco de dados do DSpace:
$ [DIR_INSTALACAO]/bin/dspace database migrate
Recriar o usuário administrador:
[DIR_INSTALACAO]/bin/dspace create-administrator