orm@doc-tcpip.org | Erstellt: Januar 2007 - Letzte Modifikation: Oktober 2013 |
Das ist ein Pfad wie jeder andere, der dem cvs Kommando sagt, wo es das Dateisystem mit den Sourcen (oder sonstigen Daten) finden kann - das ist das Repository. Im Prinzip ein URL. Damit erfährt das System, ob das Repository lokal oder remote ist, und wie es darauf zugreifen soll (zb. SSH oder CVS password).
Eingestellt wird das alles über einen Satz an Shell-Variablen, die man einmal passend setzen muss. Beim ersten Start wird diese strukturelle Information dann in das CVS Filesystem, was im ausgecheckten Verzeichnis angelegt wird.
Ein lokales CVSROOT (oder per NFS gemounted): CVSROOT=/devel/src/cvsroot Ein remotes per SSH (CVS_RSH muss gesetzt sein): CVSROOT=devon@devel.orm.org:/devel/src/ oder CVSROOT=:ext:cvsuser@cvs1.devel.example.com:/CVS/src CVS_SERVER=/usr/bin/cvs CVS_RSH=ssh Mit einem remoten password server (man braucht user und login): CVSROOT=:pserver:devel@cvs1.devel.example.com:/CVS/src
Dazu brauche ich einen Zugang (User, Password, Key), ich muss den Server wissen und den Pfad, unter dem die Source bereit gestellt werden. Mit dieser Information kann ich den ganzen Pfad an eine beliebige Stelle auf meinem lokalen Rechner auschecken; z.B. bin ich in /home/orm/devel und möchte "super_prg" auschecken:
export CVSROOT=:ext:cvsuser@cvs1.devel.example.com:/CVS/src export CVS_RSH=ssh cvs checkout super_prg (oder cvs co super_prg, wenn es viel ist, kann ich mit -z komprimieren) CVS kopiert jetzt alle Files auf meine Platte, und zeigt mir das mit einem "U pfad/file" an. Das "U" sehe ich auch in der Zukunft, wenn das File neugeschrieben wird (weil es sich geändert hat).
Jetzt habe ich also in dem Pfad /home/orm/devel/super_prg die sourcen auf meiner Maschine, und CVS hat alle nötigen Information dort in den Files in /home/orm/devel/super_prg/CVS abgelegt. Ich brauche also die Environment Variablen eigentlich nicht mehr.
Dieses Kommando zieht alle Änderungen vom Repository in den eigenen Baum. Dazu geht man in das Start-Verzeichnis des Modules, was man ausgescheckt hat (im Beispiel /home/orm/devel/super_prg). Dort wird das Update Kommando gestartet.
cvs update -dP -d Legt neue Verzeichnisse an, die im Repository dazugekommen sind -P Löscht leere Verzeichnisse im lokalen Respository
Das Update macht man auch, bevor man ein geändertes File eincheckt. Eigene Änderungen gehen bei dem Update nicht verloren.
Das cvs gibt pro File einen Status:
Eigene Änderungen ins Repository schreiben - cvs commit
ata2:Auf dem Drive gibt es jetzt mindestens eine Slice, die (weil es vom XP Laptop kommt) natürlich MSDOS formatiert ist. Also:at port 0x100-0x10f irq 11 function 0 config 1 on pccard0 ata2: [MPSAFE] GEOM: create disk ad4 dp=0xc50aa560 ad4: 1027MB [2088/16/63] at ata2-master PIO2 mount_msdosfs /dev/ad4s1 /mntUnd vor dem Ausstoßen immer umount machen...FBSD bootet nicht
FBSD bootet nicht - rc.conf hat einen schadhaften Eintrag. - booten in Single User Mode (da werden nur die Devices gecheckt, aber die rc.conf wird nicht ausgeführt.) - / ist readonly, also mit rw neu mounten: mount -o rw /dev/ad0s1 / (Oder wie das Device heisst - zeigt das mount-Kommando) - ed gegen die Datei. Findet sich in /bin.Automounter amd
amd File /etc/amd.cdrom #Automount des CDRom cdrom type:=cdfs;dev:=/dev/acd0;opts:=ro File /etc/amd.conf #Global Options [global] auto_dir = /.amd_mnt log_file = /var/log/amd # cdrom Map [ /auto ] map_name = /etc/amd.cdrom Aufruf des amd jetzt mit amd -F /etc/amd.conf - kann man aber auch weglassen, da /etc/amd.conf der Default ist: amd Das sieht dann so aus: /dev/ad0s1a on / (ufs, local) devfs on /dev (devfs, local) /dev/ad0s1d on /data (ufs, local, soft-updates) /dev/ad0s1h on /home (ufs, local, soft-updates) /dev/ad0s1f on /tmp (ufs, local, soft-updates) /dev/ad0s1g on /usr (ufs, local, soft-updates) /dev/ad0s1e on /var (ufs, local, soft-updates) procfs on /proc (procfs, local) pid594@elazul:/auto on /auto (nfs) Wenn ich jetzt nach /auto wechsle, passiert nichts. Es stehen dort auch keine Files, das Verzeichnis ist leer. Ich muß wissen, daß ich dort nach cdrom wechseln kann - oder der Administrator muß einen symbolischen Link für /cdrom erzeugt haben: Wenn ich dann nach cdrom bzw. /auto/cdrom wechsle, wird das CD gemountet. Was dann so aussieht: /dev/ad0s1a on / (ufs, local) devfs on /dev (devfs, local) /dev/ad0s1d on /data (ufs, local, soft-updates) /dev/ad0s1h on /home (ufs, local, soft-updates) /dev/ad0s1f on /tmp (ufs, local, soft-updates) /dev/ad0s1g on /usr (ufs, local, soft-updates) /dev/ad0s1e on /var (ufs, local, soft-updates) procfs on /proc (procfs, local) pid594@elazul:/a on /a (nfs) /dev/acd0 on /.amd_mnt/elazul/auto/cdrom (cd9660, local, read-only) Dabei im Verzeichnis /auto die Links zu diesem Automountpoint (.amd_mnt): #ls -l /a total 1 lrwxrwxrwx 1 root wheel 24 Jul 16 11:34 cdrom -> /.amd_mnt/elazul/auto/cdrom Bei Nichtbenutzung wird der Mount nach 2 minuten wieder abgebaut. Eintrag in die rc.conf: amd_enable="YES" amd_flags=" " #cd /autofs/cdrom Jul 16 11:50:41 elazul kernel: cd9660: Joliet Extension (Level 3) Für den großen Luxus: Symlink von /cdrom nach /autofs/cdrom. Der Automounter amd hat einen Administrations-Client amq: Ausgabe von amq: / root "root" elazul:(pid706) /auto toplvl /etc/amd.cdrom /auto /auto/cdrom cdfs /dev/acd0 /.amd_mnt/elazul/auto/cdrom Für einzelne Mounts die Statistiken: amq /auto/cdrom What Uid Getattr Lookup RdDir RdLnk Statfs Mounted@ /auto/cdrom 0 3 0 0 1 0 04/07/18 22:40:13 Weiterhin: amq -v amq -f ==> re-Read Datenfiles amq -u /auto/cdrom ==> Umount des Filesystems Beispielfile für ein Map-file: /etc/amd.home /defaults type:=nfs; opts:=nosuid,quota,intr,rw # Default Settings für alle folgenden Mounts # Der Typ des mounts ist nfs, nosuid verhindert die # Execution von Programmen, die das SUID Bit gesetzt # haben (die laufen schon, aber nicht SUID). # quota aktiviert den Quota-Support für das NFS # gemountete FS, intr sorgt dafür, daß der Mount # mit CTRL C unterbrochen werden kann. # rw läßt lesen und schreiben zu. orm -rhost:=elbueno; rfs:=/data1/user; sublink:=${key} \ host!=${rhost}; type:= nfs \ host==${rhost}; type:= link # Das Minus-Zeichen kennzeichnet Optionen, die für # diesen Eintrag gelten. Diese Optionen haben Priorität # gegenüber den Defaults. Der Name des Eintrags (orm) # ist der Key. rhost zeigt den Server, der das rfs, das # remote Filesystem, exportiert. Die sublink Option weist # darauf hin, daß /data1/user/orm kein eigenes FS ist. # Gemountet wird effektiv also /data1/user. # Die host!= Zeile zeigt an, was getan wird, wenn # der lokale Hostname nicht der Name des rhosts ist. # Im zweiten Fall (host==) ist man auf der Maschine, # die als Server exportiert - daher wird das FS direkt # gemountet (Typ link). hugo -rhost:=elazul; rfs:=/u/home; sublink:=${key} \ host!=${rhost}; type:= nfs \ host==${rhost}; type:= link
[ Allgemein | UNIX | AIX | TCP-IP | TCP | ROUTING | DNS | NTP | NFS | FreeBSD | Linux | RPi | SMTP | Tracing | GPS | LW ]
Copyright 2001-2021 by Orm Hager - Es gilt die GPL
Feedback bitte an: Orm Hager (orm@doc-tcpip.org )