Trac é uma simples ferramenta, open source e de interface web para controle de mudanças em projetos de desenvolvimento de software. O objetivo do software é ajudar o desenvolvedor a rastrear essas mudanças, entender o porquê de cada uma e qual o seu impacto no projeto como um todo.
A finalidade desse documento não é falar sobre os recursos e funcionalidades da ferramenta (onde maiores detalhes podem ser encontrados no link http://pt.wikipedia.org/wiki/Trac), mas descrever o passo-a-passo necessário para instalar essa magnífica ferramenta e integrá-la com o repositório do subversion e ao VisualSVN Server.
No site official do VisualSVN (http://www.visualsvn.com/server/trac) é disponibilizado uma versão pré-configurada do Trac juntamente como o passo-a-passo necessário para integrá-lo ao VisualSVN Server. No entanto, apesar desse caminho ser relativamente mais simples, é provável haver situações que você necessite realizar upgrades, acréscimo/remoção de plugins, migração de banco de dados e outras tarefas que exigirá um conhecimento maior sobre o processo, os componentes instalados e suas funcionalidades.
Pensando nisso, esse documento não usará de atalhos ou simplificações e o passo-a-passo da instalação e integração da ferramenta Trac será detalhado de uma forma completa, descrevendo as razões para as respectivas escolhas.
2. Considerações
A ferramenta Trac foi desenvolvida na linguagem de programação Python e conta com uma gama variada de plugins. Os plugins também são desenvolvidos em Python. No entanto, é comum um determinado plugin suportar uma ou outra versão do Python, limitando seu uso.
Além disso, muitos plugins também só podem ser integrados a versões específicas do Trac.
Antes de iniciar a instalação dos softwares requisitos, é importante avaliar quais os plugins deseja instalar ao Trac de forma a escolher adequadamente a versão do Python e de outros softwares requisitos.
Passo 1 – Instalação do Python
A versão atual do Trac (0.11.5) requer a versão 2.3 até 2.6 do Python. A recomendação aqui é utilizar a versão 2.5 devido à maior compatibilidade e suporte por parte dos plugins e drivers.
Apesar de esse documento utilizar tal versão, novamente destaco a importância de avaliar a compatibilidade exigida pelos demais softwares/plugins que serão integrados.
Mais especificamente falando, será usado a versão 2.5 em vez da 2.5.4 (mais recente) porque um dos drivers necessários (mod_python 3.3.1) está, atualmente, disponível para tal release. Essa questão será novamente abordada em outro tópico.
A instalação pode ser baixada através do link: http://www.python.org/ftp/python/2.5/python-2.5.msi.
Por padrão, a instalação assume o diretório C:\Python25 como o local onde serão descompactados os arquivos. No entanto usaremos o path C:\Program Files\Python\.
O processo é simples bastando apenas avançar as abas da instalação (Next, Next, Finish).
Passo 1.1 – System Path
Nas variáveis de ambiente do Windows, acrescente o caminho da instalação do Python no System Path.
Também será necessário adicionar uma variável de ambiente “PYTHONHOME” com o caminho da instalação do Python.
Passo 2 – Instalação do SetupTools
O SetupTools é um coleção de ferramentas para o Python distutils que permite a criação e distribuição de pacotes Python mais facilmente.
Necessitaremos desse pacote para a instalação de plugins e, inclusive, a própria ferramenta Trac.
A instalação pode ser feita através de forma automática, utilizando a instalação binária, ou de forma manual.
Particularmente eu recomendo a instalação manual porque essa opção elimina a possibilidade de você instalar uma versão inadequada ou não suportada pela versão do Python. Nesse caso, será necessário baixar o bootstrap module e copia-lo para a pasta scripts, no diretório de instalação do Python (C:\Program Files\Python\Scripts).
$ cd c:\Program Files\Python
$ md Scripts
$ cd Scripts
$ ez_setup.py
$ md Scripts
$ cd Scripts
$ ez_setup.py
O script ez_setup.py irá fazer o download e instalar a versão adequada do SetupTools.
O resultado da execução desse script deve ser semelhante à apresentada abaixo:
C:\Program Files\Python\scripts>ez_setup.py
Downloading http://pypi.python.org/packages/2.5/s/setuptools/setuptools-0.6c9-py
2.5.egg
Processing setuptools-0.6c9-py2.5.egg
Copying setuptools-0.6c9-py2.5.egg to c:\program files\python\lib\site-packages
Adding setuptools 0.6c9 to easy-install.pth file
Installing easy_install-script.py script to C:\Program Files\Python\Scripts
Installing easy_install.exe script to C:\Program Files\Python\Scripts
Installing easy_install-2.5-script.py script to C:\Program Files\Python\Scripts
Installing easy_install-2.5.exe script to C:\Program Files\Python\Scripts
Installed c:\program files\python\lib\site-packages\setuptools-0.6c9-py2.5.egg
Processing dependencies for setuptools==0.6c9
Finished processing dependencies for setuptools==0.6c9
Downloading http://pypi.python.org/packages/2.5/s/setuptools/setuptools-0.6c9-py
2.5.egg
Processing setuptools-0.6c9-py2.5.egg
Copying setuptools-0.6c9-py2.5.egg to c:\program files\python\lib\site-packages
Adding setuptools 0.6c9 to easy-install.pth file
Installing easy_install-script.py script to C:\Program Files\Python\Scripts
Installing easy_install.exe script to C:\Program Files\Python\Scripts
Installing easy_install-2.5-script.py script to C:\Program Files\Python\Scripts
Installing easy_install-2.5.exe script to C:\Program Files\Python\Scripts
Installed c:\program files\python\lib\site-packages\setuptools-0.6c9-py2.5.egg
Processing dependencies for setuptools==0.6c9
Finished processing dependencies for setuptools==0.6c9
Como dito acima, pode-se optar pela instalação binária. Nesse caso, será necessário baixar a versão do SetupTools compatível com a versão do Python.
No link http://pypi.python.org/pypi/setuptools é possível encontrar a instalação binária for MS Windows.
Concluído o download, o processo de instalação é igualmente simples (Next, Next, Finish). A versão utilizada na criação desse tutorial é a 0.6c9 e foi baixada desse link.
Após a instalação, confirme a existência do subdiretório Scripts e, dentro dele, o arquivo easy_install.exe.
OBS: É necessário que seja dado permissão de administrador para a instalação (Run as Administrator).
Passo 2.1 – Path
Acrescente o subdiretório Scripts (C:\Program Files\Python\Scripts) no system path, igualmente como feito no passo 1.1.
Passo 3 – Instalação do Genshi
A instalação pode ser feita através do SetupTools ou através da instalação binária.
Em caso de ser feita através do SetupTools, basta abrir um prompt de comandos (aberto com privilégio de Administrador) e digitar:
$ easy_install Genshi
Se desejar a instalação binária, faça o download pelo link e instale-o normalmente (com privilégio de Administrador).
Também há outras formas. Se achar necessário, consulte esse site.
OBS: A imagem acima mostra a instação bem sucedida do Genshi utilizando o SetupTools. No entanto, após concluir toda as etapas de instalação e acessar o Trac via web browser, o módulo de interpretação do python (mod_python) notificou erro informando que o Genshi não estava instalado. O problema só foi solucionado utilizando a instalação binária.
Passo 4 – ClearSilver
O ClearSilver é uma linguagem neutra para system de template HTML. Sua instalação é opcional, mas é requerida para alguns plugins.
Durante a criação desse tutorial, tentou-se realizar a instalação através do comando “easy_install ClearSilver”. O SetupTools fez o download da versão 0.10.1, mas falhou ao instalar o pacote. A solução foi utilizar a url completa para o pacote de versão 0.10.4 para python 2.5.
Passo 5 – Instalando Banco de Dados
Será necessária a instalação de um banco de dados na qual o Trac usará para seu funcionamento. Atualmente é oferecido suporte ao SQLite, PostgresSQL e MySQL. Isso porque o Python possui drives para apenas esses três banco de dados, sendo o driver para MySQL ainda experimental.
Passo 5.1 – Drive para PostgresSQL
Para utilizar o PostgresSQL como gerenciador de banco de dados no Track, é necessário a instalação do driver pyPgSQL e do pacote mxDataTime e são detalhados nos sub-tópicos abaixo.
Apesar dos procedimentos de instalação ser simples, em diversos outros momentos onde optei por utilizar o PostgreSQL, enfrentei diversos problemas e conflitos. Por isso, sugiro o uso do SQLite que é bem mais flexível, principalmente em caso de migração.
Passo 5.1.1 – O gerenciador de banco de dados
Se você já possui o PostgreSQL instalado, pule essa etapa. Caso contrário acesse o link http://www.postgres.org/ e baixe a versão desejada.
Mas antes de fazer o download, leia o próximo tópico.
Passo 5.1.2 – Driver pyPgSQL
A versão do drive pyPgSQL a ser instada depende da versão do gerenciador de banco de dados e da versão do Python.
No link http://www.stickpeople.com/projects/python/win-psycopg/ você encontra uma tabela de downloads que, atualmente, disponibiliza a versão 2.0.12 para o Python 2.5 (usado nesse documento) e para o PostgreSQL 8.4.0 (link direto).
OBS.: A instalação binária deve ser executada com permissões de administrador.
Passo 5.1.3 – Instalando mxDateTime
O mxDateTime implementa novos tipos de objetos: DateTime, DateTimeDelta e RelativeDateTime e varias outras ferramentas destas for tornar fácil a conversar em formatos date/time. Esse pacote é uma exigência do drive pyPgSQL.
Com a instalação do SetupTools, basta executar o seguinte comando no prompt:
easy_install egenix-mx-base
Em caso de falha, é possível fazer o download da instalação binária (para download link aqui)
OBS.: Mais uma vez lembrando de que é requerida permissão de administrador para a instalação binária.
Passo 5.2 – Drive para SQLite
No caso de você optar pelo SQLite, o processo é mais simples.
Passo 5.2.1 – O gerenciador de banco de dados
Esse gerenciador de banco de dados é muito simples (nem mesmo requer um instalador).
a) Acesse o site oficial (http://www.sqlite.org/) e faça o download da versão for Windows mais recente. Atualmente a versão disponível é a 3.6.17 (link direto);
b) Crie uma pasta chamada “SQLite” em “C:\Program Files” e descompacte o arquivo dentro dessa pasta;
c) Por último, acrescente C:\Program Files\SQLite no path do sistema (semelhante ao tópico 1.1)
Uma outra sugestão, em vez de criar um diretório específico para o SQLite, você pode copia-lo para, por exemplo, o diretório de instalação do Python (que já está referenciado no system path).
Passo 5.2.2 – Drive pySQLite
É necessário instalar o drive pySQLite no Python. Essa instalação pode ser feita manualmente (recomendável) ou automática, através de uma instalação binária.
Se optar por fazer manualmente (processo mais simples) abra um prompt de comandos com privilégio de administrador e simplesmente digite o comando abaixo.
$ easy_install pysqlite
Além de mais simples e rápido, e modo remove a possibilidade de você instalar uma versão incompatível com a do Python.
A instalação binária pode ser encontrada nesse link. Deve observar que é necessário a instalar o drive correspondente à versão do Python que foi instalado, que nesse caso é a 2.5 (link direto).
Passo 6 – SVN Python
A instalação dos pacotes de acesso e gerenciamento do repositório svn no python é um dos requisitos obrigatórios e deve considerar a versão do servidor Apache que está instalado e também a versão do Python. E como esse tutorial é destinado a integrar o Trac no VisualSVN Server (mas especificamente a versão 2.0.6 do VisualSVN Server), então você deverá optar por uma instalação com suporte ao Apache 2.2.x.
Isso porque o VisualSVN Server (versão 2.0.6) é composto pelo Apache/2.2.13 (Win32) DAV/2 SVN/1.6.5 mod_ssl/2.2.13 OpenSSL/0.9.8k.
Esse pacote pode ser acrescentado ao Python através de uma instalação binária ou de forma manual (usando o SetupTools), mas deve-se adotar uma instalação compatível com a versão do Subversion (que nesse caso é a 1.6.5) e a versão do Python (2.5).
O instalador é encontrado no mesmo site do Subversion, descrito no tópico acima (http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100) ou pelo link direto.
OBS: É requerido “Run as administrator”.
Se preferir, pode fazer a instalação através do SetupTools:
$ easy_install -Z http://subversion.tigris.org/files/documents/15/46527/svn-python-1.6.5.win32-py2.5.exe
Passo 7 - Módulo mod_python
Esse módulo é particularmente necessário para o Apache HTTP Server e deve ser compatível com a versão do python e do próprio Apache instalado (v2.2.13 – VisualSVN Server).
O site oficial (http://www.modpython.org/) redireciona para a página de download de módulos do Apache (http://httpd.apache.org/modules/python-download.cgi). A versão atual 3.3.1 é destinada ao Apache HTTP Server 2.0 e 2.2 (que é o nosso caso). Link direto.
Antes de fazer a instalação é recomendável criar uma pasta chamada “modules” no diretório de instalação do VisualSVN Server. Isso porque o instalador do mod_python irá solicitar, em um dado momento, que informe o diretório de instalação do Apache. No entanto, o VisualSVN Server tem uma estrutura de diretório levemente diferente da do Apache, e isso inclui não possuir a pasta “modules” para onde o instalador irá copiar o módulo mod_python.so.
$ cd c:\Program Files\VisualSVN Server\
$ md modules
$ md modules
OBS: Se após concluída todas as etapas de instalação do Trac ou em um upgrade for exibida a mensagem abaixo no web browser, isso é um forte indicativo de que necessite instalar/reinstalar o mod_python.
Warning: Can't synchronize with the repository (Unsupported version control system "svn": "No module named svn"). Look in the Trac log for more information.
Passo 8 – Trac
Passo 8.1 – Instalando o Track
Para instalar o Track você pode fazer através da instalação binária (), ou então através do SetupTools.
Através do SetupTools basta executar o comando abaixo no prompt de comandos.
$ easy_install Trac
Também pode-se utilizar o link do repositório subversion.
$ easy_install http://svn.edgewall.org/repos/trac/tags/trac-0.11
OBS: O prompt de comandos deve ser aberto com privilégios de administrador.
Vá até o diretório C:\Program Files\Python\Tools\Scripts e execute o comando:
$ cd C:\Program Files\Python\Tools\Scripts
$ python setup.py install
$ python setup.py install
Passo 8.2 – Trac-Admin
O Trac environment é onde serão armazenadas as informações sobre Wiki pages, Tickets, Reports, Settings, etc. Um environment é basicamente um diretório que contém um arquivo de configuração específico juntamente com vários outros arquivos e diretórios.
Para exemplificação, nosso projeto será criado no caminho “D:\Repositories\Trac”. Esse diretório deve ser manualmente criado.
Criado o diretório, vamos criar um novo ambiente usando trac-admin:
$ trac-admin D:\Repositories\Trac\MyProject initenv
O trac-admin irá solicitar informações necessárias para criar o ambiente, tal como nome do projeto, string de conexão com a base de dados, repositório, ...
Para exemplificar usaremos o projeto “MyProject”. Assim, quando solicitado informe:
Passo 8.2.1 – Se estiver usando PostgresSQL
Project Name[My Project]: MyProject
Database connection string [sqlite:db/trac.db]: postgres://tracuser:tracpass@localhost:5432/trac
Repository type [svn]: svn
Path to repository [/path/to/repos]: D:\Repositories\SVN\MyProject
OBS: A string de conexão com o banco de dados especifica: O usuário tracuser, cuja senha é tracpass, tem acesso à base de dados trac cuja conexão é feita através o hostname localhost e porta 5432.
Tanto o usuário quanto a base de dados devem ser previamente criados pela ferramenta DB administrativa de sua preferência.
Passo 8.2.2 – Se estiver usando SQLite
Project Name[My Project]: MyProject
Database connection string [sqlite:db/trac.db]: sqlite:db/myproject.db
Repository type [svn]: svn
Path to repository [/path/to/repos]: D:\Repositories\SVN\MyProject
Passo 8.3 – Execução do Servidor Standalone
Após a criação do ambiente trac, você pode facilmente acessar a interface web através da execução do standalone server tracd.
$ tracd --port 8000 D:\Repositories\Trac\MyProject
No browser digite: http://127.0.0.1:8000/
Passo 8.4 – Firewall / Permissões para o Python
Quando você inicializar o servidor em modelo standalone pela primeira vez, o firewall do Windows 7 irá questiolá-lo sobre o tipo de permissão que o Python deverá receber.
Uma tela semelhante à imagem abaixo será exibida.
Marque das duas opções (como é mostrado na imagem) e clique no botão “Allow access”.
Passo 8.5 – Criando repositório svn
Ao acessar http://127.0.0.1:8000/MyProject/ pelo browser, provavelmente será exibida a seguinte mensagem:
Warning: Can't synchronize with the repository (D:/Repositories/SVN/MyProject does not appear to be a Subversion repository.). Look in the Trac log for more information.
Essa mensagem é porque o repositório svn (MyProject) não foi criado.
$ cd c:\Repositories
$ svnadmin create c:\Repositories\MyProject
$ svnadmin create c:\Repositories\MyProject
Passo 9 – Configurando o VisualSVN Server
Esse capítulo é dedicado a configuração do VisualSVN Server para integrar a ferramenta Trac. E os passos abaixo foram descritos considerando a versão 2.0.7 do VisualSVN Server.
Essa versão utiliza o Apache 2.2.13 e o Subversion 1.6.5.
Passo 9.1 - Arquivo vsvnvars.bat
No arquivo vsvnvars.bat, localizado em C:\Program Files\VisualSVN Server\, acrescente uma linha contendo: set PYTHONHOME=c:\Program Files\Python
@echo off
set PYTHONHOME=c:\Program Files\Python
set PATH=%~dp0bin;%PATH%
IF "%1" == "" GOTO welcome
%*
GOTO end
:welcome
echo Welcome to VisualSVN Server command prompt!
echo Use 'svn help', 'svnadmin help' and 'svnlook help' for more information.
echo Type 'exit' to exit.
GOTO end
:end
set PYTHONHOME=c:\Program Files\Python
set PATH=%~dp0bin;%PATH%
IF "%1" == "" GOTO welcome
%*
GOTO end
:welcome
echo Welcome to VisualSVN Server command prompt!
echo Use 'svn help', 'svnadmin help' and 'svnlook help' for more information.
echo Type 'exit' to exit.
GOTO end
:end
Passo 9.2 - Configurando httpd-custom.conf
Em C:\Program Files\VisualSVN Server\conf, abra o arquivo httpd-custom.conf e acrescente no final as seguintes linhas:
LoadModule python_module modules/mod_python.so
LoadModule authz_user_module bin/mod_authz_user.so
<Location /trac>
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir D:\Repositories\Trac
PythonOption TracUriRoot /trac
PythonDebug on
AuthName "Trac"
AuthType Basic
AuthBasicProvider file
AuthUserFile "D:/Repositories/SVN/htpasswd"
Require valid-user
</Location>
LoadModule authz_user_module bin/mod_authz_user.so
<Location /trac>
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir D:\Repositories\Trac
PythonOption TracUriRoot /trac
PythonDebug on
AuthName "Trac"
AuthType Basic
AuthBasicProvider file
AuthUserFile "D:/Repositories/SVN/htpasswd"
Require valid-user
</Location>
Agora basta resetar o VisualSVN Server.
Um comentário:
Boa tarde,
Consegui instalar a ferramenta porém não consigo fazer o login. Poderia me auxiliar?
email: erasmo.ps.neto@gmail.com
Obrigado
Postar um comentário