Skip to content

Instantly share code, notes, and snippets.

@starlinq
Last active November 2, 2024 12:26
Show Gist options
  • Save starlinq/0f98c6d9339497bb8ac42d67f66f60eb to your computer and use it in GitHub Desktop.
Save starlinq/0f98c6d9339497bb8ac42d67f66f60eb to your computer and use it in GitHub Desktop.
How to Sync Microsoft OneDrive with Ubuntu 18.04 and 20.04 (64 bit)
layout title tags date
post
How to Sync Microsoft OneDrive with Ubuntu 18.04 and 20.04 (64 bit)
ubuntu-18.04, ubuntu-20.04
2020-04-23

There are many instructions to syncronize your files with OneDrive cloud-based storage in Linux. However they typically address multiple Linux distributions that often causes a confusion or an use of some commands which have not been actually tested before publishing. This instruction is for Ubuntu 18.04 and 20.04 (64 bit) only.

In order to install onedrive, first you need to install some dependencies and set up git.

Let us open the Terminal application and enter the following:

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

Lets us move to Downloads directory

cd ~/Downloads

DMD compiler installation

Ubuntu 18.04

Some instructions recommend using snap to install some dependencies, for example here:

If you are using Ubuntu 18.04 or newer, use snap to install dmd

I tried that and found that after such installation some dependencies are not met!

So I recommend you to install those dependencies using classical method like this:

sudo wget https://netcologne.dl.sourceforge.net/project/d-apt/files/d-apt.list -O /etc/apt/sources.list.d/d-apt.list
sudo apt-get update --allow-insecure-repositories
sudo apt-get -y --allow-unauthenticated install --reinstall d-apt-keyring
sudo apt-get update && sudo apt-get install dmd-compiler dub

Ubuntu 20.04

We download the 64-bit package from

wget http://downloads.dlang.org/releases/2.x/2.093.1/dmd_2.093.1-0_amd64.deb

and install it at system level

sudo dpkg -i dmd_2.093.1-0_amd64.deb

Then we clone the required repository files with git:

git clone https://github.com/abraunegg/onedrive.git

Then compile and install it:

cd onedrive
./configure
make
sudo make install

The next step, you need to authorize onedrive with Microsoft so it can access your account:

onedrive

Copy the web address appeared in the terminal window right after Authorize this app visiting:, then open any web browser and paste it into the web browser address line.

Log in into your account and grant the application permission to acess your account.

Wait for response ...

Then copy and paste the web address of response into corresponding part of the terminal window with prompt Enter the response uri:.

Now the installation has been done.

Before syncronization, let us create a onedrive directory for current user

mkdir -p ~/OneDrive

and copy a configuration file into default directory

cp config ~/.config/onedrive/config

Now we can leave the installation directory

cd

It is a time to check our current configuration

onedrive --display-config

You will see something like this

onedrive version                       = v2.4.0-25-g7f267a5
Config path                            = /home/yourcurrentusername/.config/onedrive
Config file found in config path       = true
Config option 'check_nosync'           = false
Config option 'sync_dir'               = /home/yourcurrentusername/OneDrive
Config option 'skip_dir'               = 
Config option 'skip_file'              = ~*|.~*|*.tmp
Config option 'skip_dotfiles'          = false
Config option 'skip_symlinks'          = false
Config option 'monitor_interval'       = 45
Config option 'min_notify_changes'     = 5
Config option 'log_dir'                = /var/log/onedrive/
Config option 'classify_as_big_delete' = 1000
Config option 'sync_root_files'        = false
Selective sync configured              = false

For one time sync, run

onedrive --synchronize

or if you want to monitor your OneDrive storage for changes

onedrive --monitor

Do not forget that onedrive doesn’t start when the user logs in. To run automatically when you log in, you can add onedrive --monitor command to your startup application.

@adilsonsf
Copy link

It really does what it promises. Thanks!
Distributor ID: Ubuntu
Description: Ubuntu 20.04.2 LTS
Release: 20.04
Codename: focal

@luiscamachocaballero
Copy link

I'm using Ubuntu 20.10. Despite the fact, I installed libcurl4-openssl-dev, my system answered:
rbm@hp-omen:~/Downloads$ git clone https://github.com/abraunegg/onedrive.git
Cloning into 'onedrive'...
/home/rbm/libexec/git-core/git-remote-https: /usr/lib/x86_64-linux-gnu/libcurl.so.4: version `CURL_OPENSSL_3' not found (required by /home/rbm/libexec/git-core/git-remote-https)

I'd appreciate any help

@abraunegg
Copy link

@luiscamachocaballero

Please follow the correct installation instructions - this document is not entirely accurate.

Please follow: https://github.com/abraunegg/onedrive/blob/master/docs/INSTALL.md

@siddharth-deshmukh
Copy link

Hi, I installed onedrive on Ubuntu 20 following your instructions and every thing worked for me. However, recently I had to change my password of one drive. How to update this on my local installation as now onedrive --monitor is giving error.

@abraunegg
Copy link

@siddharth-github
Please follow the correct support process. Commenting here is not the correct process.

@hanung665
Copy link

Thanks a lot. It works on my Ubuntu 20.4 flawlessly.

@psi-teja
Copy link

not able to authorize this app!!
link to Authorize not working

@abraunegg
Copy link

@saitejramu
Please follow the correct support process. Commenting here is not the correct process.

@rafael-ibanhez
Copy link

Thanks a lot!! have been trying to install this for a while now.
The only remark is that authorization only worked on google chrome on my case.
Thank you again

@NUS-Tim
Copy link

NUS-Tim commented Sep 23, 2021

Great tutorial! I finish all without meeting any problem. Thx bro!

@blaqvikin
Copy link

Awesome app, thanks mate.

@Ceciile
Copy link

Ceciile commented Oct 27, 2021

I have this issue, " segment violation (core generated " after i paste the URI that i get. Do someone has the same issue?

Hello, I meet this same issue as you, did you solve it finally? @alexarte

@abraunegg
Copy link

@Ceciile

I have this issue, " segment violation (core generated " after i paste the URI that i get. Do someone has the same issue?

Hello, I meet this same issue as you, did you solve it finally? @alexarte

Please stop using this gist page to install the client. The details listed on this gist are incorrect. Please follow the correct installation procedure as listed here: https://github.com/abraunegg/onedrive/blob/master/docs/INSTALL.md

@jfat-e
Copy link

jfat-e commented Feb 5, 2022

Hey I read through it a couple of times but is there a way to do this without browser access? Or how would I do this purely terminal based? Id be installing through ssh onto my headless server.

@abraunegg
Copy link

@jfat-e
Please review the actual GitHub site (documentation & discussions) rather than relying on this gist as your source of information.

@Zhenlin-Xu
Copy link

Great tutorial for Ubuntu user!

@GalaxiumNation
Copy link

How do I config so onedrive constantly checks and syncs files when I upload a new one to drive? If not how should I configure this?
And will this sync any new file I put in "OneDrive" folder (on ubuntu side) to OneDrive automatically? Because I'm trying to sync my memes from ubuntu to onedrive without having to upload them to onedrive in my browser.

@abraunegg
Copy link

@GalaxiumNation
Please dont post here ..... please post your query here: https://github.com/abraunegg/onedrive/discussions - as this is why this exists.

@GalaxiumNation
Copy link

Sorry, got it :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment