Siempre fui usuario de Linux, en concreto de Ubuntu, cuando empecé a trabajar de programador me compré un Mac y fui usuario de Mac OS durante años, hasta enero de este año. Tenía que renovar el portátil y ya no estaba dispuesto a pagar más por menos, así que me compré un portátil con Windows, llevo ya un par de años trabajando en remoto y en esta última empresa no me dieron portátil, así que trabajo con el mío personal y mi trabajo remunerado requiere de SO Windows (programador Dynamics 365 Business Central).
Pero en mi tiempo libre sigo estudiando y aprendiendo Python, así que decidí instalar Linux Mint en el otro disco duro del portátil. La operación fue un éxito y estoy encantado con el cambio, también me ayuda a desconectar del trabajo porque son dos entornos totalmente distintos.
El caso es que uso OneDrive para tener mis archivos disponibles en cualquier parte y en Linux no existe app de sincronización oficial, así que me puse a investigar y encontré en Github este proyecto que te permite tener en Linux tus archivos de OneDrive sincronizados.
He visto en muchos tutoriales en los que usando el apt-get install funciona correctamente, pero no ha sido mi caso, así que describo aquí los pasos que he seguido para que me funcione correctamente, siguiendo más o menos las instrucciones del repositorio GitHub. Instrucciones de instalación. Instrucciones de uso.
Dependencias necesarias antes de instalar OneDrive
He instalado estas referencias (alguna no las tenía):
sudo apt install build-essential
sudo apt install libcurl4-openssl-dev
sudo apt install libsqlite3-dev
sudo apt install pkg-config
sudo apt install git
sudo apt install curl
sudo apt install libnotify-dev
Luego he instalado el compilador DMD (después de instalar hay que activar el entorno):
curl -fsS https://dlang.org/install.sh | bash -s dmd
activamos el entorno ojo con la versión, ya que pueden haberla actualizado y la carpeta puede llamarse distinto a 2.094.1:
source ~/dlang/dmd-2.094.1/activate
Instalar OneDrive
Descargamos, compilamos e instalamos la herramienta:
git clone https://github.com/abraunegg/onedrive.git
cd onedrive
./configure
make clean; make;
sudo make install
Configuración
Una vez instalada, tenemos que asociarla a nuestra cuenta de Office 365, para ello, escribimos en la terminal:
onedrive
en la terminal aparecerá un enlace que tendremos que copiar y abrir en el navegador, o hacer click directamente en la terminal presionando la tecla Control+click de ratón.
Ahora tendremos que hacer login en nuestra cuenta y conceder permisos a la aplicación:

Si miramos la terminal, se ha quedado esperando a que pongamos una url, cuando nos hayamos logueado en la página de Microsoft, acabaremos en una web en blanco, copiamos la url y la pegamos en la terminal, si todo ha ido bien, nos aparecerá un mensaje confirmándolo.
Ejemplo para hacer el login:
[user@hostname ~]$ onedrive
Authorize this app visiting:
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=22c49a0d-d21c-4792-aed1-8f163c982546&scope=Files.ReadWrite%20Files.ReadWrite.all%20Sites.ReadWrite.All%20offline_access&response_type=code&redirect_uri=https://login.microsoftonline.com/common/oauth2/nativeclient
Enter the response uri: https://login.microsoftonline.com/common/oauth2/nativeclient?code=<redacted>
Application has been successfully authorised, however no additional command switches were provided.
Please use --help for further assistance in regards to running this application.
Uso
Antes de hacer la primera sincronización, comprobamos que los parámetros de configuración son los correctos (ruta de la carpeta OneDrive etc):
onedrive --display-config
Lanzamos la sincronización:
onedrive --synchronize
Si todo ha ido bien, veremos ya como se van descargando archivos a nuestra carpeta OneDrive.
Cambio en la configuración
Siempre podemos hacer cambios en la configuración, en mi caso, tengo activa la sincronización automática de las fotos del móvil y esta carpeta no quiero que esté actualizada en mi pc por el gran espacio que ocupa, este y otros parámetros se pueden cambiar en el propio fichero de configuración que se encuentra en: /home/usuario/onedrive/config
Por ejemplo, si no quisiésemos sincronización en la carpeta que yo he nombrado, había que cambiar esta línea:
skip_dir = "Álbum de cámara"
Esta línea puede añadirse tantas veces como se quiera si tenemos más de una carpeta que no queremos sincronizar.
Por último, cada vez que hagamos un cambio en la configuración, tenemos que ejecutar la sincronización con un parámetro más:
onedrive --synchronize --resync
fantastica publicaion de como resolver un problema frecuente, gracias
Me gustaLe gusta a 1 persona
¡Excelente post! Nos has salvado la vida a muchos. ¡Gracias!
Me gustaLe gusta a 1 persona
Gracias por la aportación, es lo que buscaba. Funciona perfectamente.
Me gustaLe gusta a 1 persona
hola me a funcionado pero no se si esta bien el cambio de la ruta que he puesto
Me gustaMe gusta
esta en un disco adicional de mi equipo. al ejecutar la sincronizacion muestra la lista de archivos que se están sincronizando pero no baja nada a la carpeta.
# sync_dir = «/media/respaldo/onedrive/OficinaFinal»
# skip_file = «~*|.~*|*.tmp»
Me gustaMe gusta
recuerda que tienes que copiar el archivo config en la ruta /root/.config/onedrive
Me gustaMe gusta
y tienes que quitarle el #
Me gustaMe gusta
Muchas gracias por tu aporte! Me ha funcionado sin problemas. Lo único es que tuve que cambiar ayer la contraseña de Onedrive y ahora no se como cambiarla acá en Linux…nos podrías indicar qué hacer en ese caso?
Gracias!
Me gustaMe gusta
Perdón, en el mismo mensaje sale que se debe hacer (logout y re-autorizar).
Saludos!
Me gustaMe gusta
Perfecto, me alegro de que lo hayas solucionado.
Un saludo.
Me gustaMe gusta