21

Problem with OneDrive. Recently I've installed OneDrive in my PC (Ubuntu 17.04) but I'm not able to configure or not able to sign in OneDrive through the terminal. Actually I've strucked here. Please look on to this

jujube@jujube:~$ onedrive
Authorize this app visiting:

https://login.live.com/oauth20_authorize.srf?client_id=000000004C15842F&scope=onedrive.readwrite%20offline_access&response_type=code&redirect_uri=https://login.live.com/oauth20_desktop.srf

Enter the response uri: https://login.microsoftonline.com/189de737-c93a-4f5a-8b68-6f4ca9941912/oauth2/authorize?client_id=00000003-0000-0ff1-ce00-000000000000&response_mode=form_post&response_type=code%20id_token&resource=00000003-0000-0ff1-ce00-000000000000&scope=openid&nonce=1263013103B7E6782803F03D5629B7D0FB1A68D46E17D09C-4B1B73911F92DE22FA330783ACEDE04C7C9991BB38BA7FCD9E3A9A900E0DB6AC&redirect_uri=https:%2F%2Fhclo365-my.sharepoint.com%2F_forms%2Fdefault.aspx&state=0&client-request-id=3fc31b9e-70d1-4000-78af-c23eabf4934b
Invalid uri
Could not initialize the OneDrive API
jujube@jujube:~$

7 Answers 7

40

I tried installing the package onedrive and it works just fine

sudo apt-get install onedrive

post install, run command

onedrive

This will provide a URI and ask you for a URI in return. Click the URI and login to your onedrive account (this package works only with personal onedrive for now). Good thing is it also works with two factor authentication - no app password is needed.

The URI will show a blank page, copy the web URI and paste it into the terminal where the onedrive command prompted for uri.

That's it. The tool will download entire Onedrive contents to $HOME/OneDrive directory.

The drive can be sync'ed in real time with

onedrive -m

I found the above command useful.

Any time simply run onedrive to sync the files. Use manual to find much more options to configure the sync to your need

man onedrive
4
  • Does anyone know the github page for this, if one exists?
    – Mark Deven
    Apr 24, 2019 at 15:32
  • 3
    for reference, here's onedrive app github: github.com/skilion/onedrive You can find there additional parameters, configuration, requirements etc.
    – mauek unak
    Jul 23, 2019 at 16:59
  • also for reference, the tool's author is AWOL since 2018.9, the successor fork is here: github.com/abraunegg/onedrive.
    – Elderry
    Dec 16, 2019 at 6:18
  • I had to sudo onedrive rather than plain onedrive to get the URI. Jun 11, 2020 at 2:00
8

I just gone through the following exercise, and OneDrive is partially working for me.

1.install OneDrive package via apt-get

$ sudo apt-get install -y onedrive

2.run onedrive command

$ onedrive Authorize this app visiting:

https://login.live.com/oauth20_authorize.srf?client_id=000000004C15842F&scope=onedrive.readwrite%20offline_access&response_type=code&redirect_uri=https://login.live.com/oauth20_desktop.srf

Enter the response uri:

3.copy and paste the given URL to any browser, then, following the regular Microsft OneDrive procedure. At the end, you get an empty web page.

4.copy the URL and paste it as the response to onedrive command. Here is what I got,

Enter the response uri: https://login.live.com/oauth20_desktop.srf?code=M5f2af202-6d1d-eb70-2007-6077fb7f93f0&lc=1033 Creating directory: ./我的最愛.My Favorites Creating directory: ./Calendar.web Creating directory: ./WallPapers Creating directory: ./Documents Creating directory: ./WallPapers/MacOS . . .

5.You will see $HOME/OneDrive folder been created with OneDrive content.

The reason I said I had a partial success is because the onedrive crashed with following error,

sqlite.SqliteException@src/sqlite.d(147): database is locked ---------------- ??:? [0x6223bf12] ??:? [0x62251a7b] ??:? [0x62250caf] ??:? _D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ6runAllMFZ9__lambda1MFZv [0xb3cc9a0e] ??:? [0x62255cf4] ??:? __libc_start_main [0xb345a3f0] Segmentation fault (core dumped)

