Ubuntu 12.04 „Precise Pangolin“
Ubuntu 10.04 „Lucid Lynx“
SparkleShare
ist ein freier Online-Datenspeicher und eine Alternative zu Ubuntu One und Dropbox. Es ist ein einfach gehaltenes Tool zur Dateisynchronisation und zum kollektiven Zusammenarbeit. Dateien werden zwischen allen angeschlossenen Systemen synchronisiert, dies können sowohl verschiedene eigene als auch fremde Rechner sein. Im Gegensatz zu anderen unfreien Anbietern ist bei SparkleShare die Anzahl der Teilnehmer, die Anzahl der Freigaben/Projekte und die Größe des Speicherplatzes theoretisch unbegrenzt - sofern ein eigener Server verwendet wird. Durch die Verwendung von Git arbeitet es jedoch nicht sehr effizient mit Sammlungen von Binärdateien.
Momentan gibt es Clients für Linux, Mac und Android. Der Client für Windows ist in einem experimentiellen Stadium. Ein Client für iOS ist geplant.
Über den aktuellen Entwicklungsstand berichtet unter anderem der SparkleShare-Blog . In der für diesen Artikel getesteten Installation funktioniert der Austausch gut und recht zügig. Die Installation besteht aus einem eigenen Server und zwei Ubuntu-Teilnehmern (= gleicher Benutzer an zwei unterschiedlichen Desktops).
Ab Ubuntu 11.10 ist SparkleShare in den offiziellen Paketquellen enthalten und kann über folgendes Paket installiert werden:
sparkleshare (universe)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install sparkleshare
sudo aptitude install sparkleshare
Aktualisierte Versionen für Ubuntu 11.10 und 12.04 sind in der Paketquelle backports enthalten.
Derzeit gibt es noch kein fertiges Software-Paket für Ubuntu. Die Installation erfolgt deshalb über die Kommandozeile [1]. Hierzu wird der Quellcode von SparkleShare zunächst heruntergeladen und anschließend kompiliert.
Vorbereitend müssen dafür folgende Pakete installiert [2] werden:
gtk-sharp2
mono-runtime
mono-devel
monodevelop
libndesk-dbus1.0-cil-dev
nant
libnotify-cil-dev
libgtk2.0-cil-dev
libwebkit-cil-dev
intltool
libtool
python-nautilus
libndesk-dbus-glib1.0-cil-dev
libappindicator0.1-cil-dev
mit apturl
Paketliste zum Kopieren:
sudo apt-get install gtk-sharp2 mono-runtime mono-devel monodevelop libndesk-dbus1.0-cil-dev nant libnotify-cil-dev libgtk2.0-cil-dev libwebkit-cil-dev intltool libtool python-nautilus libndesk-dbus-glib1.0-cil-dev libappindicator0.1-cil-dev
sudo aptitude install gtk-sharp2 mono-runtime mono-devel monodevelop libndesk-dbus1.0-cil-dev nant libnotify-cil-dev libgtk2.0-cil-dev libwebkit-cil-dev intltool libtool python-nautilus libndesk-dbus-glib1.0-cil-dev libappindicator0.1-cil-dev
Via Git wird nun der aktuelle Quellcode heruntergeladen:
git clone git://github.com/hbons/SparkleShare.git
In das neue Verzeichnis wechseln:
cd SparkleShare
Kompilieren vorbereiten:
./autogen.sh --prefix=/usr
Anschließend SparkleShare kompilieren [3]. Danach sollte der oben angelegte Ordner SparkleShare gelöscht werden, um keine Verwechslungen zu erzeugen.
Der Dienst kann nun über "Anwendungen -> Internet -> SparkleShare" gestartet werden. Es empfiehlt sich, SparkleShare für den Benutzer automatisch mit Anmeldung am Desktop starten zu lassen [4].
Beim ersten Aufruf von SparkleShare wird der Anwender nach seinem Namen und der E-Mail-Adresse gefragt. Darauf folgt die Frage nach dem geeigneten Remote-Speicherplatz - also der Ort, von dem aus alle Teilnehmer ihre Daten synchronisieren. Hier gibt es vier verschiedene Möglichkeiten:
Den eigenen Server verwenden: Empfohlen für die meisten Anwender. Voraussetzung hierfür ist allerdings ein eigener Server, wie weiter unten beschrieben.
Github: Freier Hosting-Provider für Open-Source Projekte. Für Software-Entwickler gedacht. Bei dem bezahlten Nutzerkonto ist auch privater Speicherplatz vorhanden.
Gitorious: Ausrichtung ähnlich wie Github, jedoch ohne privaten Speicherplatz.
The Gnome Project: Plattform für Designer und Entwickler von GNOME
Im folgenden wird die erste Methode beschrieben. Voraussetzung hierfür ist ein eigener Server für alle Teilnehmer. Dies ist weiter unten beschrieben. Ist der Server soweit vorbereitet, kehrt man zurück zum Teilnehmer (Client) und führen folgendes Schritte aus:
Installation eines SSH-Clients:
openssh-client
mit apturl
Paketliste zum Kopieren:
sudo apt-get install openssh-client
sudo aptitude install openssh-client
Als nächstes wird ein Schlüsselpaar für SSH generiert, das die passwortlose Kommunikation zwischen Client und Server erlaubt. Passwortabfrage im folgenden leer lassen:
ssh-keygen
Schlüssel auf Server kopieren. SERVER hierbei durch Server-URL bzw. Server-IP-Adresse ersetzen:
ssh-copy-id BENUTZERNAME@SERVER
Nun den Teilnehmer im Setup-Assistenten von SparkleShare den eigenen Server angeben:
BENUTZERNAME@SERVER
Als Ordnername den vollständigen Pfad zum Git-Repository angeben (siehe Server-Abschnitt), z. B.:
/home/BENUTZERNAME/Freigabe.git
Nach dem Klick auf "Sync" ist die Einrichtung von SparkleShare komplett!
Für die meisten Anwender empfiehlt sich die Nutzung eines eigenen Servers für SparkleShare. Dazu wird der Server als Speicherplatz und Synchronisationspunkt verwendet. Es können eigene Linux-Server im Heimnetz (mit oder ohne Internet-Anbindung) oder gemietete Server im Internet genutzt werden.
Die SparkleShare-Teilnehmer kommunizieren mit dem Server über SSH und GIT, daher müssen die Server für beide Dienste aufgesetzt werden:
openssh-server
git-core
mit apturl
Paketliste zum Kopieren:
sudo apt-get install openssh-server git-core
sudo aptitude install openssh-server git-core
Mit
git init --bare Freigabe.git
wird das Repository SparkleShare.git erstellt. Das Repository wird im Home-Verzeichnis des Benutzers auf dem Server gespeichert, z. B. ~/Freigabe.git/. Dieser Pfad wird benötigt für Einrichtung der Teilnehmer (siehe oben).
Im Homeverzeichnis ist beim Teilnehmer nun ein neues Verzeichnis aufgetaucht. Es lautet ~/SparkleShare. Dieses Verzeichnis dient als Sammelpunkt für alle Verzeichnisse, die synchronisiert werden. Da der synchronisierte Ordner auf unserem Server Freigabe lautet, ist der vollständige Pfad hierfür ~/SparkleShare/Freigabe. Dateien, die unter diesem Ordner verändert, hinzugefügt oder gelöscht werden, werden direkt synchronisiert.