User Tools

Site Tools


fernuni:1914:ori

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
fernuni:1914:ori [2015/04/11 06:40] – angelegt Martinfernuni:1914:ori [2015/06/09 14:36] (current) – [Anbindung eines entfernten Repositories] Martin
Line 1: Line 1:
 ====== Ori ====== ====== Ori ======
 ===== Installation ===== ===== Installation =====
 +Das beschriebene Vorgehen in diesem Artikel wurde auf folgenden Distributionen erfolgreich getestet 
 +  * Debian GNU/Linux 7.8
 +  * Linux Mint 17.1 Rebecca
 Paketquellen holen mit git Paketquellen holen mit git
 <code> <code>
Line 12: Line 15:
 Verbundenheit wird überprüft … Fertig. Verbundenheit wird überprüft … Fertig.
 </code> </code>
-Abhängigkeiten +Abhängigkeiten laut README-Datei 
- * C++11 (Required) +  * C++11 (Required) 
- * openssl (tested with 1.0.1+) (Required) +  * openssl (tested with 1.0.1+) (Required) 
- * boost headers (tested with 1.48+) (Required) +  * boost headers (tested with 1.48+) (Required) 
- * libevent 2.0 (Required) +  * libevent 2.0 (Required) 
- * FUSE (API Version 26+) +  * FUSE (API Version 26+) 
- * liblzma (for LZMA compression) +  * liblzma (for LZMA compression) 
- * mDNSResponder (for Multipull Support) +  * mDNSResponder (for Multipull Support) 
- * libxml2 (S3 Backup) +  * libxml2 (S3 Backup) 
- * libedit (oridbg only)+  * libedit (oridbg only)
 <code> <code>
-$ aptitude install g++ libboost-dev libevent-dev fuse avahi-daemon libxml2-dev libedit-dev pkg-config scons +$ aptitude install g++ libboost-dev libevent-dev fuse avahi-daemon libxml2-dev libedit-dev</code> 
 +Außerdem noch folgende Pakete nachinstallieren 
 +<code> 
 +$ aptitude install pkg-config scons uuid-dev libfuse-dev libssl-dev
 </code> </code>
 +Dann kompilieren
 +<code>
 +$ 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"
 +</code>
 +Leider werden bin ausführbaren Dateien in einem falschen Pfad abgelegt (''bin'' ist doppelt). Die Dateien müssen daher von Hand verschoben werden.
 +<code>
 +# cd /usr/local/bin && mv bin/* . && rmdir bin
 +</code>
 +**Achtung:** Unter Debian Wheezy hat nur der Benutzer root Zugriff auf die die Gerätedatei ''/dev/fuse''. Dies muss geändert werden.
 +<code>
 +# chgrp fuse /dev/fuse
 +# chmod g+rw /dev/fuse
 +</code>
 +Danach muss der Benutzer noch der Gruppe ''fuse'' hinzugefügt werden
 +<code>
 +# usermod -aG fuse <Benutzername>
 +</code>  
 +===== Anwendung =====
 +==== Anbindung eines entfernten Repositories ====
  
- +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  
 +<code> 
 +$ mkdir ~/Fernuni/Seminar1914 
 +$ cd ~/Fernuni 
 +$ ori newfs Seminar1914 
 +</code> 
 +Zur Überprüfung kann man sich alle Repositories anzeigen lassen 
 +<code> 
 +$ ori list  
 +Name                            File System ID 
 +Seminar1914                     afd8cf79-84d8-4a98-bf8e-984564c51967 
 +</code> 
 +Nach dem Mounten kann man Dateien in das Repository hineinkopieren 
 +<code> 
 +$ cd ~/Fernuni 
 +$ orifs Seminar1914 
 +$ mount  
 +... 
 +orifs on /home/martin/Fernuni/Seminar1914 type fuse.orifs (rw,nosuid,nodev,user=martin) 
 +</code> 
 +Möchte man nun auf einem zweiten Knoten eine neue Replik anlegen, wird der entsprechende Prozess mit  
 +<code> 
 +$ ori replicate martin@ori.mb-oss.de:Seminar1914 
 +</code> 
 +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. 
 +<code> 
 +$ mkdir ~/Fernuni/Seminar1914 && cd ~/Fernuni 
 +$ orifs Seminar1914 
 +</code> 
 +=== Änderungen übertragen === 
 +== Remote -> local == 
 +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 
 +<code> 
 +$ ori snapshot 
 +Committed 8766035d3a1fdb7337e2867ffd49f278dd1fb29bab5a34c87e8b0fa8b0cffa49 
 +</code> 
 +Anschließend können diese mit einer //pull// Anforderung auf den lokalen Rechner übertragen werden 
 +<code> 
 +$ ori pull 
 +Pulled up to 8766035d3a1fdb7337e2867ffd49f278dd1fb29bab5a34c87e8b0fa8b0cffa49 
 +$ ori checkout 8766035d3a1fdb7337e2867ffd49f278dd1fb29bab5a34c87e8b0fa8b0cffa49 
 +Checkout success! 
 +</code> 
 +Die angezeigt Nummer ist der HEAD. Man kann sich den aktuellen HEAD mit dem Kommando 
 +<code> 
 +--- Repository --- 
 +Root: /home/martin/.ori/Seminar1914.ori 
 +UUID: afd8cf79-84d8-4a98-bf8e-984564c51967 
 +Version: ORI1.1 
 +HEAD: 8766035d3a1fdb7337e2867ffd49f278dd1fb29bab5a34c87e8b0fa8b0cffa49 
 +</code> 
 +jederzeit anzeigen lassen.
fernuni/1914/ori.1428734424.txt.gz · Last modified: 2015/04/11 06:40 by Martin