Insync for Linux

Insync for Linux
Insync for LInux

Insync is the client-side software required to access various cloud-based storage accounts.

It is not free but if you have thrown Windows into the trashcan this is the solution for you.
There are a number of others available, but I don't have time to stuff about and wanted something that works across all three major cloud storage vendors, and this was it.

  • Google Drive
  • Microsoft OneDrive
  • Dropbox

I ditched Microsoft Windows as my daily runner in October. I need to fast track my Linux skills, and it worked.

Insync is here:

Google Drive, OneDrive and Dropbox Syncing - Insync
Sync your cloud and manage your files across Linux, Windows and macOS. Insync supports Google Drive, OneDrive, Sharepoint and Dropbox with advanced local sync features.

Installation

I have generated a script for installation. It is included here which is production‑ready, fleet‑safe, idempotent Insync installer that works cleanly across:

  • Linux Mint 22 (Zara) – Ubuntu 24.04 base
  • LMDE 7 (Gigi) – Debian 13 (Trixie) base
  • Debian 12 / 13
  • Ubuntu 22.04 / 24.04
  • All Mint Ubuntu‑based editions

And includes:

  • Root check
  • Full distro + codename detection
  • Correct upstream mapping
  • Fix for Mint Zara auto‑generated repo
  • Fix for LMDE 7 auto‑generated repo
  • Correct .sources format for modern Debian/Ubuntu
  • Cleanup of stale/broken repo entries
  • Idempotent behavior
  • Clear audit‑friendly output
#!/bin/bash
#
# install-insync.sh
# Unified installer for:
#   - Linux Mint (including Zara)
#   - LMDE 7 (Gigi)
#   - Debian 12/13+
#   - Ubuntu 22.04 / 24.04+
#
# Includes:
#   - Root check
#   - Correct repo mapping
#   - Fixes for Mint & LMDE auto-generated broken repos
#   - Correct .sources format for modern systems
#   - Idempotent behaviour
#   - Tested on Linux MintOS Zara & LMDE 7
#

set -euo pipefail

### --- Root check ---
if [[ "$EUID" -ne 0 ]]; then
    echo "ERROR: This script must be run as root."
    echo "Run again using: sudo $0"
    exit 1
fi

echo ">>> Installing Insync..."

### --- Step 1: Add Insync GPG key ---
curl -fsSL https://apt.insync.io/insynchq.gpg \
  | gpg --dearmor \
  | tee /usr/share/keyrings/insync.gpg >/dev/null

### --- Step 2: Detect distribution + codename ---
DISTRO=$(lsb_release -is | tr '[:upper:]' '[:lower:]')
CODENAME=$(lsb_release -cs)

echo ">>> Detected distro: $DISTRO, codename: $CODENAME"

### --- Step 3: Map Mint & LMDE to correct upstream repos ---

# Mint 22 (Zara) = Ubuntu 24.04 (Noble)
if [[ "$DISTRO" == "linuxmint" && "$CODENAME" == "zara" ]]; then
    BASE_DISTRO="ubuntu"
    BASE_CODENAME="noble"

# LMDE 7 (Gigi) = Debian 13 (Trixie)
elif [[ "$DISTRO" == "linuxmint" && "$CODENAME" == "gigi" ]]; then
    BASE_DISTRO="debian"
    BASE_CODENAME="trixie"

# LMDE 6 (Elsie) = Debian 11
elif [[ "$DISTRO" == "lmde" && "$CODENAME" == "elsie" ]]; then
    BASE_DISTRO="debian"
    BASE_CODENAME="bullseye"

# Standard Debian
elif [[ "$DISTRO" == "debian" ]]; then
    BASE_DISTRO="debian"
    BASE_CODENAME="$CODENAME"

# Standard Ubuntu / Mint Ubuntu-based
else
    BASE_DISTRO="$DISTRO"
    BASE_CODENAME="$CODENAME"
fi

echo ">>> Mapped to upstream: $BASE_DISTRO $BASE_CODENAME"

### --- Step 4: Disable Mint Zara auto-generated broken Insync repo ---
if [[ "$DISTRO" == "linuxmint" && "$CODENAME" == "zara" ]]; then
    echo ">>> Disabling Mint Zara auto-generated Insync repo..."

    sed -i '/apt\.insync\.io\/linuxmint/d' /etc/apt/sources.list.d/*.list || true
    sed -i '/apt\.insync\.io\/linuxmint/d' /etc/apt/sources.list || true

    echo "# Mint Zara auto-repo block for Insync" \
        > /etc/apt/sources.list.d/insync-mint-block.list
fi

### --- Step 5: Disable LMDE 7 auto-generated broken Insync repo ---
if [[ "$DISTRO" == "linuxmint" && "$CODENAME" == "gigi" ]]; then
    echo ">>> Disabling LMDE 7 auto-generated Insync repo..."

    sed -i '/apt\.insync\.io\/linuxmint/d' /etc/apt/sources.list.d/*.list || true
    sed -i '/apt\.insync\.io\/linuxmint/d' /etc/apt/sources.list || true

    echo "# LMDE 7 auto-repo block for Insync" \
        > /etc/apt/sources.list.d/insync-lmde-block.list

    rm -f /var/lib/apt/lists/*insync* || true
fi

### --- Step 6: Install repo using correct format ---
if [[ "$BASE_DISTRO" == "debian" || "$BASE_DISTRO" == "ubuntu" ]]; then

    cat <<EOF | tee /etc/apt/sources.list.d/insync.sources
Types: deb
URIs: http://apt.insync.io/${BASE_DISTRO}
Suites: ${BASE_CODENAME}
Components: non-free contrib
Signed-By: /usr/share/keyrings/insync.gpg
EOF

else
    echo "deb [signed-by=/usr/share/keyrings/insync.gpg] http://apt.insync.io/${BASE_DISTRO} ${BASE_CODENAME} non-free contrib" \
      | tee /etc/apt/sources.list.d/insync.list
fi

### --- Step 7: Update package lists ---
apt-get update -y

### --- Step 8: Install Insync ---
apt-get install -y insync

echo ">>> Insync installed successfully."

If for some reason you break the application on your distribution it is extremely untidy on resetting, in that it leaves data all over the place. If you do this, I highly suggest you refer to an AI to help you reset your workstation without requiring a reinstallation.

If you are desperate get in touch and I will send you my reset code which worked as I have just finished breaking, fixing, reinstallation and testing.

That's another project tested and dusted.

Anyhow - have fun.

#enoughsaid