Jose Antonio Cely Saidiza

Antiguo y olvidado, Weblog personal

Nov

30

-0001

Cliente de Google Drive en Debian Jessie

By Jose Antonio Cely Saidiza

Recientemente me v? obligado a configurar un cliente de archivos para Google Drive, digo obligado por que tengo que liar d?a a d?a con Dropbox, OwnCloud y One Drive debido a que cada usuario usa su tecnolog?a de turno, lo cual si trabajo con ellos me demandar? tiempo en configuraci?n de clientes y sus trabas tales como, que cambio el API, que cambi? la autenticaci?n, que lo uno, que lo otro? Convencer al usuario de una tecnolog?a o la otra casi siempre se me sale del alcance contratado. Tambi?n se sale del alcance de este art?culo exponer cual puede ser la mejor, eso es muy amplio y depende mucho del contexto. As? pues este art?culo solo documenta como instalar el cliente de Google Drive en Debian Jessie a modo de nota personal que a futuro me servir? de referencia.

El paquete obsoleto Grive en Debian Jessie

La primera b?squeda en google me lleva al paquete oficial debian ?Grive? en?https://packages.debian.org/jessie/grive?no sirve puesto despu?s de investigar est? obsoleto debido a que fue programado para un API de google anterior (Usa el ?Document List API? la cual Google termin?). No se debe instalar o si se tiene instalado borrelo con el siguiente comando (como root):

# apt-get remove -f grive

Instalando Grive2 en Debian Jessie

Buscando alternativas al obsoleto Grive, encontr? Grive2?http://yourcmc.ru/wiki/Grive2?el cual es un Fork del antiguo Grive, pero usa la ?Drive REST API?, tal vez en un par de a?os cuando Google se cambie a la tecnolog?a de turno este art?culo tambi?n quedar? obsoleto.
Para su instalaci?n primero instalamos las dependencias necesarias (como root):

# apt-get install git cmake build-essential libgcrypt11-dev libyajl-dev libboost-all-dev libcurl4-openssl-dev libexpat1-dev libcppunit-dev binutils-dev git

Luego bajamos el c?digo fuente, compilamos e instalamos (como root):

# mkdir /opt/grive2
# cd /opt/grive2
# git clone https://github.com/vitalif/grive2
# mkdir build
# cd build
# cmake ..
# make -j4
# make install

Uso de Grive2

Como su usuario de trabajo se debe crear una carpeta para contener la sincronizaci?n. En mi caso de ejemplo cre? ?GoogleDrive?

# mkdir ~/GoogleDrive

Luego se debe ejecutar grive por primera vez dentro de la carpeta con el argumento ?-a? el cual sirve para solicitar los token de autorizaci?n, es decir que el comando se ejecuta y nos entrega una direcci?n web la cual debe pegarse en un navegador, una vez autorizado en el navegador nos retornar? un c?digo de autorizaci?n el cual debe pegarse de vuelta en el terminal completando de este modo la autenticaci?n por ?nica vez, si todo es correcto entonces comenzar? la sincronizaci?n. A continuaci?n los comandos con ejemplos de salida:

# cd ~/GoogleDrive

Tuve un error de ejecuci?n por que no encontraba el archivo ?.griveignore? por lo tanto debe crearse manualmente o fallar? la ejecuci?n ( supongo es un bug temporal)
# touch .griveignore

Iniciamos la sincronizaci?n:

# grive -a

Copio la URL en un navegador la cual nos llevar? a una p?gina t?pica de autorizaci?n

Despu?s de aceptar nos retorna un c?digo:

Pegamos el c?digo en el terminal y comenzar? la sincronizaci?n, la siguiente captura de terminal resume el proceso:

El uso diario de grive sencillamente es ejecutar el comando dentro de la carpeta GoogleDrive, lo cual se puede hacer manualmente o automatizar mediante un CRON, que en mi caso cre? una entrada para que se ejecute cada 30 minutos:

*/30 * * * * cd ~/GoogleDrive && grive >/dev/null 2>&1

El siguient es un ejemplo de CRON que genera un log con lo que sucede en cada ejecuci?n en el archivo ?/tmp/grivelog?:

*/30 * * * * cd ~/GoogleDrive && grive > /tmp/grivelog

Hay m?s t?cnicas como detectar cambios autom?ticos (soportados en otras aplicaciones), manejo de m?ltiples cuentas, etc.

??

Dudas, comentarios, sugerencias?

Sigueme en twitter?@josecely

Leave a comment