Seafile Client installieren

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 http://c64-online.com/?ddownload=4740

oder für die neue Version:

wget -O seafile-client_4.2.8-1_armhf.tar.gz http://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.

21 Kommentare

  1. 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

  2. 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 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

  3. 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

  4. 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

          • 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.

  5. 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?

  6. 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/

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax