Seafile ist ein toller File-Cloud-Server, den es unter anderem auch für den Raspberry PI zum Download und zur einfachen Installation gibt. Dieses gilt so leider nicht für den Seafile Client. Hier gibt es nur die Quellcodes, die man selber kompilieren muss. Die Anleitung dazu ist ebenfalls relativ undurchsichtig. Daher stelle ich hier die fertigen Installationspakete zur Verfügung und beschreibe die Installation:
Nach dem Login per SSH bzw. innerhalb des Terminalfensters müssen zunächst ein paar Pakete nachinstalliert werden. Dazu müssen folgende Befehle ausgeführt werden:
apt-get update apt-get -y install python2.7 python-setuptools python-simplejson python-imaging sqlite3 apt-get -y install autoconf automake libtool libevent-dev libcurl4-openssl-dev libgtk2.0-dev apt-get -y install uuid-dev intltool libsqlite3-dev valac libjansson-dev libqt4-dev cmake libfuse-dev
Nun brauchst Du die Installationspakete für den Seafile-Client. Diese bekommst Du hier:
Seafile-Client 4.1.6: Download
(Der Seafile-Client ist inzwischen in der Version 4.2.6 zu haben. Jedoch ist er bis zur 4.2.4 fehlerhaft und die Synchronisation bleibt sporadisch hängen. Daher gibt es hier nach wie vor die 4.1.6 zumDownload. Diese funktioniert ebenfalls mit einem 4.2.x Server problemlos!)
Seafile-Client 4.2.6: Download
Seafile-Client 4.2.8: Download
Um den Client direkt mit dem Raspberry PI herunterzuladen, kann man folgenden Befehl verwenden:
wget -O seafile-client_4.1.6-1_armhf.tar.gz https://c64-online.com/?ddownload=4740 oder für die neue Version: wget -O seafile-client_4.2.8-1_armhf.tar.gz https://c64-online.com/?ddownload=4761
Der Parameter „-O“ mit dem Dateinamen ist notwendig, da die Datei ansonsten den Namen des Download-Skriptes vom Webserver bekommt. Im Anschluss wird mit den folgenden Befehlen das Archiv entpackt und die Programme installiert:
tar -xzvf seafile-client_4.1.6-1_armhf.tar.gz dpkg -i libsearpc-3.0_3.0.4-1_armhf.deb dpkg -i ccnet_4.1.6-1_armhf.deb dpkg -i seafile_4.1.6-1_armhf.deb dpkg -i seafile-client_4.1.6-1_armhf.deb
Damit ist die Installation abgeschlossen.
Seafile Client initialisieren und starten
Nach der Installation muss zunächst ein Verzeichnis für die Konfiguration angelegt werden. Dieses kann z.B. im Home-Verzeichnis des entsprechenden Users erfolgen. In diesem Beispiel verwenden wir das Verzeichnis „.seafile“ im Home-Pfad und initialisieren die Installation:
mkdir ~/.seafile seaf-cli init -d ~/.seafile
Nun starten die den Seafile-Client als Daemon:
seaf-cli start
Und im Anschluss können nun die Bibliotheken auf die lokale Festplatte synchronisiert werden. Dazu muss der CLI-Client mit der folgenden Syntax aufgerufen werden:
seaf-cli sync -l [ID der Bibliothek] -s [URL und Port des Seafile-Servers] -d [Lokales Verzeichnis für die Synchronisation] -u [Benutzername] -p [Passwort]
Hinweis: Die ID der Bibliothek bekommt man, indem man die Bibliothek im Browser anzeigen lässt. Die URL sieht dann so aus:
https://mein-seafile-server/#my-libs/lib/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
xxxxx…. ist dabei dann die ID. Somit sieht ein Aufruf dann z.B. so aus:
seaf-cli sync -l 478d3748-2343-1234-432487abe762 -s https://mein-seafile-server -d /home/pi/seafile-sync -u pi@seafile.local -p geheim123
Seafile Client nach dem Booten automatisch starten
Um den Seafile Client nach dem Booten automatisch zu starten, braucht man ein kleines Skript. Dieses kann z.B. /usr/local/bin/seafile-client-starter.sh sein. Folgende Zeilen müssen dort hinein:
#!/bin/sh set -e /usr/bin/seaf-cli start
Das Skript muss mit chmod 755 ausführbar gemacht werden, bevor wir in die Crontab einen Eintrag hinzufügen. Dazu geben muss folgender Befehl verwendet werden:
crontab -e
Im Editor muss nun in die Crontab folgende Zeile hinein:
@reboot /usr/local/bin/seafile-client-starter.sh
Jetzt die Crontab mit STRG-O speichern und mit STRG-X den Editor verlassen. Fertig.
Hallo,
ich hab es mal ohne tutorial versucht, hab’s nicht geschafft. Nach genauem lesen hat’s jetzt geklappt, vielen Dank.
moony
..was nicht geht ist der autostart nach dem reboot. Zum einen war der Pfad in dem startscript falsch: /usr/local/bin, nicht /usr/bin aber es geht trotzdem nicht, an was kann das liegen?
geht wohl nicht mit jedem crond: http://unix.stackexchange.com/questions/109804/crontabs-reboot-only-works-for-root
Hallo,
Ich habe folgendes Problem, auf meinem PI (Raspbian) hätte ich gerne einen Seafile-CLI um meinem Seafile Client zu syncen. Installationsanweisungen befolgt, leider bekomme ich einen Fehler beim versuch meine Bibliothek zu Syncen:
seaf-cli sync -l aa2fbab1-bf04-4217-a3ba-415833faede2 -s https://seafile.drummingsoul.com -d /media/Data/Verwaltung -u *** -p ***
Traceback (most recent call last):
File "/usr/bin/seaf-cli", line 791, in <module>
main()
File "/usr/bin/seaf-cli", line 787, in main
args.func(args)
File "/usr/bin/seaf-cli", line 480, in seaf_sync
token = get_token(url, username, password, conf_dir)
File "/usr/bin/seaf-cli", line 210, in get_token
token_json = urlopen("%s/api2/auth-token/" % url, data=data)
File "/usr/bin/seaf-cli", line 183, in urlopen
resp = urllib2.urlopen(req)
File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python2.7/urllib2.py", line 431, in open
response = self._open(req, data)
File "/usr/lib/python2.7/urllib2.py", line 449, in _open
'_open', req)
File "/usr/lib/python2.7/urllib2.py", line 409, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 1240, in https_open
context=self._context)
File "/usr/lib/python2.7/urllib2.py", line 1197, in do_open
raise URLError(err)
urllib2.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)>
danke für eure Antwort
Hallo Thomas,
wer wie „supertux“ solche Probleme bzw. bei wem der Syn gar nicht erst startet gibt folgende Befehle ein:
seaf-cli config -k disable_verify_certificate -v true
seaf-cli config -k enable_http_sync -v true
seaf-cli stop
seaf-cli start
Dann sollte es klappen
Bernhard
Danke für den Tipp leider hat es bei mir nicht geklappt, ich bekomme immer noch die selbe Meldung.
seaf-cli config -k disable_verify_certificate -v true
seaf-cli config -k enable_http_sync -v true
mit anschließendem Restart hat bei mir leider auch nicht geholfen. Ich bekomme immer noch die Fehlermeldung mit dem SSL-Zerti. Ich habe den Seafile-Client 4.2.8 installiert.
Nachtrag zu den Voraussetzungen: Auf meinem Pi musste ich zusätzlich noch das folgende Paket installieren damit die 4.2.8 version funktionierte:
apt-get install libjansson4
Danke für die Tipps. Die Anleitung habe ich noch nicht ausprobiert. Auf meinem Raspberry werde ich, wie oben angesprochen, per „apt-get install libjansson4“ nachrüsten.
Ist es möglich automatisch und anhand der IDs alle Archive runterzuladen, als blindes Backup? Ich verwende zudem für alle Archive das gleiche Passwort.
Oder muss ich mich zwangsläufig bei jedem neuen Archiv auf dem Raspberry Pi einloggen und die Synchronisation starten?
Grüße
Tim
vielen Dank!
Hat sehr gut funktioniert. Nur zwei kleine Stoplersteine waren:
1. nach der install muss man noch einmalig
sudo ldconfig
ausführen. Sonst startet der Client (zumindest nicht ohne neustart) weil ihm eine shared lib fehlt.
Der Start des Clients soll natürlich nicht unter root sondern unter „pi“ (oder einem anderem user) erfolgen.
@reboot
funktioniert aber nur als root. Ich habe daher in dem Starterscript die Zeile wie folget ergänzt:sudo -u pi /usr/local/bin/seaf-cli start
somit wird der Client unter dem „pi“ user gestart und es funktioniert.
Gruß Moe
Hallo,
bin auf deine Anleitung gestoßen und wollte nachfragen ob Du auch eine Veröffentlichung für die neuen Seafile-Versionen (5.1.x) in Betracht ziehst bzw. vielleicht arbeitest Du gerade daran? Es gibt nun (oder damals auch schon?) diesen Seafile-Client für Server, funktioniert dieser am Raspberry Pi?
Wäre schön wenn mir jemand etwas Licht in mein Anliegen bringen könnte 🙂
Gruß, Christian
Ja, grundsätzlich funktioniert das so. Das Problem für den Raspberry ist halt nur, dass keine Binaries veröffentlicht werden. Du kannst den im Grunde aber auch selber kompilieren. Ich habe aufgrund der geringen Downloads das bisher nicht aktualisiert. Die Anleitung wird gerne gelesen. Aber das Kompilieren übernehmen die meisten selber.
Hi,
Habe deinen „neuesten“ client runter geladen, aber ich bekomme immer den SSL Fehler auch, wenn ich mich einloggen und einen Ordner synchronisieren möchte.
Die Lösungen hier bei den Kommentaren, funktionieren auch nicht. Habe noch ein paar Lösungsansätze im Netz gefunden aber auch die haben alle nicht funktioniert.
Ebenso, habe ich versucht das selber zu kompilieren. Weiß nur nicht, was ich damit jetzt mache ?
Anleitung bin danach gegangen. Habe die ersten drei gemacht, da ich eh keine gui brauche.
Aber was mache ich jetzt damit?
Mir wurde allerdings auch deinen client reichen.
Vielen Dank, für dein mühe!
Hi,
wenn Du den Client mit „make install“ kompiliert hast, dann sollte er auch auf Deinem System installiert sein und Du kannst ihn verwenden. Prüfe mal bitte, ob es dann funktionert. Ansonsten gib‘ mal bitte die genaue Fehlermeldung an.
Viele Grüße
Hi,
versuche gerade deine sachen wieder zu entfernen.
Weis leider nicht genau, wie das am besten funktioniert. Immer wenn ich sea und tab druecke, sind da noch seaf-cli, seaf-cli.sh, seaf-daemon, seafile-applet, seafile-applet.sh. Wie kann ich das entfernen? Ebenso, habe ich das ja auch noch kompiliert gehabt. Ich nehme an, das mit einfach ordner loeschen, hat es sich nicht getan. ?
Wollte das einmal komplett/ordentlich runter schmeissen, um dann einen neuen Aufbau zu versuchen.
Danke dir.
Edit
Hier hätte das ja hin gemusst. Sry
Noch da?
Hallo Dan,
bin derzeit im Urlaub, daher wenig Zeit. Schau‘ mal bitte unter /usr/local/bin und /usr/local/sbin und /usr/bin. Dort können die Programme liegen und können dann manuell gelöscht werden.
Danke dir.
Da waren sie leider nicht.
Ich kann leider keine Bibliothek mehr downloaden oder synchronisieren. Bekomme das hier:
Starting to download ...
Traceback (most recent call last):
File "/usr/local/bin/seaf-cli", line 778, in <module>
main()
File "/usr/local/bin/seaf-cli", line 774, in main
args.func(args)
File "/usr/local/bin/seaf-cli", line 514, in seaf_sync
email, random_key, enc_version, more_info)
File "/usr/lib/python2.7/dist-packages/pysearpc/client.py", line 112, in newfunc
return fret(ret_str)
File "/usr/lib/python2.7/dist-packages/pysearpc/client.py", line 25, in _fret_string
raise SearpcError(dicts['err_msg'])
pysearpc.common.SearpcError: Argument can't be NULL
die schon existierenden Bibliotheken werden aber weiterhin synchronisiert.. Sehe ich mit „seaf-cli status“ Hat jemand eine Idee?
Das müsste an der Client-Version liegen. Ist die Seafile-Server Version neuer als der Client? Dann muss der Client aktualisiert werden.
Hallo,
@supertux
hat man ein eigenes Certifikat erstellt, so kopiert man es sich auf den client:
sudo cp meincertificat.crt /usr/share/ca-certificates/
anschließend führt man ein
sudo dpkg-reconfigure ca-certificates
durch und dann sollte es funktionieren.
Mein certificat lag auf dem Server unter /etc/nginx/ssl/