Installing or Upgrading using Distribution Packages or Building the OneDrive Client for Linux from source
This project has been packaged for the following Linux distributions as per below. The current client release is:
Only the current release version or greater is supported. Earlier versions are not supported and should not be installed or used.
Caution
Distribution packages may be of an older release when compared to the latest release that is available. If any package version indicator below is 'red' for your distribution, it is recommended that you build from source. Do not install the software from the available distribution package. If a package is out of date, please contact the package maintainer for resolution.
Distribution | Package Name & Package Link | PKG_Version | i686 | x86_64 | ARMHF | AARCH64 | Extra Details |
---|---|---|---|---|---|---|---|
Alpine Linux | onedrive | ❌ | ✔ | ❌ | ✔ | ||
Arch Linux Manjaro Linux |
onedrive-abraunegg | ✔ | ✔ | ✔ | ✔ | Install via: pamac build onedrive-abraunegg from the Arch Linux User Repository (AUR)Note: You must first install 'base-devel' as this is a pre-requisite for using the AUR Note: If asked regarding a provider for 'd-runtime' and 'd-compiler', select 'liblphobos' and 'ldc' Note: System must have at least 1GB of memory & 1GB swap space |
|
CentOS 8 | onedrive | ❌ | ✔ | ❌ | ✔ | Note: You must install the EPEL Repository first | |
CentOS 9 | onedrive | ❌ | ✔ | ❌ | ✔ | Note: You must install the EPEL Repository first | |
Debian 11 | onedrive | ✔ | ✔ | ✔ | ✔ | Note: Do not install from Debian Package Repositories as the package is obsolete and is not supported For a supported application version, it is recommended that for Debian 11 that you install from OpenSuSE Build Service using the Debian Package Install Instructions |
|
Debian 12 | onedrive | ✔ | ✔ | ✔ | ✔ | Note: Do not install from Debian Package Repositories as the package is obsolete and is not supported For a supported application version, it is recommended that for Debian 12 that you install from OpenSuSE Build Service using the Debian Package Install Instructions |
|
Debian Sid | onedrive | ✔ | ✔ | ✔ | ✔ | ||
Fedora | onedrive | ✔ | ✔ | ✔ | ✔ | ||
Gentoo | onedrive | No API Available | ✔ | ✔ | ❌ | ❌ | |
Homebrew | onedrive | ❌ | ✔ | ❌ | ❌ | ||
Linux Mint 20.x | onedrive | ❌ | ✔ | ✔ | ✔ | Note: Do not install from Linux Mint Repositories as the package is obsolete and is not supported For a supported application version, it is recommended that for Linux Mint that you install from OpenSuSE Build Service using the Ubuntu Package Install Instructions |
|
Linux Mint 21.x | onedrive | ❌ | ✔ | ✔ | ✔ | Note: Do not install from Linux Mint Repositories as the package is obsolete and is not supported For a supported application version, it is recommended that for Linux Mint that you install from OpenSuSE Build Service using the Ubuntu Package Install Instructions |
|
Linux Mint 22.x | onedrive | ❌ | ✔ | ✔ | ✔ | Note: Do not install from Linux Mint Repositories as the package is obsolete and is not supported For a supported application version, it is recommended that for Linux Mint that you install from OpenSuSE Build Service using the Ubuntu Package Install Instructions |
|
NixOS | onedrive | ❌ | ✔ | ❌ | ❌ | Use package onedrive either by adding it to configuration.nix or by using the command nix-env -iA <channel name>.onedrive . This does not install a service. To install a service, use unstable channel (will stabilize in 20.09) and add services.onedrive.enable=true in configuration.nix . You can also add a custom package using the services.onedrive.package option (recommended since package lags upstream). Enabling the service installs a default package too (based on the channel). You can also add multiple onedrive accounts trivially, see documentation. |
|
OpenSuSE | onedrive | ✔ | ✔ | ❌ | ❌ | ||
OpenSuSE Build Service | onedrive | No API Available | ✔ | ✔ | ✔ | ✔ | Package Build Service for Debian and Ubuntu |
Raspbian | onedrive | ❌ | ❌ | ✔ | ✔ | Note: Do not install from Raspbian Package Repositories as the package is obsolete and is not supported For a supported application version, it is recommended that for Raspbian that you install from OpenSuSE Build Service using the Debian Package Install Instructions |
|
Slackware | onedrive | ✔ | ✔ | ❌ | ❌ | ||
Solus | onedrive | ❌ | ✔ | ❌ | ❌ | ||
Ubuntu 20.04 | onedrive | ❌ | ✔ | ✔ | ✔ | Note: Do not install from Ubuntu Universe as the package is obsolete and is not supported For a supported application version, it is recommended that for Ubuntu that you install from OpenSuSE Build Service using the Ubuntu Package Install Instructions |
|
Ubuntu 22.04 | onedrive | ❌ | ✔ | ✔ | ✔ | Note: Do not install from Ubuntu Universe as the package is obsolete and is not supported For a supported application version, it is recommended that for Ubuntu that you install from OpenSuSE Build Service using the Ubuntu Package Install Instructions |
|
Ubuntu 23.04 | onedrive | ❌ | ✔ | ✔ | ✔ | Note: Do not install from Ubuntu Universe as the package is obsolete and is not supported For a supported application version, it is recommended that for Ubuntu that you install from OpenSuSE Build Service using the Ubuntu Package Install Instructions |
|
Ubuntu 24.04 | onedrive | ❌ | ✔ | ✔ | ✔ | Note: Do not install from Ubuntu Universe as the package is obsolete and is not supported For a supported application version, it is recommended that for Ubuntu that you install from OpenSuSE Build Service using the Ubuntu Package Install Instructions |
|
Void Linux | onedrive | ✔ | ✔ | ❌ | ❌ |
- For successful compilation of this application, it's crucial that the build environment is equipped with a minimum of 1GB of memory and an additional 1GB of swap space.
- Install the required distribution package dependencies covering the required development tools and development libraries for curl and sqlite
- Install the Digital Mars D Compiler (DMD) or LDC – the LLVM-based D Compiler
Important
To compile this application successfully, it is essential to use either DMD version 2.088.0 or higher, or LDC version 1.18.0 or higher. Ensuring compatibility and optimal performance necessitates the use of these specific versions or their more recent updates.
curl -fsS https://dlang.org/install.sh | bash -s dmd
curl -fsS https://dlang.org/install.sh | bash -s ldc
Ubuntu Linux 16.x LTS reached the end of its five-year LTS window on April 30th 2021 and is no longer supported.
Ubuntu Linux 18.x LTS reached the end of its five-year LTS window on May 31th 2023 and is no longer supported.
Debian 9 reached the end of its five-year support window on June 30th 2022 and is no longer supported.
These dependencies are also applicable for all Ubuntu based distributions such as:
- Lubuntu
- Linux Mint
- POP OS
- Peppermint OS
sudo apt install build-essential
sudo apt install libcurl4-openssl-dev libsqlite3-dev pkg-config git curl
curl -fsS https://dlang.org/install.sh | bash -s dmd
For notifications the following is also necessary:
sudo apt install libnotify-dev
CentOS 6.x and RHEL 6.x reached End of Life status on November 30th 2020 and is no longer supported.
CentOS 7.x and RHEL 7.x reached End of Life status on June 30th 2024 and is no longer supported.
sudo dnf groupinstall 'Development Tools'
sudo dnf install libcurl-devel sqlite-devel
curl -fsS https://dlang.org/install.sh | bash -s dmd
For notifications the following is also necessary:
sudo dnf install libnotify-devel
sudo pacman -S make pkg-config curl sqlite ldc
For notifications the following is also necessary:
sudo pacman -S libnotify
Caution
The minimum LDC compiler version required to compile this application is 1.18.0, which is not available for Debian Buster or distributions based on Debian Buster. You are advised to first upgrade your platform distribution to one that is based on Debian Bullseye (Debian 11) or later.
These instructions were validated using:
Linux raspberrypi 5.10.92-v8+ #1514 SMP PREEMPT Mon Jan 17 17:39:38 GMT 2022 aarch64
(2022-01-28-raspios-bullseye-armhf-lite) using Raspberry Pi 3B (revision 1.2)Linux raspberrypi 5.10.92-v8+ #1514 SMP PREEMPT Mon Jan 17 17:39:38 GMT 2022 aarch64
(2022-01-28-raspios-bullseye-arm64-lite) using Raspberry Pi 3B (revision 1.2)Linux ubuntu 5.15.0-1005-raspi #5-Ubuntu SMP PREEMPT Mon Apr 4 12:21:48 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux
(ubuntu-22.04-preinstalled-server-arm64+raspi) using Raspberry Pi 3B (revision 1.2)
Important
For successful compilation of this application, it's crucial that the build environment is equipped with a minimum of 1GB of memory and an additional 1GB of swap space. To verify your system's swap space availability, you can use the swapon
command. Ensuring these requirements are met is vital for the application's compilation process.
sudo apt install build-essential
sudo apt install libcurl4-openssl-dev libsqlite3-dev pkg-config git curl ldc
For notifications the following is also necessary:
sudo apt install libnotify-dev
sudo emerge app-portage/layman
sudo layman -a dlang
Add ebuild from contrib/gentoo to a local overlay to use.
For notifications the following is also necessary:
sudo emerge x11-libs/libnotify
sudo zypper addrepo https://download.opensuse.org/repositories/devel:languages:D/openSUSE_Leap_15.0/devel:languages:D.repo
sudo zypper refresh
sudo zypper install gcc git libcurl-devel sqlite3-devel dmd phobos-devel phobos-devel-static
For notifications the following is also necessary:
sudo zypper install libnotify-devel
sudo zypper addrepo https://download.opensuse.org/repositories/devel:languages:D/openSUSE_Leap_15.1/devel:languages:D.repo
sudo zypper refresh
sudo zypper install gcc git libcurl-devel sqlite3-devel dmd phobos-devel phobos-devel-static
For notifications the following is also necessary:
sudo zypper install libnotify-devel
sudo zypper refresh
sudo zypper install gcc git libcurl-devel sqlite3-devel dmd phobos-devel phobos-devel-static
For notifications the following is also necessary:
sudo zypper install libnotify-devel
- Install the platform dependencies for your Linux OS
- Activate your DMD or LDC compiler
- Clone the GitHub repository, run configure and make, then install
- Deactivate your DMD or LDC compiler
Before cloning and compiling, if you have installed DMD via curl for your OS, you will need to activate DMD as per example below:
Run `source ~/dlang/dmd-2.088.0/activate` in your shell to use dmd-2.088.0.
This will setup PATH, LIBRARY_PATH, LD_LIBRARY_PATH, DMD, DC, and PS1.
Run `deactivate` later on to restore your environment.
Without performing this step, the compilation process will fail.
Note
Depending on your DMD version, substitute 2.088.0
above with your DMD version that is installed.
git clone https://github.com/abraunegg/onedrive.git
cd onedrive
./configure
make clean; make;
sudo make install
GUI notification support can be enabled using the configure
switch --enable-notifications
.
Systemd service files are installed in the appropriate directories on the system,
as provided by pkg-config systemd
settings. If the need for overriding the
deduced path are necessary, the two options --with-systemdsystemunitdir
(for
the Systemd system unit location), and --with-systemduserunitdir
(for the
Systemd user unit location) can be specified. Passing in no
to one of these
options disabled service file installation.
By passing --enable-debug
to the configure
call, onedrive
gets built with additional debug
information, useful (for example) to get perf
-issued figures.
By passing --enable-completions
to the configure
call, shell completion functions are
installed for bash
, zsh
and fish
. The installation directories are determined
as far as possible automatically, but can be overridden by passing
--with-bash-completion-dir=<DIR>
, --with-zsh-completion-dir=<DIR>
, and
--with-fish-completion-dir=<DIR>
to configure
.
Building using a different compiler (for example LDC)
ARMHF Architecture (Raspbian) and ARM64 Architecture (Ubuntu 22.x / Debian 11 / Debian 12 / Raspbian)
Caution
The minimum LDC compiler version required to compile this application is 1.18.0, which is not available for Debian Buster or distributions based on Debian Buster. You are advised to first upgrade your platform distribution to one that is based on Debian Bullseye (Debian 11) or later.
Important
For successful compilation of this application, it's crucial that the build environment is equipped with a minimum of 1GB of memory and an additional 1GB of swap space. To verify your system's swap space availability, you can use the swapon
command. Ensuring these requirements are met is vital for the application's compilation process.
Note
The 'configure' step will detect the correct version of LDC to be used when compiling the client under ARMHF and ARM64 cpu architectures.
git clone https://github.com/abraunegg/onedrive.git
cd onedrive
./configure; make clean; make;
sudo make install
If you have installed the client from a distribution package, the client will be updated when the distribution package is updated by the package maintainer and will be updated to the new application version when you perform your package update.
If you have built the client from source, to upgrade your client, it is recommended that you first uninstall your existing 'onedrive' binary (see below), then re-install the client by re-cloning, re-compiling and re-installing the client again to install the new version.
Note
Following the uninstall process will remove all client components including all systemd files, including any custom files created for specific access such as SharePoint Libraries.
You can optionally choose to not perform this uninstallation step, and simply re-install the client by re-cloning, re-compiling and re-installing the client again - however the risk here is that you end up with two onedrive client binaries on your system, and depending on your system search path preferences, this will determine which binary is used.
Caution
Before performing any upgrade, it is highly recommended for you to stop any running systemd service if applicable to ensure that these services are restarted using the updated client version.
Post re-install, to confirm that you have the new version of the client installed, use onedrive --version
to determine the client version that is now installed.
Follow your distribution documentation to uninstall the package that you installed
From within your GitHub repository clone, perform the following to remove the 'onedrive' binary:
sudo make uninstall
If you are not upgrading your client, to remove your application state and configuration, perform the following additional step:
rm -rf ~/.config/onedrive
Important
If you are using the --confdir option
, substitute ~/.config/onedrive
for the correct directory storing your client configuration.
If you want to just delete the application key, but keep the items database:
rm -f ~/.config/onedrive/refresh_token