CVS-Server einrichten
CVS steht für Concurrent Versions System und bezeichnet ein Versionsmanagementsystem.
Da bei Softwareprojekten in der Regel mehrere Personen gleichzeitig am Quellcode und
an der Dokumentation arbeiten können, kann es leicht zu Konflikten kommen, da oftmals von
mehreren Entwicklern Änderungen an der selben Datei vorgenommen werden.
Infolgedessen können mehrer verschiedene Versionen von einer Datei existieren,
deren Modifikationen nicht mehr eindeutig nachvollziehbar sind. Ebenfalls können
leicht Änderungen verloren gehen. Abhilfe bietet hier der Einsatz eines
Versionsmanagementsystems wie zum Beispiel CVS.
Installation
CVS kann von http://www.cvshome.org heruntergeladen werden. Das Programm steht
auch als Installations-Package in vielen GNU/Linux-Distributionen zur Verfügung, darunter
Debian, Red Hat und SuSE.
Sollten Sie Suse oder RedHat benutzen, ist CVS möglicherweise bereits bei Ihnen installiert.
Wenn es in Ihrem Pfad installiert ist, fördert die Eingabe von cvs
auf der Befehlszeile folgendes Resultat.
$> cvs
Usage: cvs [cvs-options] command [command-options-and-arguments]
where cvs-options are -q, -n, etc.
(specify --help-options for a list of options)
where command is add, admin, etc.
(specify --help-commands for a list of commands
or --help-synonyms for a list of command synonyms)
where command-options-and-arguments depend on the specific command
(specify -H followed by a command name for command-specific help)
Specify --help to receive this message
The Concurrent Versions System (CVS) is a tool for version control.
For CVS updates and additional information, see
the CVS home page at http://www.cvshome.org/ or
Pascal Molli’s CVS site at http://www.loria.fr/~molli/cvs-index.html
Installation mit Yast (Package-Manager von SuSE )
Wenn Sie die Pro-Version von Suse besitzen, dann können Sie CVS sehr einfach und schnell
über das YaST2-Kontrollcenter installieren.
1. DVD/CD in das Laufwerk einlegen und danach das YaST2-Kontrollcenter aufrufen
2. Menüpunkt "Software installieren" aufrufen
3. Nach dem Paket CVS suchen
4. Paket CVS auswählen und installieren
5. Fertig
Installation mit rpm (Package-Manager von Red Hat)
Ein rpm-Package können Sie mit folgendem Befehl installieren.
rpm -Uh cvs-version.rpm
Wenn der Befehl Erfolg hat, sehen Sie keine Ausgabe. Falls Sie Fortschrittsanzeigen
mögen, können Sie den Argumenten -v (für »verbose«, den ausführlichen Modus) hinzufügen.
Installation aus dem Sourcecode
Laden Sie die komprimierte .tar-Datei von http://www.cvshome.org herunter, dekomprimieren
Sie sie und packen Sie das Archiv aus. Wenn Sie die Quelldateien auch nach der
Kompilierung noch bewahren möchten, entpacken Sie die .tar-Datei in das Verzeichnis
/usr/src/cvs. Ansonsten können Sie das Dekomprimieren und Auspacken des Archivs in
/tmp vornehmen. Als Nächstes wechseln Sie mit cd zum cvs-Verzeichnis, lesen die
INSTALL- und die README-Datei und führen dort die Befehle aus. Anfänger sollten
automake und autoconf deaktivieren.
Repository
Das CVS-Repository beinhaltet eine komplette Kopie aller Dateien und Verzeichnisse,
die durch CVS verwaltet werden. Auf diese Dateien wird niemals direkt zugegriffen,
sondern es wird immer mit einer lokalen Kopie der gewünschten Dateien bzw.
Verzeichnisse gearbeitet. Das Repository kann entweder lokal oder auf einem
entfernten Rechner liegen.
Erstellen eines Repositorys
Ein leeres Repository wird mit dem CVS-Kommando
cvs [-d PATH] init angelegt. Dabei kann das Verzeichnis - wo das Repository
angelegt wird - mit dem Parameter -d direkt beim
Aufruf angegeben oder über die Umgebungsvariable
CVSROOT gesetzt werden.
$> cvs -d /home/cvsrepository init
oder
$> export CVSROOT=/home/cvsrepository
$> cvs init
Im dem neu erstellten Verzeichnis wird ein Unterverzeichnis mit dem Namen CVSROOT
erstellt. Dieses Verzeichnis enthält interne Verwaltungsdateien von CVS, die nicht
manuell geändert werden sollten.
Verzeichnisstruktur nach dem Ausführen von init:
/home
|
+--cvsrepository
|
+--CVSROOT
Zugriffsrechte für das Repository vergeben
Aus Sicherheitsgründen sollten Sie eine neue Gruppe mit dem Namen cvs anlegen.
$> groupadd cvs
Nach dem Anlegen der Gruppe muss noch die Gruppenzugehörigkeit und die Zugriffsrechte
des Repositorys angepasst werden.
$> cd /home/cvsrepository
$> chgrp -R cvs .
$> chmod 775 CVSROOT
Alle Benutzer mit Zugriff auf das Repository sollten auch in dieser Gruppe sein.
Zugriff für entfernte Clients ermöglichen
Nun wollen wir unseren frisch installierten CVS-Server als Server-Dienst einrichten,
um ihn über remote von einem Client aus verwenden zu können. Die üblichste
Methode ist pserver.
pserver
Um einen CVS-pserver als Deamon zum Laufen zu bekommen müssen wir unter
/etc/xinetd.d/ eine Datei mit dem Namen
cvs anlegen, so dass sie folgendermaßen aussieht
(Du musst vielleicht die Pfade anpassen!):
service cvspserver
{
socket_type = stream
protocol = tcp
user = root
wait = no
disable = no
server = /usr/bin/cvs
server_args = -f --allow-root=/home/cvs pserver
}
Hat man mehrere verschiedenen CVS-Repositorys, die über remote verwendet werden sollen,
dann sieht server_args so aus (einfach --allow-root für jedes Repository wiederholen):
server_args = -f --allow-root=/home/cvs1 --allow-root=/home/cvs2 pserver
Desweiteren muss in der Datei /etc/services der Port
für CVS eingetragen sein.
cvspserver 2401/tcp # CVS client/server operations
cvspserver 2401/udp # CVS client/server operations
Danach müssen wir xinetd neu starten.
$> rcxinetd start
CVS-Benutzer anlegen
Nachdem wir den Zugriff für entfernte Clients konfiguriert haben, können wir für die
verschiedene Benutzer einen CVS-Account anlegen.
Zugriff erlauben für vorhandene Systembenutzer
Sollen die vorhandenen Systembenutzer Zugriff auf das CVS-Repository bekommen,
müssen wir die Benutzer zu der Gruppe cvs hinzufügen.
$> usermod -G cvs benutzer
Neuen Systembenutzer mit CVS-Zugriff anlegen
Wenn wir neue Systembenutzer anlegen wollen, die auch Zugriff auf das CVS-Repository
haben sollen, müssen wir den Benutzer beim Anlegen auch zu der Gruppe cvs hinzufügen.
$> useradd -m -g Users -G cvs benutzer
Neuen Systembenutzer mit CVS-Zugriff anlegen, aber ohne Shell-Login
Aus Sicherheitsgründen wollen Sie einen neuen Systembenutzer anlegen, der nur einen Zugriff
auf das CVS-Repository bekommt, sich aber nicht über eine Shell an das System anmelden kann.
$> useradd -g Users -G cvs -s /bin/false benutzer