20

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:~$
39

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 '19 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 '19 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 '19 at 6:18
  • I had to sudo onedrive rather than plain onedrive to get the URI. – toonarmycaptain Jun 11 '20 at 2:00
7

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.

1

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 '19 at 5:59
0

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/

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

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

To install using the Ubuntu PPA

  1. Add the Ubuntu PPA
sudo add-apt-repository ppa:yann1ck/onedrive
sudo apt-get update
  1. Install 'onedrive' from the Ubuntu PPA
sudo apt install onedrive

For further details refer to:

For issues or support, open an issue ticket on GitHub

Not the answer you're looking for? Browse other questions tagged or ask your own question.