14.1.16

Instalação do SVN

Como tinha prometido anteriormente nesse post vou descrever minha experiência na instalação do SVN no Debian Leny 4. configurei um servidor SVN usando Apache2 para que o repositório SVN esteja disponível para o cliente através do brownser usando o protocolo WebDAV / DeltaV.

O livro Controle de Versão com Subversion (por Ben Collins-Sussman, W. Brian Fitzpatrick & C. Michael Pilato) foi muito útil para mim quando eu lutava para instalar o SVN. A versão eletrônica do livro também está disponível gratuitamente.

Enfim vamos à instalação:

Primeiro eu instalei o apache2 usando o apt-get

# apt-get install apache2

Então o subversion:

# apt-get install subversion

Precisamos usar o módulo mod_dav_svn. Aqui eu tentei usar a versão pré-compilada a partir dos repositórios do Debian, caso contrário o processo fica mais complicado.

* Se você realmente precisa para compilar apache2 e subversão no seu servidor o seguinte link pode ajudá-lo http://www.linuxjournal.com/article/7655

Agora eu preciso instalar o módulo mod_dav_svn. Então eu descobri que o pacote libapache2-svn fornece mod_dav_svn plugin, então eu instalei ele.

# apt-get install libapache2-svn

Ao instalar apache2 ele instala arquivos de configuração no /etc/apache2 diretório. Os módulos são colocados dentro /usr/lib/apache2/modules.

Na instalação normal encontramos apenas httpd.conf para o gerenciamento de configuração do servidor httpd, mas no Debian nós manipulamos dois arquivos de configuração ou seja, “apache2.conf” e “httpd.conf”.

httpd.conf editado como se segue:

LoadModule dav_module / usr/lib/apache2/modules/mod_dav.so

LoadModule dav_svn_module / usr/lib/apache2/modules/mod_dav_svn.so

Reinicie o servidor HTTP para que as alterações tenha efeito:

/etc/init.d/apache2 restart

Forcing reload of web server: Apache2[Sun Jun 05 20:21:41 2010] [warn] module dav_module is already loaded, skipping

[Sun Jun 05 20:21:41 2010] [warn] module dav_svn_module is already loaded, skipping

[Sun Jun 05 20:21:42 2010] [warn] module dav_module is already loaded, skipping

[Sun Jun 05 20:21:42 2010] [warn] module dav_svn_module is already loaded, skipping

Agora vamos criar o repositório:

# svnadmin create /home/svn/repositorios

Como a minha intenção era ter mais de um repositório no svn, eu adicionei as seguintes linhas ao apache2.conf:

<Location /svn>

DAV svn

SVNPath /home/svn/repositorios

AuthType Basic

AuthName “Subversion UFC Sobral”

AuthUserFile /etc/svn-passwd

Require valid-user

</Location>

Agora só faltava criar o usuário:

# htpasswd /etc/svn-passwd adriano

O servidor pede para digitar a nova senha:

New password: **************

Não se esqueça de dar permissões de escrita no diretório do SVN:

#chmod -R 777 /home/svn

Depois de seguir todos esses passos se seu svn ainda não tiver funcionando pode ser que a porta não esteja disponível pelo firewall, para liberar a porta 3690 execute os seguintes comandos:

#Libera porta SVN

#iptables -A INPUT -p TCP –dport 3690 -j ACCEPT

#iptables -A OUTPUT -p TCP –dport 3690 -j ACCEPT

#iptables -A FORWARD -p TCP –dport 3690 -j ACCEPT

#iptables -A INPUT -p UDP –dport 3690 -j ACCEPT

#iptables -A OUTPUT -p UDP –dport 3690 -j ACCEPT

#iptables -A FORWARD -p UDP –dport 3690 -j ACCEPT

Execute seu arquivo de firewall para que as alterações tenha efeito:

# /etc/init.d/compartilhamento

Agora o svn estará disponível para acesso via browser, você basta digitar:

dominio.com.br/svn ou

ip_do_servidor/svn

A seguinte tela será apresentada:





Autenticação do usuário no SVN



Após a autenticação você terá acesso ao repositório onde suas aplicações/documentos estarão dispostos na estrutura de diretórios:



Estrutura de diretórios do SVN.



Agora que temos a confirmação que o SVN está funcionando perfeitamente, podemos fazer operações comuns tais como sincronize, update, commit, merge, essas operações podem ser feitas pelo próprio terminal do Linux, mas existe um plugin chamado subeclipse que facilita o uso dessas operações como se integra a IDE eclipse tornando mais intuitivo o conceito de Subversion. Na figura anterior tinha usado o subeclipse http://subclipse.tigris.org/ para commitar meu projeto teste.

Nenhum comentário:

Postar um comentário