De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
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! =)
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
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
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
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
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!
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)
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 =
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
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
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
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.
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
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.
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! ;-)
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários