É necessário executar 'cvs init'?
Não! O repositório já está inicializado e é único: está em /home/cvs/comp.Não está em /home/cvs/comp/compNNN; isto é a localização do módulo compNNN dentro do repositório /home/cvs/comp.
Como configuro o acesso ao repositório?
Só exite um repositório para compiladores e está em mega.ist.utl.pt no directório /home/cvs/comp.
A variavel CVSROOT deve ser definida de uma das seguintes formas:
- /home/cvs/comp (quando o acesso for feito do mega)
- :ext:<user>@mega.ist.utl.pt:/home/cvs/comp (quando o acesso for feito de fora do mega). Neste caso é necessário definir também a variável de ambiente CVS_RSH cujo valor deverá ser o programa que pretendem usar para efectuar a ligação ao servidor (ex.: 'export CVS_RSH=ssh' ou 'setenv CVS_RSH ssh')
Posso fazer login no mega sem usar password?
Sim. A solução consiste em usar o mecanismo de autenticação por chave pública. Este mecanismo é ainda mais seguro que o uso de password pois evita que a password seja enviada na ligação. Embora por ssh esta já seja transmitida cifrada, com o mecanismo de autenticação por chave pública a password nem sequer é transmitida. Deixamos a explicação do funcionamento deste mecanismo para outras disciplinas ;)No caso da cadeira de compiladores, o interesse de fazer login sem usar password, é o de poder executar os comandos cvs numa máquina cliente sem estar sempre a introduzir a password a cada comando. Vamos ao procedimento, supondo que nos pretendemos ligar à máquina A a partir da máquina B sem password (usando o ssh):
- Gerar um par de ficheiros <Chave pública, Chave privada>:
ssh-keygen -t rsa -b 2048
Aceitar a proposta de omissão para guardar os ficheiros (em $HOME/.ssh) e deixar a passphrase vazia. - Colocar a chave pública na máquina A dentro do ficheiro $HOME/.ssh/authorized_keys.
ex.cat id_rsa.pub >> $HOME/.ssh/authorized_keys
- Colocar a chave privada no directório $HOME/.ssh da máquina B (*);
- testar a ligação:
ssh
@A
Neste momento é suposto o login em A ser feito automaticamente.
(*) MUITA ATENÇÃO! a chave privada permite o acesso imediato à máquina A sem password! Devem ter muito cuidado com os sítios onde guardam este ficheiro. Em particular se trabalharem num computador de acesso a muitos utilizadores (caso da RNL) NUNCA deixem lá ficar a vossa chave privada, sob pena de estarem a oferecer acesso livre à vossa área a quem apanhar tal ficheiro. Mesmo quando guardado num local seguro, deve ser protegido contra acessos de terceiros:
chmod 600 id_rsa
Mais info: man ssh-keygen
Como resolvo locks no CVS?
Façam login no mega e procurem no directório
(onde NNN é o vosso número de grupo) por possiveis ficheiros de lock e removam-nos.
Qq coisa como:
Os ficheiros nestas condições podem normalmente ser removidos em segurança
desde que nenhum elemento do grupo esteja a operar com o cvs. Estas situações
tendem a ocorrer quando uma operação de cvs é abortada.
NOTA: Tenham cuidado, pois os outros ficheiros dentro de /home/cvs/comp/compNNN, são os ficheiros do vosso projecto
sobre controlo de versões.
/home/cvs/comp/compNNN
find /home/cvs/comp/compNNN -name #\*