Freie Universität Berlin,
Fachbereich Mathematik und
Informatik
Institut für Informatik,
AG Informatik in Bildung
und Gesellschaft
Lehrveranstaltung: Partizipation im Internet im WS02/03, Thema CVS
Hier am Fachbereich gibt es einen CVS-Server auf dem Rechner
projects. Hier können
Fachbereichsangehörige ein eigenes Repository bekommen. Das Repository
pi für die Lehrveranstaltung "Partizipation im Internet" liegt also
im Verzeichnis /cvsroot/pi
.
Ist so ein Verzeichnis vom Rechnerbetrieb eingerichtet worden besteht wegen unterschiedlicher Userverwaltung nur eine Einloggmöglichkeit für den Projektleiter, der dann die weiteren Konfigurationen selbst vornimmt. Jedes Projekt erhält ferner einen user-account, der für die normalen Arbeitsvorgänge benutzt wird.
Alle zur Konfiguration benötigten Dateien befinden sich auf dem Rechner
projects im
Unterverzeichnis CVSROOT
zum eignen Projekt, also im
Beispiel /cvsroot/pi/cvsroot
. Um als user
die Einstellungen dort
vorzunehmen, muss man sich mit ssh
auf dem Rechner einloggen und das
Verzeichnis erreichen (eigene Eingaben sind fettgedruckt):
user@rechner:~$ ssh user@projects.mi.fu-berlin.de
user@projects's password: institutspasswort
user@lee:~$ cd /cvsroot/pi/CVSROOT
Damit jeder Teilnehmer über die pserver-Methode Zugriff erhält, muss für jeden ein Name und ein Passwort vergeben werden. Dabei sollte nicht das Institutspasswort verwendet werden, da die Passwörter bei der pserver-Methode im Klartext über das Netzgeschickt werden.
Um die Liste zu generieren, wird die Datei passwd angelegt und im vi-Editor mit Daten gefüllt:
user@lee:/cvsroot/pi/CVSROOT$ touch passwd
user@lee:/cvsroot/pi/CVSROOT$ vi passwd
Im vi kann mit dem Buchstaben i
Text eingefügt, mit
a
angehangen und mit
x
gelöscht werden. Den jeweiligen Modus beendet man mit der
Escape-Taste (Esc).
Für jeden Teilnehmer erstellt man dann eine Zeile in der Datei der folgenden Form:
name:password-krypt:project-user-account
Der name
kann frei gewählt werden (8
Buchstaben). Für das vergebene Passwort wird nur der "Krypt"
gespeichert, der für das Klartextpasswort erzeugt werden muss.
Soll sich jemand mit dem Namen "musterma" und dem Passwort "meinpass" einloggen können, wird der Krypt folgendermaßen auf der Kommandozeile erzeugt:
user@lee:/cvsroot/pi/CVSROOT$ openssl passwd
Password: meinpass
1zmWvUZw268Mc
Der Rest ist nur Copy&Paste des Namens, des Krypts und des Projekt-Users im Editor:
musterma:1zmWvUZw268Mc:cvspi
Der vi wird beendet, indem man wieder mit der Escape-Taste in den Kommando-Modus
wechselt und :q
zum verlassen oder :wq
zum
schreiben und verlassen eingegeben wird.
Schreibenden Zugriff auf das Archiv für Projektteilnehmer besteht einzig in der pserver-Methode. Vom Projektleiter haben sie einen Zugangsnamen und ein Passwort bekommen.
Um sich zum Zugriff einzuloggen, geben sie ein:
user@mybox:/home/user$ cvs -d :pserver:name@projects.mi.fu-berlin.de:/cvsroot/pi login
Password: meinpass
Zum Auschecken dann das übliche Kommando checkout (abgekürzt co) und dem Modulnamen (hier "comets"):
user@mybox:/home/user$ cvs -d :pserver:name@projects.mi.fu-berlin.de:/cvsroot/pi co comets
Danach wird ein Verzeichnis mit dem Modulnamen und alle
Dateien des Moduls angelegt. Die
Unterverzeichnisse mit dem Namen CVS
enthalten
Steuerinformation, die nicht verändert werden sollten. Die Dateien des
Moduls sollen aber gerade verändert werden, allerdings nicht in der
Formatierung, sonst ändert sich nämliche JEDE Zeile der Datei, wodurch
man die Datei später höchstwahrscheinlich per Handarbeit zusammenführen
muss. Wenn die EIngaben als Ganzes einen Sinn ergeben (also zum
Beispiel kompilierbar sind), kann man die Dateien wieder dem
Repository zurückliefern. Zum Einchecken an das Repository eingeben:
user@mybox:/home/user$ cvs -d :pserver:name@projects.mi.fu-berlin.de:/cvsroot/pi ci comets
Wenn in der Zwischenzeit bereits andere eingecheckt haben, muss man diese Änderungen erst seiner lokalen Arbeitskopie mitteilen, indem man ein update ausführt und danach dann den Checkin wiederholt.
user@mybox:/home/user$ cvs -d :pserver:name@projects.mi.fu-berlin.de:/cvsroot/pi update comets
Beim letzten Mal wurde ein einfacher CVS-Zugang realisert, der darauf basiert, sich auf dem Rechner einzuloggen, auf dem das Repository liegt (mehr dazu unter Getting Startet). Voraussetzung ist daher eine Zugangskennung zum Rechnernetz.
Der Zugang über ein Client-Programm funktioniert nur, wenn das
CVS-Serverprogramm nicht nur installiert, sondern auch gestartet ist
und ständig den dazugehörigen Port (2401) nach Anfragen abhört.
Um den Port abzuhören wird die Datei /etc/services
um den
Zeile cvspserver 2401
ergänzt. Um den CVS-Server beim
Starten des Rechners gleich mit zu starten, erfolgt ein Eintrag in der
Konfigurationsdatei des Internet-Daemons /etc/inetd.conf
.
Das Repository wird mit der Einstellung der Umgebungsvariablen
CVSROOT
auf das Verzeichnis /usr/local/cvs
auf dem eigenen Rechner bekanntgegeben. Alle weiteren
Konfigurationsdateien befinden sich im projektübergreifenden
Verzeichnis /usr/local/cvs/CVSROOT
. Veränderungen in den
einzelnen Konfigurationsdateien werden durchgeführt, indem das
Verzeichnis wie ein anderes Projektmodul auch ausgecheckt wird:
cvs co CVSROOT
Nun sind alle Konfigurationsdateien als eigene Arbeitskopie vorhanden und können editiert und anschließend wieder eingecheckt werden:
cvs ci CVSROOT
Eine sinnvolle Änderung in einem Archiv, das eine Website enthält,
besteht darin, Binärdateien bekannt zu machen. Bei Websites sind dies
vor allem Grafikdateien mit der Endung .gif
und
.jpg
, was in der Datei cvswrappers global eingestellt
werden kann.
Aufgabe: Führe die obigen Arbeitsschritte aus. Editiere die
Datei cvswrappers
so, dass Grafikdateien als Binärdateien
behandelt werden.
Bei Konflikten sollen die betroffenen User automatisch vom System
per E-Mail benachrichtigt werden. Damit die Dateien nicht an
user@Clientrechner
verschickt werden,
sondern an eine gültige E-Mail-Adresse, verändern wir die
Konfigurationsdatei users
Aufgabe: Füge Deine E-Mail-Adresse in die
Konfigurationsdatei users
ein!
Die Hauptänderungen werden in Umgebungsvariablen gespeichert (oder
direkt im grafischen Clientprogramm, wie WinCVS, eingestellt).
Der Pfad zum Repository wird in der Variablen CVSROOT
bekanntgegeben und enthält auf dem lokalen Rechner lediglich den Pfad,
während auf einem anderen Rechner die externe Zugangsart spezifziert wird:
export
CVSROOT=:ext:user@rechner:pfad
...in der bash bzw. bei der c-shell...
setenv
CVSROOT :ext:user@rechner:pfad
Bei dieser Methode wird der Zugang über eine Remote-Shell (also das
Einloggen auf dem entfernten Rechner) hergestellt. Aus
Sicherheitsgründen (damit Passwörter nicht im Klartext übertragen
werden) kommt dabei nicht das rsh
, sondern das
ssh
-Prgramm zum Einsatz, was eingestellt werden muss:
export CVS_RSH=ssh
...in der bash bzw. bei der c-shell...
setenv CVS_RSH ssh
Aufgabe: Führe die obigen Arbeitsschritte aus und versuche,
mit Deiner Kennung das Repository auf dem Serverrechner
tuxedo
anzusprechen und die Dateien mit WinCVS
auszuchecken.
Durch die Schlüsselworte $Revision: 1.5 $
und
$Date: 2001/12/18 07:35:57 $
kann die Version und das letzte Änderungsdatum in
die Datei eingefügt werden.
Aufgabe: Füge beide Schlüsselworte in die von Dir bearbeitete HTML-Seite ein!
$Revision: 1.5 $ vom $Date: 2001/12/18 07:35:57 $ Marco.Rademacher@inf.fu-berlin.de