![Shell In A Box](/f/303ad9c2d4eeae2c71abc08c0823b707.png?width=100&height=100)
Se o seu trabalho requer o manuseio de documentos, páginas da web e outros tipos de arquivos que são atualizados regularmente, você pode usar um mecanismo de controle de versão, se ainda não estiver fazendo isso.
Entre outras coisas, isso permite que você (e também um grupo de colaboradores em potencial) rastreie as alterações feitas em um determinado arquivo, e permite que você volte para uma versão anterior se for encontrado um problema ou quando uma atualização não tiver produzido o esperado resultado.
No ecossistema de software livre, o sistema de controle de versão mais usado é chamado Apache Subversion (ou SVN como diminutivo). Com a ajuda de mod_dav_svn (Módulo do Apache para Subversion), você pode acessar um repositório Subversion usando HTTP e um servidor web.
Dito isso, vamos arregaçar as mangas e instalar essas ferramentas em um RHEL / CentOS 7, Fedora 22-24, Debian 8/7 e Ubuntu 16.04-15.04 servidor. Para nossos testes, usaremos um CentOS 7 servidor com IP 192.168.0.100.
Do lado do cliente (a
Windows 7 máquina), iremos instalar e usar TortoiseSVN (que é baseado no Apache Subversion) como uma interface para o SVN.Servidor - CentOS 7Endereço de IP - 192.168.0.100Cliente - Windows 7
Como acabamos de mencionar, contaremos com o Apache para acessar o repositório SVN usando uma interface da web. Se ainda não estiver instalado, certifique-se de adicioná-lo à lista de pacotes conforme mostrado abaixo:
No CentOS / RHEL / Fedora # yum update && yum install mod_dav_svn subversion httpd -y No Debian / Ubuntu # apt-get update && apt-get install libapache2-svn subversion apache2 -y
Durante a instalação em CentOS 7, um arquivo de configuração do Apache para SVN será criado como /etc/httpd/conf.modules.d/10-subversion.conf. Abra o arquivo e adicione o seguinte bloco de configuração:
/etc/httpd/conf.modules.d/10-subversion.conf
DAV svn SVNParentPath / websrv / svn AuthType Basic AuthName "Bem-vindo ao SVN" AuthUserFile / etc / httpd / subversion-auth Requer usuário válido.
Observação: Em Debian / Ubuntu você precisa adicionar as linhas abaixo para /etc/apache2/mods-enabled/dav_svn.conf
Arquivo.
/etc/apache2/mods-enabled/dav_svn.conf
DAV svn SVNParentPath / websrv / svn AuthType Basic AuthName "Bem-vindo ao SVN" AuthUserFile / etc / apache2 / subversion-auth Requer usuário válido.
Em Debian / Ubuntu, você precisa habilitar dav_svn Apache módulo:
# a2enmod dav_svn.
Alguns esclarecimentos:
# mkdir -p / websrv / svn.
É importante notar que este diretório NÃO deve estar localizado dentro ou sobrepor-se ao DocumentRoot de um host virtual atualmente sendo servido pelo Apache. Isso é um empecilho!
Agora vamos usar htpasswd para criar uma senha para contas que terão permissão para acessar o SVN. Apenas para o primeiro usuário, precisaremos do -c
opção.
Contas permitidas e senhas criptografadas com bcrypt (-B
) será armazenado em /etc/httpd/subversion-auth em pares de valores-chave. Observe que, pelos padrões atuais, a criptografia MD5 ou SHA padrão usada pelo htpasswd é considerada insegura.
No CentOS / RHEL / Fedora # htpasswd -cB / etc / httpd / subversion-auth tecmint No Debian / Ubuntu # htpasswd -cB / etc / apache2 / subversion-auth tecmint.
Não se esqueça de definir a propriedade e as permissões corretas para o arquivo de autenticação:
No CentOS / RHEL / Fedora # chgrp apache / etc / httpd / subversion-auth. # chmod 660 / etc / httpd / subversion-auth No Debian / Ubuntu # chgrp www-data / etc / apache2 / subversion-auth. # chmod 660 / etc / apache2 / subversion-auth.
Como você acessará o SVN por meio de uma interface da web, será necessário permitir HTTP (e opcionalmente HTTPS) tráfego através do seu firewall.
No CentOS / RHEL / Fedora # firewall-cmd --add-service = http --permanent. # firewall-cmd --add-service = https --permanent. # firewall-cmd --reload
Recarregando a configuração do firewall com --recarregar
, as configurações permanentes entram em vigor imediatamente.
Crie um repositório SVN inicial chamado tecmint:
# svnadmin create / websrv / svn / tecmint.
Altere o proprietário e o proprietário do grupo para apache recursivamente:
No CentOS / RHEL / Fedora # chown -R apache: apache / websrv / svn / tecmint No Debian / Ubuntu # chown -R www-data: www-data / websrv / svn / tecmint.
Finalmente, você precisará alterar o contexto de segurança do /websrv/svn/tecmint
(observe que você terá que repetir esta etapa se decidir criar outros repositórios posteriormente):
No CentOS / RHEL / Fedora# chcon -R -t httpd_sys_content_t / websrv / svn / tecmint / # chcon -R -t httpd_sys_rw_content_t / websrv / svn / tecmint /
Observação: Os dois últimos comandos podem não se aplicar se você estiver instalando o SVN em um VPS com o SELinux desativado.
Leitura sugerida:Aprenda a desabilitar o SELinux temporária ou permanentemente no Linux
Reiniciar Apache e verifique se o repositório está disponível.
No CentOS / RHEL / Fedora # systemctl restart httpd No Debian / Ubuntu # systemctl restart apache2.
Em seguida, inicie um navegador da web e aponte-o para http://192.168.0.100/svn/tecmint
. Depois de inserir as credenciais do usuário válido que criamos em Passo 1, a saída deve ser semelhante a:
Neste ponto, não adicionamos nenhum código ao nosso repositório. Mas faremos isso em um minuto.
Como mencionamos na introdução, TortoiseSVN é uma interface amigável para o Apache Subversion. É um Software Livre licenciado sob a GPL e pode ser baixado de https://tortoisesvn.net/downloads.html.
Escolha a arquitetura (32 ou 64 bits) que corresponde à sua máquina e instale o programa antes de continuar.
Nesta etapa, usaremos uma pasta chamada aplicativo web
dentro Documentos. Esta pasta contém um arquivo HTML e duas pastas chamadas scripts e estilos com um arquivo Javascript e um CSS (script.js e styles.css, respectivamente) que queremos adicionar ao controle de versão.
Clique com o botão direito aplicativo web e escolha SVN Checkout. Isso criará uma cópia local do repositório remoto (que está vazio no momento) e inicializará a pasta para controle de versão:
Na URL do repositório, digite http://192.168.0.100/svn/tecmint
e certifique-se de que o diretório de checkout local permanece o mesmo, depois clique OK:
Digite o nome de usuário e a senha (consulte Passo 2) e clique OK:
Você será questionado se deseja fazer check-out em um diretório não vazio. confirme para prosseguir com a finalização da compra. Depois de concluído, uma marca de seleção verde aparecerá ao lado do nome da pasta:
Clique com o botão direito em aplicativo web
novamente e escolha Comprometer-se desta vez. Em seguida, escreva um comentário descritivo para posteriormente identificar este commit e verifique os arquivos e pastas que você deseja implantar no repositório. Por fim, clique OK:
Dependendo do tamanho dos arquivos, o commit não deve demorar mais de um minuto. Quando estiver concluído, você verá que agora estamos revisão 1, que corresponde à versão e aos arquivos listados na interface da web:
Se houver várias pessoas trabalhando nos mesmos arquivos, você vai querer Atualizar sua cópia local para ter a versão mais recente disponível para trabalhar. Você pode fazer isso clicando com o botão direito em aplicativo web
e escolhendo Atualizar no menu de contexto.
Parabéns! Você configurou com sucesso um servidor SVN e confirmou / atualizou um projeto simples sob controle de versão.
Neste artigo, explicamos como instalar e configurar um Apache Subversion servidor de repositório em um CentOS 7 servidor, e como enviar alterações para esse repositório usando TortoiseSVN.
Observe que há muito mais para SVN e TortoiseSVN do que o que podemos cobrir adequadamente aqui (especialmente como retornar às revisões anteriores), então você pode querer consultar os documentos oficiais (SVN e TortoiseSVN) para obter mais informações e casos de configuração.
Como sempre, não hesite em nos avisar se tiver alguma dúvida. Sinta-se à vontade para usar o formulário de comentários abaixo para entrar em contato conosco a qualquer momento.