Puo essere necessario per svariati motivi, migrare un repository CVS da un server ad un altro. L'operazione comporta sostanzialmente, la creazione di un file archivio della directory del CVS, e la scompattazione sul nuovo server dopo averlo configurato.
PREPARAZIONE NUOVO SERVER
Sul nuovo server che ospiterà il repository, sarà necessario ricreare gli stessi utenti e gruppi presenti in quello di partenza:
root@enigma:/# useradd cvs
root@enigma:/home# groupadd cvs
Quindi sarà necessario configurare il file inetd.conf
al fine di impostare il server in ascolto, quindi riavviare il superdemone inetd:
root@enigma:/# grep cvs /etc/inetd.conf
cvspserver stream tcp nowait root /usr/sbin/tcpd /usr/bin/cvs --allow-root=/home/cvs pserver
root@enigma:/home# /etc/rc.d/rc.inetd restart
Starting Internet super-server daemon: /usr/sbin/inetd
Oppure nel caso si utilizzi xinetd:
[root@vagante xinetd.d]# cat cvspersver
{
port = 2401
socket_type = stream
protocol = tcp
user = root
wait = no
passenv = PATH
server = /usr/bin/cvs
server_args = -f --allow-root=/home/cvs/ pserver
}
[root@vagante etc]# /etc/rc.d/init.d/xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
E' possibile verifcare se la configurazione è corretta, controllando che la porta 2401 sia in stato listen:
root@enigma:/home/cvs# netstat -nat | grep 2401
tcp 0 0 0.0.0.0:2401 0.0.0.0:* LISTEN
Infine in caso di utilizzo, è possibile settare le policy di accesso tramite i file hosts.deny
e hosts.allow
:
root@enigma:/home# grep cvs /etc/hosts.allow
cvs : 192.168.0.
COPIA E SCOMPATTAZIONE REPOSITORY
Una volta terminata la configurazione, è necessario creare il tar del contenuto del repository:
root@Joker:/disco2# tar cvfz cvsjoker.gz cvs/
cvs/
cvs/CVSROOT/
cvs/CVSROOT/Emptydir/
cvs/CVSROOT/loginfo
cvs/CVSROOT/loginfo,v
cvs/CVSROOT/rcsinfo
cvs/CVSROOT/rcsinfo,v
cvs/CVSROOT/editinfo
cvs/CVSROOT/editinfo,v
cvs/CVSROOT/verifymsg
cvs/CVSROOT/verifymsg,v
cvs/CVSROOT/commitinfo
cvs/CVSROOT/commitinfo,v
...
Quindi è possibile trasferirlo nuovo server:
root@Joker:/disco2# scp cvsjoker.gz enigma:/home
root@enigma's password: **********
cvsjoker.gz 100% |**************************************************************************************************************************| 15090 KB 00:35
Infine scompattare il file tar:
root@enigma:/home# tar xvfz cvsjoker.gz
cvs/
cvs/CVSROOT/
cvs/CVSROOT/Emptydir/
cvs/CVSROOT/loginfo
cvs/CVSROOT/loginfo,v
cvs/CVSROOT/rcsinfo
cvs/CVSROOT/rcsinfo,v
cvs/CVSROOT/editinfo
cvs/CVSROOT/editinfo,v
cvs/CVSROOT/verifymsg
cvs/CVSROOT/verifymsg,v
cvs/CVSROOT/commitinfo
...
A questo punto il repository è pronto per l'uso, non è necessario reinizializzare il repository in quanto i dati di configurazione del repository sono già presenti all'interno della directory CVSROOT
. L'ultimo passo da compiere è solamente l'aggiornamento delle stringhe di connessione dei client al nuovo indirizzo.