Das beschriebene Vorgehen in diesem Artikel wurde auf folgenden Distributionen erfolgreich getestet
Paketquellen holen mit git
$ git clone http://bitbucket.org/orifs/ori.git Nach »ori« wird geklont remote: Counting objects: 7078, done. remote: Compressing objects: 100% (2214/2214), done. remote: Total 7078 (delta 5553), reused 6294 (delta 4828) Objekte werden empfangen: 100% (7078/7078), 1.44 MiB | 407.00 KiB/s, done. Unterschiede werden aufgelöst: 100% (5553/5553), done. Verbundenheit wird überprüft … Fertig.
Abhängigkeiten laut README-Datei
$ aptitude install g++ libboost-dev libevent-dev fuse avahi-daemon libxml2-dev libedit-dev
Außerdem noch folgende Pakete nachinstallieren
$ aptitude install pkg-config scons uuid-dev libfuse-dev libssl-dev
Dann kompilieren
$ scons ... scons: done building targets. # scons install ... scons: Building targets ... Install file: "build/ori/ori" as "/usr/local/bin/bin/ori" Install file: "build/oridbg/oridbg" as "/usr/local/bin/bin/oridbg" Install file: "build/orifs/orifs" as "/usr/local/bin/bin/orifs" Install file: "build/orisync/orisync" as "/usr/local/bin/bin/orisync" Install file: "docs/ori.1" as "/usr/local/bin/share/man/man1/ori.1" Install file: "docs/oridbg.1" as "/usr/local/bin/share/man/man1/oridbg.1" Install file: "docs/orifs.1" as "/usr/local/bin/share/man/man1/orifs.1" Install file: "docs/orisync.1" as "/usr/local/bin/share/man/man1/orisync.1"
Leider werden bin ausführbaren Dateien in einem falschen Pfad abgelegt (bin ist doppelt). Die Dateien müssen daher von Hand verschoben werden.
# cd /usr/local/bin && mv bin/* . && rmdir bin
Achtung: Unter Debian Wheezy hat nur der Benutzer root Zugriff auf die die Gerätedatei /dev/fuse. Dies muss geändert werden.
# chgrp fuse /dev/fuse # chmod g+rw /dev/fuse
Danach muss der Benutzer noch der Gruppe fuse hinzugefügt werden
# usermod -aG fuse <Benutzername>
Auf dem Ursprungs-Peer muss zunächst ein neues, leeres Ori-Repository erzeugt werden. Dazu erstellt man ein Verzeichnis mit demselben Namen, welches das Repository erhalten soll. Im Anschluss wird das Repository erzeugt
$ mkdir ~/Fernuni/Seminar1914 $ cd ~/Fernuni $ ori newfs Seminar1914
Zur Überprüfung kann man sich alle Repositories anzeigen lassen
$ ori list Name File System ID Seminar1914 afd8cf79-84d8-4a98-bf8e-984564c51967
Nach dem Mounten kann man Dateien in das Repository hineinkopieren
$ cd ~/Fernuni $ orifs Seminar1914 $ mount ... orifs on /home/martin/Fernuni/Seminar1914 type fuse.orifs (rw,nosuid,nodev,user=martin)
Möchte man nun auf einem zweiten Knoten eine neue Replik anlegen, wird der entsprechende Prozess mit
$ ori replicate martin@ori.mb-oss.de:Seminar1914
In diesem Fall liegt das zu replizierende Repository auf einem Remote-Server mit dem URL ori.mb-oss.de. Die Daten werden via SSH-Protokoll übertragen. Das Repository wird automatisch angelegt. War die Replizierung erfolgreich, kann das Dateisystem analog zum ersten Peer eingehängt werden.
$ mkdir ~/Fernuni/Seminar1914 && cd ~/Fernuni $ orifs Seminar1914
Werden auf dem Remote Repository neue Dateien hinzugefügt, müssen die Änderungen zunächst committed werden. Dazu erstellt man zunächst an der Quelle einen Snapshot
$ ori snapshot Committed 8766035d3a1fdb7337e2867ffd49f278dd1fb29bab5a34c87e8b0fa8b0cffa49
Anschließend können diese mit einer pull Anforderung auf den lokalen Rechner übertragen werden
$ ori pull Pulled up to 8766035d3a1fdb7337e2867ffd49f278dd1fb29bab5a34c87e8b0fa8b0cffa49 $ ori checkout 8766035d3a1fdb7337e2867ffd49f278dd1fb29bab5a34c87e8b0fa8b0cffa49 Checkout success!
Die angezeigt Nummer ist der HEAD. Man kann sich den aktuellen HEAD mit dem Kommando
--- Repository --- Root: /home/martin/.ori/Seminar1914.ori UUID: afd8cf79-84d8-4a98-bf8e-984564c51967 Version: ORI1.1 HEAD: 8766035d3a1fdb7337e2867ffd49f278dd1fb29bab5a34c87e8b0fa8b0cffa49
jederzeit anzeigen lassen.