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.