quarta-feira, 10 de agosto de 2011

Instalando o Archiva como serviço no Ubuntu

Não vou dizer que também odeio o Archiva (apesar disso ser verdade) para não me acharem ranzinza demais. Vamos dizer que eu desgosto muito dele. A documentação é muito fraca, e ele com a solução atual que estou usando (com Glassfish) é muito lento.

Então resolvi instalá-lo standalone para ver se fica mais espertinho.

Vamos ao passo a passo, já que como citei, a documentação dele é horrível. Lembrando que estou utilizando o archiva 1.3.5 e o Ubuntu 10.04.1 LTS.

Baixe o archiva em http://archiva.apache.org/download.html e certifique-se de baixar a versão "standalone" em formato "tar.gz".

Como root crie o diretório /opt/archiva e extraia o conteúdo do arquivo dentro de /opt/archiva, criando depois um link simbólico chamado "current" apontando para o diretório extraido.

root@reckless: mkdir /opt/archiva
root@reckless: cd /opt/archiva
root@reckless: tar -zxvf ~/apache-archiva-1.3.5-bin.tar.gz
root@reckless: ln -s ./apache-archiva-1.3.5 ./current

Ainda como root, crie o diretório /var/log/archiva. Remova a pasta /opt/archiva/current/logs e dentro de /opt/archiva/current crie um link simbólico chamado "logs" apontando para /var/log/archiva

root@reckless: mkdir /var/log/archiva
root@reckless: cd /opt/archiva/current
root@reckless: rm -rf ./logs
root@reckless: ln -s /var/log/archiva ./logs

Ainda como root, crie o diretório /etc/archiva. Mova o diretório /opt/archiva/current/conf para /etc/archiva e crie um link simbólico chamado "conf" dentro de /opt/archiva/current apontando para /etc/archiva/conf

root@reckless: mkdir /etc/archiva
root@reckless: cd /opt/archiva/current
root@reckless: mv ./conf /etc/archiva/
root@reckless: ln -s /etc/archiva/conf .

Copie agora o arquivo /opt/archiva/current/bin/archiva para /etc/init.d (ou faça um link simbólico para ele).
Depois disso é necessário editar o arquivo /etc/init.d/archiva e setar a propriedade ARCHIVA_BASE="/opt/archiva/current".

root@reckless: cp /opt/archiva/current/bin/archiva /etc/init.d/
root@reckless: vim /etc/init.d/archiva


#! /bin/sh

(...)


# These settings can be modified to fit the needs of your application

# Application
APP_NAME="archiva"
APP_LONG_NAME="Apache Archiva"

# Forcando o ARCHIVA_BASE
ARCHIVA_BASE="/opt/archiva/current"

if [ "X$ARCHIVA_BASE" = "X" ]; then
  ARCHIVA_BASE=..
fi
(...)


Feito isso, podemos inicializar o archiva rodando:

root@reckless: /etc/init.d/archiva start


Claro que não! Ele explode com um lindo erro (tá vendo como eu gosto do Archiva...):
Starting Apache Archiva...
eval: 1: /opt/archiva/apache-archiva-1.3.5/bin/./wrapper-linux-x86-32: not found




Porque diabos ele está tentando executar esse wrapper se meu Linux é 64 bits? Não faço a menor ideia. O fato é que de acordo com esse post http://old.nabble.com/Archiva-not-working-on-64-bit-Linux-td25789891.html foi só remover o arquivo /opt/archiva/current/wrapper-linux-x86-32 que ele funciona.

Excute agora o archiva como console e veja se está tudo ok:


root@reckless: /etc/init.d/archiva console

Se estiver, pare o serviço (Ctrl+c) e adicione o script do archiva à inicialização do sistema (runlevel)

root@reckless: update-rc.d -f archiva enable

A partir daí, o archiva irá inicar automaticamente quando a máquina iniciar e será possível iniciá-lo e pará-lo através do comando "service"

root@reckless: service archiva stop
root@reckless: service archiva start

No próximo post, configuração.

Nenhum comentário: