Instalando Subversion com interface Web de forma rápida e Prática.

Pessoal,

Trabalho com o Subversion há algum tempo e recebo muitas dúvidas sobre a instalação e utilização do mesmo.

Ainda não tinha encontrado um tutorial na Internet que acelerasse a instalação do Subversion em um ambiente de produção de forma bem intuitiva e de fácil uso, por isso escrevo aqui um tutorial simples e objetivo que atenderá a maioria das necessidades que esbarrei em muitos clientes.

Para quem está começando:

Subversion (também conhecido por svn) é um sistema de controle de versão desenhado especificamente para ser um substituto moderno do CVS, que se considera ter algumas limitações.

Mãos a obra!

Este tutorial é baseado no Debian 6.0 (squeeze), logo disponibilizarei outro para instalação em outras distribuições.

É necessário que você tenha instalado o Debian 6.0 e uma a conexão a Internet.


1. Vamos atualizar nossa estrutura de pacotes:

root@svn:~# apt-get update

root@svn:~# apt-get install apache2 libapache2-mod-php5 libapache2-svn php5-mysql subversion


2. Ele irá incluir todas as dependências necessárias para a instalação dos pacotes selecionados, após isso faça:

root@svn:~# a2enmod dav_fs

Isto habilita o recurso de filesystem para uso do Subversion, acrescenta bastante performance ao serviço.

root@svn:~# a2enmod rewrite

Isto habilita o recurso de redirecionamento de URLs ao Apache.

Acesse o diretório /var/www:

root@svn:~# cd /var/www


3. Baixe o USVN para este diretório:

root@svn:/var/www# wget http://www.usvn.info/download/get/1.0.1+Boo/tgz.dl

Descompacte ele neste mesmo diretório:

root@svn:/var/www# tar -zxvf tgz.dl

Ele irá criar um diretório com o nome usvn-1.0 vamos renomeá-lo para facilitar a o acesso via URL:

root@svn:/var/www# mv -f usvn-1.0 usvn

Crie o diretório /var/www/usvn/files/, ele será necessário mais tarde.

root@svn:/var/www# mkdir /var/www/usvn/files

4. Vamos agora configurar o Apache para permitir o acesso a interface Web do USVN:

root@svn:/var/www# cd /etc/apache2/sites-available/

Edite o arquivo default deste diretório e inclua este conteúdo em negrito abaixo:

<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

# Configuracao de acesso ao USVN
Alias /usvn /var/www/usvn/public
<Directory “/var/www/usvn/public”>
Options +SymLinksIfOwnerMatch
AllowOverride All
Order allow,deny
Allow from all
</Directory>
# Fim da configuracao do USVN

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory “/usr/lib/cgi-bin”>
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

Alias /doc/ “/usr/share/doc/”
<Directory “/usr/share/doc/”>
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

</VirtualHost>

Modifique as permissões do diretório de instalação do USVN:

root@svn:~# chown -R www-data.www-data /var/www/usvn

root@svn:~# chmod -R 770  /var/www/usvn

Reinicie o serviço do Apache para que as novas configurações tenham efeito.

root@svn:~# /etc/init.d/apache2 restart


5. Feito isso vamos acessar a interface gráfica pelo Browser.

A URL para o primeiro acesso deve ser mais ou menos assim: http://<nome_ou_ip_do_servidor>/usvn/install.php/

Se estiver vendo esta tela abaixo clique em Next: (Caso apareça alguma tela de erro, refaça os passos anteriores.)

Tela inicial de Configuracao do USVN.

Estando tudo OK, vamos mais uma vez clicar em Next, caso apareça alguma dependência não satisfeita, verifique se executou todos os comandos do Tutorial.

Clique novamente em Next.

Tela de verificacao de dependencias

Irá aparecer agora as opções de Linguagem e Timezone, selecione de acordo com sua preferência. Clique em Next.

Tela de selecao de linguagem e Timezone.

Aparecerá a tela de acordo de uso de software, clique novamente em Next.

Tela de acordo de uso de software

Será apresentada uma tela de configuração do USVN, estamos próximos da finalização. Edite caso deseje e clique em Next.

Tela de configuracao do USVN.

Será apresentada a tela de configuração do MySQL, em “Tipo de Banco” selecione PDO MySQL.

