Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Instalando e Integrando o Subversion e o Trac

Colaboração: Jean Rodrigo Ferri

Data de Publicação: 24 de Setembro de 2005

Para a nossa alegria escrever códigos livres está se tornando moda, mas com isso vêm a necessidade de organizarmos esses códigos deixando-os disponíveis para a comunidade e colaboradores e também de gerenciar o desenvolvimento dos softwares.

Existem vários sistemas de controle de versões de software, o mais popular é o CVS[1]. Mas desde que surgiu o Subversion[2] várias comunidades estão migrando seus repositórios de códigos por várias razões que não vou discutir nesse momento. As comunidades Zope[3] e Plone[4] são alguns exemplos.

Mas somente o Subversion não resolve todos os problemas, ainda precisamos gerenciar todo o processo de desenvolvimento, saber quem fez o quê, quando e onde, produzir documentação de forma desburocratizada (nesse quesito nada melhor que um Wiki), poder reportar bugs e agendar tarefas (popular issue tracking), separar as várias versões dos softwares e, é claro, ter relatórios que nos permitam acompanhar tudo.

Que tal se isso tudo fosse integrado? Então estamos falando do Trac[5], um sistema escrito em Python[6], sob a licença GPL, que nos auxilia a gerenciar todo o processo de desenvolvimento de softwares de maneira descentralizada, com equipes distribuídas em qualquer lugar do planeta. Um exemplo de uso do Trac é o Colab[7] do Interlegis.

Esse tutorial descreve passo-a-passo a instalação e configuração do Subversion e do Trac no sistema operacional Ubuntu Linux[8] versão 5.04 (codinome Hoary), distro que tomou o lugar do meu Mandrake desde o início desse ano e não troco mais. Mas pode servir como guia para qualquer outra distribuição Linux, principalmente as baseadas em GNU/Debian! =)

Instalando o Trac, Subversion, Apache e Outras Dependências

O Trac tem várias dependências, Apache, Subversion, Python, SQLite, ClearSilver, GNU Enscript e SilverCity. Mas para quem usa Debian ou derivados como o Ubuntu basta usar o APT e todas as dependências serão instaladas automaticamente. Tudo o que faremos será com permissão de superusuário.

  #  apt-get install apache2 subversion libapache2-svn trac

Criando um Repositório SVN

O Subversion é também chamado de SVN e após sua instalação precisamos criar nosso repositório, múltiplos repositórios podem ser criados, mas geralmente um só atende as necessidades.

  #  svnadmin create /opt/svn

Criando os Usuários

Podemos usar várias técnicas para autenticar usuários, e usar bases diferentes para o Subversion e para o Trac, mas por conveniência ambos compartilharão a mesma base.

Os usuários ficarão armazenados em um arquivo e suas senhas serão encriptadas com o utilitário do Apache htpasswd. Criamos inicialmente o arquivo de usuários e senhas com um usuário, o qual chamei de admin.

  #  htpasswd -c /opt/svn/dav_svn.passwd admin

Após, podemos criar novos usuários.

  #  htpasswd -s /opt/svn/dav_svn.passwd usuario

Configurando o Repositório SVN

Agora precisamos configurar o nosso repositório Subversion, opções avançadas de configuração podem ser usadas, mas para o nosso exemplo faremos o básico.

  #  vi /opt/svn/conf/svnserve.conf

E substituiremos a configuração existente dando permissão de leitura para usuários anônimos e de escrita para autenticados.

  [general]
  anon-access = read
  auth-access = write
  realm = Meu Subversion
  [auth]
  store-auth-creds = no

Configurando o Apache para o SVN

A organização do Apache no Ubuntu é muito interessante e funcional, mas como padrão vamos apagar o arquivo do Subversion criado em sua instalação.

  #  rm /etc/apache2/mods-enabled/dav_svn.conf

E editar um novo arquivo para ficar em conformidade com o padrão que o Ubuntu propõe.

  #  vi /etc/apache2/sites-available/svn

E nesse arquivo configuramos um Virtual Host para o nosso repositório tornando sua URL bonita! :-)

  NameVirtualHost 10.10.10.10:80
  <VirtualHost 10.10.10.10:80>
  ServerName svn.seu_dominio.com.br
  ServerAlias svn
  ServerAdmin admin@seu_dominio.com.br
  ErrorLog /var/log/apache2/error_svn_log
  CustomLog /var/log/apache2/access_svn_log common
  <Location "/">
  DAV svn
  SVNPath /opt/svn
  AuthType Basic
  AuthName "Meu Subversion"
  AuthUserFile /opt/svn/dav_svn.passwd
  <LimitExcept GET PROPFIND OPTIONS REPORT>
  Require valid-user
  </LimitExcept>
  # SSLRequireSSL
  </Location>
  </VirtualHost>

Como comentei a organização da configuração do Apache no Ubuntu é nota 10, vamos agora habilitar o nosso módulo.

  #  ln -s /etc/apache2/sites-available/svn /etc/apache2/sites-enabled/svn

E pronto, o Subversion está configurado!

Criando a Base do Trac

Da mesma forma que criamos o repositório SVN precisamos criar a base para o nosso Trac.

  #  trac-admin /opt/trac initenv

Algumas perguntas serão feitas.

  Project Name [My Project]> Meu Trac
  Path to repository [/var/svn/test]> /opt/svn
  Templates directory [/usr/share/trac/templates]> (enter)

Configurando o Trac

Vamos agora configurar o Trac.

  #  vi /opt/trac/conf/trac.ini

Configure ao seu gosto, mas vamos ver um exemplo de configuração.

  [header_logo]
  src = logo.gif
  alt = Meu Trac
  height = 50
  link = http://trac.seu_dominio.com.br/
  width = 150
  
  [logging]
  log_file = trac.log
  log_level = DEBUG
  log_type = none
  
  [trac]
  default_charset = iso-8859-15
  templates_dir = /usr/share/trac/templates
  repository_dir = /opt/svn
  htdocs_location = /trac/
  database = sqlite:db/trac.db
  
  [notification]
  smtp_enabled = false
  smtp_replyto =
  smtp_always_cc =
  smtp_server = smtp.seu_dominio.com.br
  smtp_from = admin@seu_dominio.com.br
  always_notify_reporter = false
  
  [project]
  url = http://trac.seu_dominio.com.br/
  footer =  Este conteúdo está sob a licença<br /><a href="http://creativecommons.org/licenses/by/2.5/deed.pt">Creative Commons</a>
  name = Meu Trac
  descr = Meu Ambiente de Desenvolvimento Trac
  icon = favicon.ico
  
  [mimeviewer]
  enscript_path = enscript
  
  [attachment]
  max_size = 1024000
  
  [timeline]
  changeset_show_files = 0
  
  [diff]
  tab_width = 8
  
  [ticket]
  default_version =
  default_severity = normal
  default_component = component1
  default_priority = normal
  default_milestone =

Configurando o Apache para o Trac

Voltamos ao Apache, vamos fazer um Virtual Host para o Trac tornando a sua URL de acesso mais bonita escondendo coisas feias como '/cgi-bin/'. Editamos um novo arquivo de configuração para o Trac.

  #  vi /etc/apache2/sites-available/trac

E nesse aquivo a configuração do nosso Virtual Host.

  <VirtualHost 10.10.10.10:80>
  ServerName trac.seu_dominio.com.br
  ServerAlias trac
  ServerAdmin admin@seu_dominio.com.br
  CustomLog /var/log/apache2/access_trac_log combined
  ErrorLog /var/log/apache2/error_trac_log
  Alias /trac "/usr/share/trac/htdocs"
  SetEnv TRAC_ENV "/opt/trac"
  ScriptAliasMatch ^/(.*) /usr/lib/cgi-bin/trac.cgi/$1
  <Location "/login">
  AuthType Basic
  AuthName "Meu Trac"
  AuthUserFile /opt/svn/dav_svn.passwd
  Require valid-user
  # SSLRequireSSL
  </Location>
  </VirtualHost>

E agora habilitamos o módulo do Trac no Apache do Ubuntu.

  #  ln -s /etc/apache2/sites-available/trac /etc/apache2/sites-enabled/trac

Habilitando CGI para o Trac no Apache

O Trac roda sobre CGI, precisamos então habilitar o módulo de CGI do Trac no diretório de CGI do Ubuntu. Pode-se copiar o módulo ou simplesmente criar um link simbólico para ele, nossa opção.

  #  ln -s /usr/share/trac/cgi-bin/trac.cgi /usr/lib/cgi-bin/trac.cgi

Configurando as Permissões para o Apache

Como configuramos tudo até agora com permissão de superusuário precisamos transferir a propriedade dos arquivos para o usuário que roda o Apache (www-data), para que o Apache possa tornar esses módulos acessíveis publicamente.

  #  chown -R www-data:www-data /opt/svn /opt/trac

Reiniciando o Apache

O último passo é reiniciar o Apache.

  #  /etc/init.d/apache2 restart

E se tudo ocorreu como o esperado, tanto o Subversion quanto o Trac já estão funcionando e podem ser acessados via protocolo HTTP e WebDAV. Experimente acessar as URLs, em nosso exemplo svn.seu_dominio.com.br e trac.seu_dominio.com.br, do seu navegador.

Habilitando Permissões no Trac

Podemos ainda configurar permissões para nossos usuários no Trac. Por padrão ele já traz um conjunto de permissões pré-configuradas as quais podemos listar.

  #  trac-admin /opt/trac permission list

Então basta configurar a permissão de administração geral do Trac para o nosso usuário admin e outras tantas permissões quantas você desejar aos demais usuários.

  #  trac-admin /opt/trac permission add admin TRAC_ADMIN

Traduzindo os Templates do Trac

O Trac ainda não possui suporte a i18n (internacionalização), mas existe um conjunto de templates traduzidos[9] para o nosso idioma Português do Brasil. Basta movê-los para o diretório '/usr/share/trac/templates/', mas antes é bom fazer backup dos templates originais existentes nesse diretório.

Conclusão

O uso de um sistema de controle de versões é viciante. Depois que você começa a usá-lo não consegue mais viver sem ele, pois ele proporciona o domínio total sobre a evolução dos códigos fontes do software, mesmo com pessoas diferentes em locais diferentes, trabalhando sobre o mesmo código.

Entre várias outras vantagens, permite rever trechos de códigos, verificar facilmente as diferenças entre alterações nos códigos fontes, recuperar desastres, desenvolvimento de versões paralelas e armazena todo o histórico de evolução dos softwares.

O Subversion é um grande avanço em se tratando de sistema de controle de versões centralizado (uma cópia principal no servidor e cópias de trabalho nos clientes), trazendo facilidades e vários novos recursos.

Mas ele só não permite o controle total sobre o processo de desenvolvimento, a integração com o Trac supre com elegância essa carência.

Espero que você tenha gostado e que o tutorial lhe seja útil! ;-)

Referências

  1. http://www.nongnu.org/cvs/
  2. http://subversion.tigris.org/
  3. http://svn.zope.org/
  4. http://svn.plone.org/
  5. http://www.edgewall.com/trac/
  6. http://www.python.org/
  7. http://colab.interlegis.gov.br/
  8. http://ubuntulinux.org/
  9. http://projects.edgewall.com/trac/attachment/wiki/TracL10N/trac-0.9.1-templates-pt-br.tar.gz

Veja a relação completa dos artigos de Jean Rodrigo Ferri

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 3.04/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (1339 votos)

Opinião dos Leitores

Cristiane
10 Fev 2012, 09:34
Muito bom esse artigo. Posso utiliza-lo no windows? Saberia me dizer quais os comandos usar?
André
19 Out 2011, 13:16
Genial a ajuda!
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script
Treinamentos, Consultorias e Soluçoes em TI. Baseados em softwares livres e padrões abertos para ambientes de missão crítica

Submarino.com.br

Expressões Regulares - Uma abordagem divertida 3ª edição