Guia de Instalação e Configuração do Servidor Subversion no Linux

Remoção de Versões Anteriores

Para evitar conflitos de dependências, remova qualquer instalação prévia do Subversion no ambiente:

sudo yum erase -y subversion

Instalação do Pacote

Instale o servidor SVN utilizando o gerenciador de pacotes padrão:

sudo yum install -y subversion

Valide a instalação verificando a versão do binário:

svnserve --version

Estruturação do Repositório

Crie um diretório base para hospedar os projetos. O uso de variáveis de ambiente facilita a manutenção futura:

export SVN_ROOT="/srv/svn_data"
sudo mkdir -p $SVN_ROOT
sudo svnadmin create $SVN_ROOT/repositorio_principal

A estrutura de diretórios gerada pelo comando svnadmin possui os seguintes componentes:

  • db/: Armazena o banco de dados contendo todo o histórico de versionamento.
  • hooks/: Contém scripts gatilho (pré-commit, pós-commit, etc.).
  • locks/: Gerencia os arquivos de bloqueio para operações simultâneas.
  • format: Arquivo de texto indicando a versão do layout do repositório.
  • conf/: Diretório central para regras de acesso e credenciais.

Configuração de Acesso

Acesse o diretório de configuração para definir as políticas de segurança:

cd $SVN_ROOT/repositorio_principal/conf

1. Arquivo svnserve.conf

Edite o arquivo principal para habilitar a autenticação. Certifique-se de que as linhas não possuam espaços em branco no início:

[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = Repositorio Corporativo

2. Arquivo passwd

Defina os usuários e respectivas senhas no bloco apropriado:

[users]
dev_admin = P@ssw0rdSeguro2023!

3. Arquivo authz

Configure as permissões de leitura (r) e escrita (w) por grupos ou indivíduos:

[groups]
equipe_dev = dev_admin

[/]
@equipe_dev = rw

Gerenciamento do Serviço

Inicie o daemon do SVN apontando para o diretório raiz (que contém os repositórios) e defina a porta de escuta:

sudo svnserve -d -r $SVN_ROOT --listen-port 3690 --listen-host 0.0.0.0

Para interromper o serviço, lcoalize e encerre o processo em execução:

sudo pkill -x svnserve

O status da execução pode ser monitorado com o utilitário ps:

ps -ef | grep [s]vnserve

Integração com Clientes

Utilize clientes gráficos como o TortoiseSVN no ambeinte Windows. Ao realizar o checkout, forneça a URL no formato svn://ENDERECO_IP/repositorio_principal. As credenciais solicitadas corresponderão às definidas no arquivo passwd durante a configuração inicial.

Resolução de Problemas de Conexão

Falhas de conexão acompanhadas do erro svn: E000113: Unable to connect to a repository at URL indicam bloqueio de tráfego de rede. Em sistemas baseados em CentOS 7, o firewall deve ser configurado para permitir o protocolo na porta padrão:

sudo firewall-cmd --permanent --zone=public --add-port=3690/tcp
sudo firewall-cmd --reload

Tags: subversion Linux svn CentOS firewalld

Publicado em 6-11 00:06 por Thomas