Tela de configuracao do Banco de Dados.

Porém antes de avançar, iremos instalar os pacotes do MySQL:

Abra um terminal e digite o comando abaixo:

root@svn:~# apt-get install mysql-server mysql-client

Na tela de ajustes do MySQL será solicitado a senha do usuário “root”, não perca esta senha!!

De volta a tela de configuração do Banco, coloque a senha que foi escolhida na instalação do MySQL server.

Selecione “Criar banco de dados” isto permitirá que o script de instalação crie o banco necessário para o funcionamento do USVN.

Clique em Next.

Na tela que aparecer será solicitada a senha do usuário administrador do USVN, anote esta senha!!!

Depois de digitar a senha clique em Next.

Tela de escolha da senha de Administrador.

Na próxima tela lhe será perguntado se deseja ser notificado ou não sobre atualizações do USVN, selecione uma das opções.

Tela de configuracao de atualizacoes do USVN

Tenha atenção nesta parte. Você deve selecionar e copiar o conteúdo apresentado na tela, pois vamos inserí-lo na configuração do Apache para possibilitar o funcionamento do Subversion via HTTP.

Tela de configuração do Apache.

Abra novamente um terminal.

Edite novamente o arquivo de configuração do Apache e insira o conteúdo copiado da tela.

root@svn:~# vim /etc/apache2/sites-available/default

O arquivo deve ficar assim:

# Configuracao de acesso ao USVN
Alias /usvn /var/www/usvn/public
<Directory “/var/www/usvn/public”>
Options +SymLinksIfOwnerMatch
AllowOverride All
Order allow,deny
Allow from all
</Directory>
# Fim da configuracao do USVN

# Configuracao de acesso ao Subversion
<Location /usvn/svn/>
ErrorDocument 404 default
DAV svn
Require valid-user
SVNParentPath /var/www/usvn/files/svn
SVNListParentPath off
AuthType Basic
AuthName “USVN”
AuthUserFile /var/www/usvn/files/htpasswd
AuthzSVNAccessFile /var/www/usvn/files/authz
</Location>
# Fim da configuracao do Subversion

Clique em “Conectar ao USVN”.

OK, feito isso basta reiniciar o Apache para que todos os últimos ajustes tenham efeito.

root@svn:~# /etc/init.d/apache2 restart

Esta é a primeira tela do USVN após sua configuração:

Utilize o usuário admin e senha que escolheu anteriormente.

Tela inicial de utilizacao do USVN

A utilização do USVN torna simples a instalação do Subversion e transparente a criação de Repositórios e Permissões de acesso.

Espero que esta informação seja útil para vocês.

Até mais.

Fontes consultadas:

http://www.usvn.info

http://www.howtoforge.com/debian_subversion_websvn

Sobre pmjunior

Profissão: Analista de Infraestrutura Senior Cargo/Função: Arquiteto de Soluções em Infraestrutura. Certificações: RHCI, RHCSA, RHCE, RHCVA. Habilidades: Gerência de Redes, Conf. de Roteadores e Switchs, integração de Sistemas Open-source entre outros. Descrição: Dedicado atualmente a área de Gerencimento de Projetos em Infraestrutura de TI e Modelagem de Processos. Profissional Certificado em Red Hat Enterprise Linux, Engineer e Virtualization Administrator. Sólida experiência na área de redes corporativas, com atuação em Empresas de grande porte há mais de 10 anos. Capacidade de liderança, habilidade de negociação e visão estratégica. Experiência na área de Gestão como assessor, especialista em equipamentos CISCO e integração de sistemas operacionais Microsoft Windowse Linux. Atuação como palestrante em Universidades sobre Virtualização, Consolidação de Servidores e Projetos Open-source com maior foco no Projeto Fedora. Ver todos os artigos de pmjunior

12 respostas para “Instalando Subversion com interface Web de forma rápida e Prática.

  • Paulo

    Caríssimo amigo.
    Tenho um Debian 6 e segui seu tutorial. Eu só tenho a lhe agradecer, pois com certeza é o melhor tutô em português(e em inglês também) que já vi na net, muito bom mesmo.

    Devo fazer algumas observações para que eu tente solucionar algumas dúvidas minhas, vamos lá.

    Onde você diz:
    root@svn:~# chmod -R 770 www-data.www-data /var/www/usvn <– Nesta linha aqui não deve ter www-data.www-data porque este comando não irá funcionar, pois é um chmod.

    Apesar de eu ter instalado em configurado tanto em um php compilado, quanto em um instalado via apt-get, eu não estou conseguindo conectar via Tortoise mesmo seguindo o seu tutorial do Tortoise.

    Antes de entrar no seu blog, fui neste blog e consegui configurar o subversion e também consigo acessá-lo via Tortoise e também consigo ver os meus arquivos na web.

    http://wiki.freaks-unidos.net/Apache2%20SSL%20and%20Subversion%20in%20Debian

    Instalei o usvn de acordo com o que você descreveu acima e funcionou perfeito, mas com Tortoise não consigo conectar no endereço que o usvn me informa de meu projeto. O erro está logo abaixo.

    Command: Checkout from https://192.168.1.165/usvn/svn/sistema/trunk, revision HEAD, Fully recursive, Externals included
    Error: OPTIONS of 'https://192.168.1.165/usvn/svn/sistema/trunk&#039;: 200 OK (https://192.168.1.165)
    Finished!:

    Você saberia me orientar?
    Até mais e parabéns pelo excelente tutorial imperdível.

  • Paulo Amorim

    Oi, amigo! Estou desenvolvendo um sistema em Asp.net e C# e estou querendo fazer o meu controle de versões com o Subversion. Você poderia me tirar uma dúvida, por favor?!! O Apache vai me possibilitar acessar e manipular o Subversion por interface Web? Ou isso é feito por outro programa? A minha necessidade é gerenciar os usuários do Subversion (os meus desenvolvedores) em um ambiente de domínio do Windows, ou seja, os desenvolvedores são usuários do Active Directory. Obrigado!!

    • pmcj21

      Paulo,

      Sim! se você seguir o tutorial vai perceber que existe uma interface web para administração.

      Em relação ao Apache, você terá que configurá-lo para acessar o AD, caso precise desta informação basta entrar em contato comigo no email: pmjunior@fedoraproject.org

      Abraços.

  • Luciano

    Prezado, meus parabéns!

    Segui este tutorial e tudo funcionou perfeitamente.

    Apenas precisei fazer um pequeno ajuste, num erro de digitação:

    – No comando chown-R www-data.www-data /var/www/usvn o leitor deve ficar atento para a existência de um “espaço” entre o chown e o -R. Se você copia e cola diretamente na linha de comando ele apresentará erro, pois não reconhecerá o comando.

    O restante está perfeito.

    Mais uma vez, meus parabéns.

    Luciano.

  • André Stuani

    Cara, você é …oda, perfeito o tutorial, já tinha pego vários outros mas, este que escreveu está excelente.
    Parabéns,

  • Maycon

    Olá amigo!!!Gostaria de parabenizar pelo tutorial muito show!!! Será que vc tem esse mesmo tutorial para Centos, pois no meu trabalho os servidores são Centos! Estou encontrado algumas dificuldades para adaptar esse tutorial do Debian 6.0 no Centos 6.3, desde já Grato!

  • Samuel Placido da Costa

    Amigo estou tendo um problema com o subversiom 1.7 e o usv seguindo o tutorial vai td ok porem quando dou commit da um erro 500 internal sever error sera q poderia me ajudar?

  • Josias

    Bom post, mas estou tendo problema para configurar, ja no browser quando vou configurar aparece uma mensagem e eu não consigo ir para o próximo passo, alguem pode me ajudar?…segue mensagem de erro:

    AllowOverride seems to be missing.
    Please check your configuration settings and come back.
    http://svn/usvn/login/

    josiasnm@hotmail.com

  • Ricardo

    pmcj21,
    Segui o tutorial, funcionou certinho, o problema é que não consigo fazer commit no netbeans, será que poderia me ajudar?
    Gtalk: riiiiiiiick@gmail.com

  • Tiago

    Muito bom Tutorial,

    Segui o Tutorial e estou com problemas na hora do commit do svn da erro 500 quando desativo(comento) o Alias(do usvn) ele funciona. tem alguma dica?

    Um Abraço

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: