Servidor CVS: Instalando, configurando e gerenciando no Linux

Neste artigo procurarei mostrar de maneira prática e eficiente como instalar, configurar e gerenciar um servidor CVS no Linux. Nele serão abordados os seguintes temas: introdução; instalando, configurando e administrando o servidor CVS no Linux; CVSROOT; clientes CVS; bibliografia.

[ Hits: 104.263 ]

Por: Cristian Alexandre Castaldi em 04/09/2008


Instalando, configurando e administrando o servidor CVS no Linux



Clique no link cvs-1.11.23.tar.gz para baixar o pacote que contém o servidor CVS. A versão estável no momento em que escrevo este artigo é a cvs-1.11.23 e futuramente poderá ser outra, então fique esperto com as atualizações caso for instalar de novo ou em outras máquinas.

Descompacte o arquivo cvs-1.11.23.tar.gz:

# tar -zxvf cvs-1.11.23.tar.gz

Acesse o diretório e siga os passos para instalar o servidor CVS.

# cd cvs-1.11.23/
# ./configure
# make
# make install


Criando, iniciando e encerrando o repositório

Crie o diretório cvs no diretório /home:

# mkdir cvs

Para especificar o diretório do repositório faça:

# cvs -d /home/cvs init

Com esse comando foi especificado o diretório cvs como nosso repositório e dentro dele foi criado o diretório /CVSROOT, este diretório possui vários arquivos de controle e configuração do CVS.

# cd /home/cvs/CVSROOT/
# ls -l

checkoutlist
checkoutlist,v
commitinfo
commitinfo,v
config
config,v
cvswrappers
cvswrappers,v
editinfo
editinfo,v
Emptydir
history
loginfo
loginfo,v
modules
modules,v
notify
notify,v
rcsinfo
rcsinfo,v
taginfo
taginfo,v
val-tags
verifymsg
verifymsg,v

Uma vez especificado o diretório, devemos tomar as seguintes precauções para controlar o acesso ao nosso repositório. Crie um novo grupo chamado cvs. Todos os usuários que devem acessar o CVS devem estar contidos nesse grupo.

# groupadd cvs

Adicione os usuários que farão parte do grupo cvs separando-os com vírgula. Lembre-se que a síntese do arquivo /etc/group é a seguinte: GRUPO:PASSWORD:GID:USUÁRIOS

# vi /etc/group

cvs:x:501:cristian,root,cvsadmin,tux

Agora acesse o diretório /home e mude o grupo do diretório /cvs para cvs.

# chgrp -R cvs cvs/

Aplique as permissões para usuários e grupo de modo que somente os mesmos e mais ninguém tenha acesso e de modo que somente o dono do diretório, o dono do arquivo ou o root possam renomear ou apagar arquivos no diretório cvs.

# chmod g+srwx cvs/
drwxrws---  5 root     cvs       4096 Ago 29 09:22 cvs

No arquivo /etc/inetd.conf insira a seguinte linha:

# vi /etc/inetd.conf

cvspserver   stream   tcp   nowait   root   /usr/local/bin/cvs   cvs -f  --allow-root=/usr/local/repositorio   pserver

Verifique se as seguintes linhas no arquivo /etc/services não estão comentadas.

# cat /etc/services | grep cvspserver

cvspserver      2401/tcp  # CVS client/server operations
cvspserver      2401/udp

Caso a distribuição que você esteja usando não use o inetd, mas sim o xinetd faça:

No arquivo /etc/xinetd.conf edite:

# vi /etc/xinetd.conf

#
# Configuração do Xinet
#


defaults
{
        instances       = 10
        log_type        = SYSLOG authpriv
        log_on_success  = HOST PID
        log_on_failure  = HOST
        cps             = 25 30
}
includedir /etc/xinetd.d

As configurações na sessão default serão aplicadas, globalmente, em todos os serviços contidos no diretório /etc/xinetd.d. Por isso para saber de uma maneira bem resumida e prática, sugiro que dêem uma lida no artigo de Fréderic Raynal em:
Agora no diretório /etc/xinetd.d devemos criar o arquivo de configuração cvspserver.

# vi /etc/xinetd.d/cvspserver

service cvspserver
{
        port = 2401
        socket_type = stream
        protocol = tcp
        wait = no
        user = root
        passenv =
        server = /usr/bin/cvs
        server_args = --allow-root=/home/cvs -f pserver
        env = HOME=/home/cvs
        only_from = 192.168.223.0/24
}

Após a configuração do arquivo /etc/xinetd.d/cvspserver, dê um restart no xinetd para carregar as novas configurações.

# service xinetd restart

Ou:

# cd /etc/init.d
# ./xinetd restart


Página anterior     Próxima página

Páginas do artigo
   1. 1. Introdução
   2. Instalando, configurando e administrando o servidor CVS no Linux
   3. Login e logout no servidor pserver
   4. Importando um novo projeto
   5. Baixando, sincronizando, editando e enviando arquivos para o servidor CVS
   6. Adicionando arquivos e diretórios no módulo do servidor CVS
   7. Removendo arquivos e diretórios no módulo do servidor CVS
   8. Movendo arquivos e diretórios
   9. Diferenças entre versões de arquivos, status e histórico
   10. Removendo um módulo do servidor CVS
   11. CVSROOT
   12. Clientes CVS
   13. Bibliografia
Outros artigos deste autor

Autenticando usuários

Gerenciando quotas de disco

Sistema de boot, níveis de execução e shutdown

Trabalhando com shell e variáveis de ambiente

Lynis: Sistema de auditoria e segurança para Linux

Leitura recomendada

Transforme seu celular em controle remoto Bluetooth no Linux

Instalando Xen 3.3.0 no Debian Lenny Linux

Instalação de softwares no Debian Linux e derivados

Mplayer - Instalação e utilização

Agora SIM, aMSN com suporte a anti-aliasing

  
Comentários
[1] Comentário enviado por marcelo_10araujo em 04/09/2008 - 16:50h

massa, tah de parabéns

[2] Comentário enviado por grandmaster em 04/09/2008 - 21:58h

Hummm

Bem legal. Não conhecia.

Renato de Castro Henriques
CobiT Foundation 4.1 Certified ID: 90391725
http://www.renato.henriques.nom.br

[3] Comentário enviado por danilo.roger em 05/09/2008 - 15:10h

Muito bom mesmo! Utilizo o CVS e o SVN mas as informações sobre os produtos são sempre fragmentadas, um pedaço em um site e outro pedaço em outro lugar. Achei legal o fato de todas as informações estarem neste único artigo. Esperamos em breve um artigo seu sobre o SVN. Até mais!

[4] Comentário enviado por crildo em 05/09/2008 - 15:14h

Obrigado a todos... Comecei a ler o livro do Subversion hoje, em breve postarei o artigo de minha pesquisa sobre ele. Até mais e obrigado ao Viva o Linux pelo espaço.

[5] Comentário enviado por removido em 07/09/2008 - 14:32h

o crildo-banguela voltou......
seja bem-"revindo" cachorrão!
Grande trabalho, merece 10!
;-)

[6] Comentário enviado por removido em 09/09/2008 - 12:54h

Gostaria de saber porque quando dou o comando cvs login, depois de usar o export cvs ..., dá a mensagem de connection refuse. Será que ele não instalou o cvs server.
Instalei das duas formas a primeira foi atraves do tar e ./configure, make, etc . Na segunda foi através do apt-get. ambas não abrem as portas 2401 do computador, embora eu tenha descomentado o arquivo inet e services. Será que falta alguma coisa para abrir as portas.

[7] Comentário enviado por removido em 09/09/2008 - 14:23h

Ola a solução que eu encontrei por ai foi instalar o cvsd instalei. Mas agora a mensagem que tá dando é authorization failed :server 10.7.2.xxx rejected access to /home/cvs for user alex. Eu antes criei esse usuário (alex) no writers e dei uma senha para ele ,usando mkpasswd,e coloquei essa senha no passwd do diretorio de repositorios. Criei tambem a pasta cvs e o grupo cvs, coloquei o usuario no grupo cvs. quando uso o comando cvs -d :p:server:alex@10.7.2.xxx:/home/cvs login e ponho a senha dá esse erro.

[8] Comentário enviado por crildo em 09/09/2008 - 15:02h

Acho que o problema está na configuração do inet...

Primeiro vamos ver aonde está o comando cvs
# find / -name cvs -print
/usr/share/doc/lm_sensors-2.10.0/doc/cvs
/usr/share/cvs
/usr/bin/cvs
/root/programas/cvs
/home/cvs
/var/lock/cvs
/var/cvs
/etc/pam.d/cvs

Como verificado acima o comando está em /usr/bin/cvs

Como instalei o CVS em um Red Hat EL5 usei o xinetd para configurar o meu por aqui e aquela do inetd é uma configuração antiga do CVS quando estava instalado no Debian.

No arquivo /etc/inetd.conf insira a seguinte linha:

# vi /etc/inetd.conf

cvspserver stream tcp nowait root /usr/bin/cvs cvs -f --allow-root=/home/cvs/seu repositorio pserver

Vê se agora você consegue!!

[9] Comentário enviado por crildo em 09/09/2008 - 15:11h

Alex você verificou as permissões de acesso para o seu diretório /home/cvs??? Dê uma olhada nas permissões do grupo...

[10] Comentário enviado por removido em 10/09/2008 - 12:46h

Primeiramente o programa está em /usr/bin/cvs . Eu uso o Ubuntu 8.04.. Depois comentei a linha atual do arquivo inet.conf, e coloquei a que voce pôs aí em cima com as devidas alterações. verifique as permissões e usuários e grupo do repositorio. as permissoes são totais exceto de escrita para outros. o proprietario e o grupo é o proprio cvs. no grupo cvs eu adicionei meu login de ubuntu. Mas ainda nao consegui entra no servidor cvs.

[11] Comentário enviado por crildo em 10/09/2008 - 14:22h

Verifique no seu repositório, imagino que seja /home/cvs, no diretório CVSROOT, o arquivo config. Se você estiver utilizando a autenticação pelo arquivo /etc/passwd o parâmetro SystemAuth deve estar setado como SystemAuth=yes.

Se você criou um arquivo passwd dentro do diretório CVSROOT o parâmetro deve ser setado como SystemAuth=no

Crie o arquivo passwd no CVSROOT, caso não tenha criado
usuário:senha:usuario_local

Exemplo:
alex:brasil2bolivia0:cvs

conforme as minhas configurações e a documentação do FocaLinux pode ser isso... Testa ai e me fala o que aconteceu...

# export CVSROOT=:pserver:alex@10.7.2.XXX:/home/cvs
# cvs login

Até mais...

[12] Comentário enviado por removido em 10/09/2008 - 22:40h

Ola Cristiano . Eu fiz pelo SystemAuth=no, ai criei o arquivo passwd dentro de CVSROOT criei o usuário com a senha e no final:cvs , reiniciei tudo . Usei o export e ainda não funcionou.

[13] Comentário enviado por removido em 11/09/2008 - 09:16h

A mensagem de erro é essa:
Logging in to :pserver:alex@10.7.2.xxx:2401/home/cvs
CVS password:
cvs login: authorization failed: server 10.7.2.xxx rejected access to /home/cvs for user alex

Meu arquivo inet.conf:
cvspserver stream tcp nowait root /usr/bin/cvs cvs -f --allow-root=/home/cvs/ pserver

o grupo cvs :
$ cat /etc/group|grep cvs
cvs:x:1002:alex

o arquivo /home/cvs/CVSROOT/passwd
alex:0203senhatola:cvs


Arquivo cvsd.conf em /etc/cvs.
RootJail /var/lib/cvsd

mais embaixo:

Listen * 2401
Repos /home/cvs

a versão do cvs é a 1.12.13-9 . Instalado a partir do apt-get

ps: atraves de outro pc , usando o eclipse, a mensagem que dá é que o usuário ou senha são inválidos.

[14] Comentário enviado por crildo em 11/09/2008 - 10:06h

Alex, você está usando Firewall ou o módulo SELinux? Este módulo é utilizado para controle de acesso. No Red Hat, quando tentava acessar dava o mesmo problema de autenticação. Como não conheço ainda este módulo de segurança eu desabilitei ele e adicionei a porta TCP:2401 e a UDP:2401 no firewall e o meu usuário cristian conectou. Então sugiro que você dê uma olhada nas regras do firewall e se você está usando o módulo SELinux. Imagino que a interface gráfica que você está usando é o Gnome... Se for vá até a aba Sistema -> Administração -> Nível de Segurança e Firewall e faça as mudanças e depois teste-as... Até mais...

[15] Comentário enviado por removido em 02/11/2008 - 01:43h

Oi me esqueci de falar a solução é que a porta 2401 (49²,hehehe ) não tava aberta. para abrir ela não basta apenas editar o inet.conf como mostrado. Como uso o ubuntu o inet.conf não abre sozinho é necessário então instalar o programa openbsd-inetd ele funciona como uma espécie de servidor do inet. Ai com o programa configurado ele vai la e lê o arquivo e abre as portas descomentadas.

[16] Comentário enviado por guuholi em 23/04/2013 - 13:48h

Sou novo nesta parte de cvs, ja subi svn e utilizei, porem como faço para acessar o CVS pelo wicvs e repositorios.. tenho esta duvida por nunca utilizei.. tem algum tutorial ou algo?


Contribuir com comentário