FedoraRHEL Based

How To Install OneDrive on Fedora 42

Install OneDrive on Fedora 42

Microsoft OneDrive remains one of the most widely used cloud storage solutions, offering seamless integration across Windows, macOS, iOS, and Android platforms. However, Linux users face a unique challenge: Microsoft does not provide an official OneDrive client for Linux systems. Fedora 42 users seeking to synchronize their OneDrive files don’t need to compromise on functionality. The abraunegg/onedrive project delivers a robust, feature-rich OneDrive client specifically designed for Linux environments.

This comprehensive guide walks you through multiple installation methods for OneDrive on Fedora 42, from the simplest repository-based approach to advanced source compilation. Whether you manage personal files, collaborate on Business accounts, or handle Office 365 documents, this tutorial covers everything needed to establish reliable cloud synchronization on your Fedora system. You’ll learn installation procedures, authentication processes, configuration optimization, troubleshooting techniques, and best practices for maintaining secure OneDrive access.

Fedora 42 includes OneDrive client version 2.5.7-1.fc42 in its official repositories, making installation straightforward for most users. Alternative solutions such as onedriver, rclone, and GNOME Online Accounts integration provide additional options depending on your specific requirements.

Prerequisites and Requirements

Before beginning the installation process, ensure your Fedora 42 system meets the necessary requirements. You need administrative privileges through sudo or root access to install packages and configure system services. An active internet connection enables package downloads and repository synchronization.

A valid Microsoft OneDrive account is essential, whether Personal, Business, Office 365, or SharePoint. The OneDrive client supports all account types with appropriate authentication. Basic terminal and command-line knowledge helps navigate the installation steps, though detailed instructions guide you through each command.

System resources should accommodate your OneDrive storage requirements. Consider available disk space for synchronized files, especially when dealing with large cloud storage accounts. The OneDrive client itself requires minimal system resources but depends on your synchronization volume.

Understanding OneDrive Client for Linux

The abraunegg/onedrive project represents the most actively maintained and feature-complete OneDrive client for Linux systems. Originally forked from the archived skilion/onedrive project, abraunegg’s implementation continues active development with regular updates and bug fixes. The client supports OneDrive Personal accounts, OneDrive for Business, Office 365, and SharePoint document libraries.

Key features distinguish this Linux client from basic synchronization tools. State caching ensures efficient synchronization by tracking file changes and maintaining local databases. Real-time file monitoring through inotify detects local changes instantly, triggering automatic uploads without manual intervention. Webhook support enables real-time remote updates, notifying your client when files change in the cloud.

Resumable uploads handle interrupted transfers gracefully, continuing from breakpoints rather than restarting entirely. Download validation verifies file integrity using checksums, ensuring data accuracy. Shared folder support allows collaboration on files shared by other OneDrive users. SharePoint integration connects to organizational document libraries for business workflows. National cloud deployment support accommodates regional Microsoft cloud services including Azure China and Azure Germany.

While functionally comparable to Windows OneDrive, the Linux client operates through command-line interfaces and systemd services rather than Explorer integration. This architecture provides flexibility for server deployments and headless systems.

Method 1: Installing OneDrive from Fedora Official Repositories

Checking Package Availability

Fedora 42 includes the OneDrive client in its official repositories, simplifying installation considerably. The current available version is onedrive-2.5.7-1.fc42, packaged and maintained by Fedora contributors. Before installation, verify package availability to confirm repository access.

Open your terminal application from the applications menu or press Ctrl+Alt+T. Query the package database with the following command:

dnf search onedrive

This command searches Fedora repositories for OneDrive-related packages. You should see the onedrive package listed with description information.

Installation Steps Using DNF

The DNF package manager handles OneDrive client installation along with all required dependencies. Begin by updating your system packages to ensure compatibility:

sudo dnf update

This command refreshes repository metadata and updates installed packages to their latest versions. Wait for the update process to complete before proceeding.

Install the OneDrive client using DNF:

sudo dnf install onedrive

DNF automatically resolves dependencies including D runtime libraries, SQLite packages, and libcurl components. Confirm the installation when prompted by typing ‘y’ and pressing Enter. The installation process downloads packages and configures the OneDrive binary.

Verify successful installation by checking the installed version:

onedrive --version

This command displays the OneDrive client version information, confirming proper installation. You should see output indicating version 2.5.7 or similar.

Post-Installation Verification

Confirm the OneDrive binary installed correctly by checking its location:

which onedrive

The command returns the binary path, typically /usr/bin/onedrive. Verify systemd service files exist for user-level service management:

ls /usr/lib/systemd/user/onedrive*

This lists OneDrive service configuration files necessary for automatic synchronization. Test basic command execution to ensure functionality:

onedrive --help

The help output displays available command-line options and parameters, confirming operational readiness.

Method 2: Installing OneDrive from Source

Installing Build Dependencies

Source compilation provides access to the latest development features and custom configuration options. This method requires additional build tools and development libraries not included in standard installations.

Install the D programming language compiler, required for building OneDrive:

sudo dnf install ldc

LDC (LLVM D Compiler) compiles the OneDrive source code efficiently. Alternatively, DMD (Digital Mars D Compiler) works but LDC typically produces better optimized binaries.

Install libcurl development packages for network operations:

sudo dnf install libcurl-devel

Install SQLite development libraries for local database management:

sudo dnf install sqlite-devel

Install additional dependencies for notifications and compilation tools:

sudo dnf install libnotify-devel make pkg-config git

These packages enable desktop notifications and provide build utilities.

Downloading and Compiling Source Code

Clone the official GitHub repository to download source code:

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

This creates a local copy of the OneDrive client source code. Navigate to the source directory and configure the build:

./configure

The configure script detects your system configuration and prepares compilation parameters. Compile the source code:

make

Compilation takes several minutes depending on system performance. The make process builds the OneDrive binary from source files. Install the compiled binary system-wide:

sudo make install

This copies the binary to /usr/local/bin/ and installs service files.

When to Use Source Installation

Source installation benefits users requiring cutting-edge features before official release. The GitHub master branch contains the latest bug fixes and enhancements not yet available in packaged versions. Troubleshooting specific issues sometimes requires testing development code. Custom compilation flags optimize performance for specific hardware configurations.

Initial Configuration and Authentication

First-Time Authorization

OneDrive client requires OAuth2 authentication to access your Microsoft account. Run the client for initial setup:

onedrive

The first execution prompts for authorization. The client displays a URL starting with https://login.microsoftonline.com/. Copy this URL and open it in your web browser.

Sign in to your Microsoft account when prompted. Grant the OneDrive client permission to access your files. Microsoft redirects to a blank page displaying a URL containing your authorization response code. Copy the entire redirected URL from your browser’s address bar. Return to your terminal and paste the URL when prompted.

The client processes the authentication response and stores access tokens. Successful authorization displays a confirmation message.

Configuration File Setup

OneDrive stores configuration in ~/.config/onedrive/config. The initial run creates this directory structure automatically. View default configuration:

cat ~/.config/onedrive/config

An empty or minimal configuration file uses default settings. Create a custom configuration by editing this file:

nano ~/.config/onedrive/config

Basic parameters control synchronization behavior including sync directory location, selective sync rules, and monitoring options.

Testing Initial Synchronization

Perform a manual synchronization to verify configuration:

onedrive --synchronize

This command downloads your OneDrive files to the local sync directory. Monitor progress as the client lists synchronized items. Default synchronization creates a ~/OneDrive directory containing your cloud files. Verify files downloaded correctly:

ls ~/OneDrive

Your OneDrive folder structure appears in the local directory.

Advanced Configuration Options

Sync Directory Customization

Default synchronization uses ~/OneDrive as the local folder. Change this location by editing the configuration file:

nano ~/.config/onedrive/config

Add the following line to specify a custom directory:

sync_dir = "/home/username/CustomOneDrive"

Replace /home/username/CustomOneDrive with your preferred path. Multiple sync directories enable separate synchronization for different OneDrive accounts or SharePoint sites.

Selective Synchronization

Large OneDrive accounts benefit from selective synchronization to conserve local storage. Create exclusion rules for files or directories you don’t need locally.

Add skip patterns to your configuration file:

skip_file = "~*|.~*|*.tmp"
skip_dir = "Desktop|Documents/PersonalStuff"

The skip_file parameter uses patterns to exclude temporary files and hidden items. The skip_dir parameter prevents specific directories from synchronizing. Pipe characters (|) separate multiple patterns.

Sync specific directories using a sync list file:

nano ~/.config/onedrive/sync_list

List directories to synchronize, one per line:

/Work/Projects
/Documents/Important

Only specified paths synchronize when a sync_list exists. Configure Business Shared Items to access files shared within your organization:

sync_business_shared_items = "true"

This enables SharePoint and shared folder synchronization.

Real-Time Monitoring Configuration

Enable monitor mode for continuous synchronization:

onedrive --monitor

Monitor mode watches for local file changes and cloud updates simultaneously. Configure webhook support for instant remote notifications in your config file:

webhook_enabled = "true"

Webhooks notify the client immediately when cloud files change, eliminating polling delays. The inotify system monitors local file changes, with adjustable recursion limits.

Enable upload and download validation for data integrity:

download_only = "false"
upload_only = "false"
check_for_nomount = "true"

These settings ensure bidirectional synchronization with safety checks.

Setting Up OneDrive as a System Service

Enabling User Service

Systemd manages OneDrive as a user service for automatic synchronization. Enable the service to start with your user session:

systemctl --user enable onedrive

This command creates systemd links enabling automatic service startup. Start the OneDrive service immediately:

systemctl --user start onedrive

Verify the service runs correctly:

systemctl --user status onedrive

The status output displays service state, recent log entries, and process information. Active (running) status indicates successful service operation.

Configuring Auto-Start on Boot

User services configured with enable start automatically during login. Verify persistent service configuration:

systemctl --user is-enabled onedrive

The output “enabled” confirms automatic startup. Troubleshoot startup issues by examining service logs:

journalctl --user-unit onedrive -f

This displays real-time service logs for diagnosing problems.

Managing Service Operations

Stop the OneDrive service when needed:

systemctl --user stop onedrive

Restart the service after configuration changes:

systemctl --user restart onedrive

Disable automatic startup:

systemctl --user disable onedrive

These commands provide full service lifecycle control.

Alternative Installation Methods

Using OneDriveGUI

OneDriveGUI provides graphical management for OneDrive synchronization. This application wraps the command-line client with a user-friendly interface. Multi-account support enables managing multiple OneDrive accounts simultaneously.

Download the OneDriveGUI AppImage from the official GitHub releases page. Make the AppImage executable:

chmod +x OneDriveGUI-*.AppImage

Run the application:

./OneDriveGUI-*.AppImage

Access OneDriveGUI through your applications menu after initial setup.

GNOME Online Accounts Integration

GNOME 46 and newer versions include native OneDrive support through GNOME Online Accounts. Install required packages:

sudo dnf install gnome-control-center gnome-online-accounts

Open Settings application and navigate to Online Accounts. Click “Add an account” and select Microsoft 365. Sign in with your Microsoft credentials to enable integration. Nautilus file manager displays OneDrive files directly in the sidebar.

Alternative Clients (rclone, onedriver)

Rclone provides command-line OneDrive synchronization with advanced configuration options. Install rclone from Fedora repositories:

sudo dnf install rclone

Configure OneDrive backend through rclone’s interactive setup. Onedriver implements a FUSE filesystem for OneDrive, mounting cloud storage as a local directory. KDE Plasma users benefit from kio-onedrive integration providing native file manager access.

Troubleshooting Common Issues

Authentication Problems

OAuth token expiration requires re-authentication periodically. Remove existing authentication and re-authorize:

rm -rf ~/.config/onedrive
onedrive

Follow the authentication prompts to establish new credentials. Multi-factor authentication sometimes interferes with token generation. Disable MFA temporarily during initial setup if authentication fails repeatedly.

Business accounts with conditional access policies may block third-party clients. Contact your IT administrator to whitelist the OneDrive client application.

Synchronization Errors

Network connectivity issues prevent synchronization. Verify internet access:

ping -c 4 graph.microsoft.com

Successful pings indicate network connectivity to Microsoft services. File permission problems block synchronization. Ensure your user account owns the sync directory:

sudo chown -R $USER:$USER ~/OneDrive

Sync conflicts occur when files change simultaneously in the cloud and locally. The client creates conflict copies preserving both versions. Rate limiting and throttling by Microsoft temporarily restricts API calls during heavy usage. Wait and retry synchronization after cooling-off periods.

Debug Mode and Logging

Enable verbose logging for detailed troubleshooting information:

onedrive --synchronize --verbose

Debug output displays API calls, file operations, and error details. Check log file location for persistent logs:

cat ~/.config/onedrive/logs/onedrive.log

Network issues sometimes require forcing IPv4 connectivity:

onedrive --synchronize --force-ipv4

This bypasses IPv6 configuration problems. HTTP protocol fallback resolves certain connection issues:

onedrive --synchronize --force-http-11

This uses HTTP/1.1 instead of HTTP/2 for compatibility.

Best Practices and Security Considerations

Security Best Practices

Protect authentication tokens stored in ~/.config/onedrive/. Restrict directory permissions to prevent unauthorized access:

chmod 700 ~/.config/onedrive

This ensures only your user account reads authentication data. File permissions should prevent world-readable sensitive documents:

find ~/OneDrive -type f -exec chmod 600 {} \;

Use dry-run mode before major configuration changes:

onedrive --synchronize --dry-run

Dry-run mode simulates synchronization without modifying files, preventing accidental deletions. Data loss prevention features include local backup before deletion operations.

Performance Optimization

Bandwidth rate limiting prevents OneDrive from consuming all network capacity. Add rate limits to your configuration:

rate_limit = "5000000"

This value limits upload/download speed in bytes per second. Selective synchronization reduces resource usage for large accounts. Multi-threaded transfer settings improve performance:

sync_threads = "8"

This enables parallel file transfers. Monitor resource usage to identify bottlenecks:

systemctl --user status onedrive

Process information includes CPU and memory consumption.

Congratulations! You have successfully installed OneDrive. Thanks for using this tutorial for installing the OneDrive on your Fedora 42 Linux system. For additional help or useful information, we recommend you check the official OneDrive website.

VPS Manage Service Offer
If you don’t have time to do all of this stuff, or if this is not your area of expertise, we offer a service to do “VPS Manage Service Offer”, starting from $10 (Paypal payment). Please contact us to get the best deal!

r00t

r00t is an experienced Linux enthusiast and technical writer with a passion for open-source software. With years of hands-on experience in various Linux distributions, r00t has developed a deep understanding of the Linux ecosystem and its powerful tools. He holds certifications in SCE and has contributed to several open-source projects. r00t is dedicated to sharing her knowledge and expertise through well-researched and informative articles, helping others navigate the world of Linux with confidence.
Back to top button