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