Instalação SVN no Debian
|
Instalação SVN no Debian
Como tinha prometido anteriormente nesse post vou descrever minha experiência na instalação 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 SVN 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
Informações do prompt de comando durante a Instalação SVN
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.
Em um próximo post vamos instalar o subeclipse no eclipse e mostrar como utilizá-lo em seus projetos.
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
Informações do prompt de comando durante a Instalação SVN
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:
Após a autenticação você terá acesso ao repositório onde suas aplicações/documentos estarão dispostos na estrutura de diretórios:
Agora que temos a confirmação que a instalaçã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.