A ordem de instalação das dependências, opcionais ou não, é muito importante para que tudo funcione corretamente.
O trac, e suas dependências, rodam sobre o python, se você não tem python na máquina nem sei o que está fazendo aqui… Dê logo um
apt-get install python
Se deseja ter a possibilidade de usar o trac com a tradução para a sua (e mais) línguas, é necessário instalar o Babel ANTES de iniciar a instalação do trac.
apt-get install python-babel
Graças ao apt-get as dependências são instaladas todas com esse simples fucking comando abaixo (e eu que sofri instalando sem o apt-get)
apt-get install trac
Antes de tudo é necessário criar um novo projeto para então podermos configurá-lo. Isto é feito através da criação de um ambiente, que é onde o Trac guarda informações como páginas wiki, tickets, relatórios, etc:
trac-admin /caminho/para/projeto1 initenv
O comando acima nos perguntará:
O Trac pode ser executado como um servidor StandaAlone (já embutido nele) ou sobre um Apache. A idéia aqui, como não necessitamos de nada complexo, é executarmos o servidor no modo StandAlone. A partir de agora já é possível executarmos o servidor com o seguinte comando e conectar pelo browser:
tracd –port 8000 /path/to/myproject
Maaaaas, ao clicar em “Login” receberemos um erro, mas relaxe, isso é porque ainda não configuramos a parte de autenticação do Trac, então vamos lá.
A autenticação utilizada pelo Trac depende do modo como ele é executado, no nosso caso (StandAlone) a configuração é feita através de um arquivo contendo usuários e senhas: O arquivo deve seguir o seguinte formato: usuario:realm:senha
Sendo que a senha é, na verdade, um md5 do usuário + realm + senha original, exemplo:
usuário: robas realm: empresaX senha: robas
A entrada no arquivo de autenticação para os dados acima seria: robas:empresaX:789f5680d4a56d9c85109827b2f29bab
Para obtermos a string “789f5680d4a56d9c85109827b2f29bab”, podemos fazer:
printf “robas:empresaX:robas” md5sum
Repita para cada usuário desejado e monte o arquivo de autenticação.
Obs: Para facilitar a montagem do arquivo de autenticação é possível usar os seguintes comandos:
user=usuario1 realm=empresa password=senha1 path_to_file=/caminho/para/arquivo/de/autenticação echo ${user}:${realm}:$(printf “${user}:${realm}:${password}” | md5sum - | sed -e ‘s/\s+-//’) » ${path_to_file}
Depois basta alterar o valor das variáveis user e senha e executar o último comando, desta forma os novos usuários serão adicionados no arquivo de autenticação.
É necessário darmos permissão de administrador para algum usuário, entre os listados no arquivo de autenticação:
trac-admin /caminho/para/projeto1 permission add usuario1 TRAC_ADMIN
tracd –port 8000 –auth=”NomeDoProjeto,/caminho/para/arquivo/de/autenticação,realm” /caminho/para/projeto
Exemplo:
tracd –port 8000 –auth=”projeto1,/home/trac/conf/.authdb,empresaX” /home/trac/projeto1
Para customizar o logo no trac: No arquivo /home/subversion/trac/projeto1/conf/trac.ini
[header_logo] alt = SG2i height = 224 link = http://192.168.1.53:8000/projeto1 src = site/sg2i-logo.png width = 416
Na configuração acima o src quando especificado o caminho relativo site se refere ao diretório htdocs dentro da estrutura do projeto no trac.
Deve-se também customizar as strings existentes na seção [project]
Para habilitar a integração com o subversion devemos incluir um repositório, realizar um sincronização inicial e configurar os hooks (triggers) de execução (sempre que um commit ocorrer no repositório, sincronizar o trac com o conteúdo alterado).
No arquivo trac.ini acrescentar as seguintes seções:
[components] tracopt.versioncontrol.svn.* = enabled
[repositories] cigerepo.dir = /home/subversion/repositories/projeto1 cigerepo.description = “Repositório do projeto CIGE” cigerepo.type = svn cigerepo.url = svn://localhost/projeto1
Agora que acabamos de configurar o repositório cigerepo, vamos fazer yum resync manual para ver se está tudo correto:
trac-admin caminho/para/projeto1 repository resync cigerepo
Ao entrar na parte de Ver Código no menu superior da interface web do Trac deve ser possível visualizar o repositório cigerepo e seus arquivos.
Devemos configurar também os seguintes triggers de execução:
Temos modelos destes scripts no diretório hooks do nosso subversion, a sugestão é copiar os templates já existentes, modificá-los e torná-los executáveis (chmod +x arquivo):
Arquivo post-commit:
#!/bin/sh REPOS=”$1” REV=”$2” export PYTHON_EGG_CACHE=”/path/to/dir” /usr/bin/trac-admin /home/subversion/trac/projeto1 changeset added “$REPOS” “$REV”
Arquivo post-revprop-change:
#!/bin/sh REPOS=”$1” REV=”$2” export PYTHON_EGG_CACHE=”/usr/local/lib/python2.7” /usr/bin/trac-admin /home/subversion/trac/projeto1 changeset added “$REPOS” “$REV”
Para cadastrar o trac como um serviço no debian e ser executado automaticamente na inicialização do sistema:
Gerar o seguinte arquivo “tracd” no diretório /etc/init.d:
Tornálo executável:
chmod +x tracd
E incluí-lo na inicialização do sistema:
update-rc.d tracd defaults