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