Not sure if this is caused by running another onedrive instance while it was already busying sync'ing up the data.

I re-launched a fresh onedrive and it is still sync'ing up (downloading) my data.

0

There is a new onedrive api and it runs ok in ubuntu 18.10:

https://github.com/xybu/onedrived-dev read and follow the instructions

1
  • Hi. This looks harder than the good old onedrive package. What are the benefits? (their github isn't clear about it)
    – kubanczyk
    Feb 19, 2019 at 5:59
0

Another way is using Google Chrome.

  1. Install Google Chrome
  2. Open your home folder and press Ctrl+h to show hidden files.
  3. Open .local/share/applications folder.
  4. In this folder create OneDrive.desktop file.
  5. Fill Onedrive.desktop with this:

    [Desktop Entry]
    Name=OneDrive
    Exec=google-chrome --app="data:text/html,<html><body><script>window.resizeTo(800,600);window.location='https://onedrive.live.com/';</script></body></html>"
    Comment=
    Terminal=false
    Icon=web-microsoft-onedrive
    Type=Application
    

I'm using Linux Mint 19.2 with an icon pack which contains an icon for OneDrive, but you can specify any in the Icon string. As a result, you will have new app in your app menu, by clicking on it Chrome will open new window with your OneDrive folder. Don't forget to save password using Chrome and check the "Stay in system" option during authorization.

0

It's 2022 and I am surprised noone mentioned the [rclone][1] solution here.

I followed the instructions provided here and was able to get my MS OneDrive available on my Ubuntu 20.04 in less than 10 minutes.

0

The 'skilion' client was abandoned in 2018, and all development moved here: https://github.com/abraunegg/onedrive

Similarly, all python client development (xybu etc) was abandoned in 2016.

To install the 'onedrive' client correctly on Ubuntu you have 2 options:

  1. If using Ubuntu 18.x and below - compile from source
  2. If using Ubuntu 19.x and above - Use the Ubuntu PPA

Do not install the client from 'Universe' as this will install old versions of the client.

To compile from source:

  1. Install the dependencies
sudo apt install build-essential libcurl4-openssl-dev libsqlite3-dev pkg-config git curl
  1. Install the compiler
curl -fsS https://dlang.org/install.sh | bash -s dmd
  1. Activate the compiler
source ~/dlang/dmd-2.093.1/activate
  1. Clone the repo
git clone https://github.com/abraunegg/onedrive.git
  1. Build the client
cd onedrive; ./configure; make clean; make;
  1. Install
sudo make install

For further details refer to:

For issues or support, open an issue ticket on GitHub

-1

I just found a link with instructions on how to get OneDrive installed on Ubuntu.

  1. Run in Terminal git clone https://github.com/xybu92/onedrive-d.git
  2. If you dont have git installed, run sudo apt-get install git to install it and then run the last command in 1.
  3. cd onedrive-d to go into the directory you just downloaded.
  4. ./inst install to setup OneDrive.
  5. If the command in 4 says it requires some dependencies, run sudo apt-get install -f to fix them and it will finish setting up OneDrive after installing the dependencies or you can run #4 again to make sure it gets installed.
  6. Right after installation, a window should appear showing OneDrive preferences.
  7. Click Connect to OneDrive.com and you should be able to sign into your Microsoft account or OneDrive account.
  8. After logging in Accept any permissions it requests and save any preferences.
  9. Your OneDrive folder should now be in your home folder /home/user/OneDrive.

You will have to setup some additional things to get it to start automatically instead of running the daemon every time you boot and some additional info you.

  • OneDrive does not start up on startup so you will have to add onedrive-d in Startup Applications.
  • To make any changes you can open the preferences window with onedrive-prefs.
  • OneDrive also has a command line tool to make any changes like create a new directory. onedrive-cli.

More detailed info can be seen here: https://www.maketecheasier.com/sync-onedrive-linux/

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .