Debian Wheezy: Grive, Google Drive ShellClient

 

Google Drive ist nun für die Netzgemeinde angekommen und wenn man schon 5GB geschenkt bekommt, dann sollte man sich nicht beschweren.
Worauf Personen wie ich nur warten ist ein Shell-Client. Auf Git-Hub ist nun so ein Client in der Alphaphase aufgetaucht und hört auf den Namen grive.

ACHTUNG

Die Anleitung ist mittlerweile out of date und das Repository befindet sich nun auf
https://github.com/Grive/grive

Downloadmöglichkeiten für verschiedene Distributionen, als Pakete, finden sich auf der Downloadseite von Grive.
Dieser funktioniert trotz der frühen Alphaphase schon sehr Gut und kann ohne große Herausforderungen unter Debian Wheezy installiert werden.
Man sollte aber nie vergessen, er befindet sich noch im experimentellen Stadium und kann einem noch den Tag auf nette Art und Weise richtig vermiesen. Bei mir waren alle Funktionen vorhanden, was aber nicht
heissen soll, dass ich irgendwelche Verantwortung für zerstörte Dateien, Systeme, Hardware, Nachbarschaftshilfe, Ehen etc. verantwortlich bin.
Die Pakete cmake libjson0-dev libcurl4-dev libcurl4-openssl-dev libboost-all-dev binutils-dev sollten neben der normalen Entwicklungsumgebung installiert sein.

seraphyn@takeshi: ~/compileee $ git clone git://github.com/match065/grive.git
 Cloning into 'grive'...
 remote: Counting objects: 1870, done.
 remote: Compressing objects: 100% (660/660), done.
 remote: Total 1870 (delta 1207), reused 1832 (delta 1172)
 Receiving objects: 100% (1870/1870), 881.59 KiB | 383 KiB/s, done.
 Resolving deltas: 100% (1207/1207), done.
 seraphyn@takeshi: ~/compileee $ cd grive/
 seraphyn@takeshi: ~/compileee/grive $ cmake CMakeLists.txt
 -- The C compiler identification is GNU 4.6.3
 -- The CXX compiler identification is GNU 4.6.3
 -- Check for working C compiler: /usr/bin/gcc
 -- Check for working C compiler: /usr/bin/gcc -- works
 -- Detecting C compiler ABI info
 -- Detecting C compiler ABI info - done
 -- Check for working CXX compiler: /usr/bin/c++
 -- Check for working CXX compiler: /usr/bin/c++ -- works
 -- Detecting CXX compiler ABI info
 -- Detecting CXX compiler ABI info - done
 -- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libssl.so;/usr/lib/x86_64-linux-gnu/libcrypto.so (found version "1.0.1c")
 -- Found JSON-C: /usr/lib/x86_64-linux-gnu/libjson.so
 -- Found CURL: /usr/lib/x86_64-linux-gnu/libcurl.so (found version "7.25.0")
 -- Found EXPAT: /usr/lib/x86_64-linux-gnu/libexpat.so (found version "2.1.0")
 -- Boost version: 1.49.0
 -- Found the following Boost libraries:
 -- filesystem
 -- system
 -- Found libbfd: /usr/lib/libbfd.so
 -- Found libiberty: /usr/lib/libiberty.a
 -- Configuring done
 -- Generating done
 -- Build files have been written to: /home/seraphyn/compileee/grive

seraphyn@takeshi: ~/compileee/grive $ make
 Scanning dependencies of target grive
 [ 3%] Building CXX object libgrive/CMakeFiles/grive.dir/src/drive/Resource.cc.o
 [ 6%] Building CXX object libgrive/CMakeFiles/grive.dir/src/drive/Entry.cc.o
 [ 9%] Building CXX object libgrive/CMakeFiles/grive.dir/src/drive/Drive.cc.o
 [ 12%] Building CXX object libgrive/CMakeFiles/grive.dir/src/drive/ResourceTree.cc.o
 [ 15%] Building CXX object libgrive/CMakeFiles/grive.dir/src/drive/State.cc.o
 [ 18%] Building CXX object libgrive/CMakeFiles/grive.dir/src/http/Header.cc.o
 [ 21%] Building CXX object libgrive/CMakeFiles/grive.dir/src/http/Agent.cc.o
 [ 25%] Building CXX object libgrive/CMakeFiles/grive.dir/src/http/Download.cc.o
 [ 28%] Building CXX object libgrive/CMakeFiles/grive.dir/src/http/StringResponse.cc.o
 [ 31%] Building CXX object libgrive/CMakeFiles/grive.dir/src/http/ResponseLog.cc.o
 [ 34%] Building CXX object libgrive/CMakeFiles/grive.dir/src/http/XmlResponse.cc.o
 [ 37%] Building CXX object libgrive/CMakeFiles/grive.dir/src/protocol/JsonResponse.cc.o
 [ 40%] Building CXX object libgrive/CMakeFiles/grive.dir/src/protocol/Json.cc.o
 [ 43%] Building CXX object libgrive/CMakeFiles/grive.dir/src/protocol/OAuth2.cc.o
 [ 46%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/DateTime.cc.o
 [ 50%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/StdioFile.cc.o
 [ 53%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/Crypt.cc.o
 [ 56%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/SignalHandler.cc.o
 [ 59%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/Exception.cc.o
 [ 62%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/OS.cc.o
 [ 65%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/log/CommonLog.cc.o
 [ 68%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/log/CompositeLog.cc.o
 [ 71%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/log/Log.cc.o
 [ 75%] Building CXX object libgrive/CMakeFiles/grive.dir/src/util/log/DefaultLog.cc.o
 [ 78%] Building CXX object libgrive/CMakeFiles/grive.dir/src/xml/Node.cc.o
 [ 81%] Building CXX object libgrive/CMakeFiles/grive.dir/src/xml/NodeSet.cc.o
 [ 84%] Building CXX object libgrive/CMakeFiles/grive.dir/src/xml/TreeBuilder.cc.o
 [ 87%] Building CXX object libgrive/CMakeFiles/grive.dir/src/bfd/Debug.cc.o
 [ 90%] Building CXX object libgrive/CMakeFiles/grive.dir/src/bfd/Backtrace.cc.o
 [ 93%] Building CXX object libgrive/CMakeFiles/grive.dir/src/bfd/SymbolInfo.cc.o
 Linking CXX shared library libgrive.so
 [ 93%] Built target grive
 Scanning dependencies of target grive_executable
 [ 96%] Building CXX object grive/CMakeFiles/grive_executable.dir/src/main.cc.o
 [100%] Building CXX object grive/CMakeFiles/grive_executable.dir/src/Config.cc.o
 Linking CXX executable grive
[100%] Built target grive_executable

Nun ist grive in einen ausführbaren Zustand gebracht worden.
Damit man grive nicht direkt in das System mit einem make install installiert, nutzt man am besten einen Softlink in dem heimateigenen bin-Verzeichnis.
Durch den Softlink ist das updaten per git und neu kompilieren ein leichtes. Man sollte einen Ordner erstellen in welchem grive seine Arbeit vornimmt und mit google Drive die Dateien synchronisiert, dies erhält den Überblick.
Der erste Start muss unedingt mit der Option -a vorgenommen werden um den Client zu authetifizieren.
Die URL war bei mir in der Bash ein wenig malträtiert, somit eine bessere die Variante zum kopieren
Nach dem obligatorischen Login sind die Rechte für Grive zu gewähren, der Code in die Shell zu kopieren und mit Enter zu bestätigen.

-----------------------
 Please go to this URL and get an authentication code:

https://accounts.google.com/o/oauth2/auth?scope=BLABLABLABLABLABLABLABLA

-----------------------
 Please input the authentication code here:

Reading local directories
 Synchronizing folders
 gin
 Reading remote server file list
Synchronizing files

Nun kann in dem Ordner immer direkt grive aufrufen um eine synchonisierung durchzuführen. Am besten man hat immer ein Auge auf die Issue-List von grive…
Fröhliches Synchronisieren ;)