How to Install Arduino on Debian (13, 12, 11)

Last updated Friday, March 13, 2026 10:46 am 11 min read

Writing and uploading sketches is easier once the IDE, USB permissions, and update path are sorted out before you connect a board. To install Arduino IDE on Debian, the first decision is whether you want Debian’s older distro-managed package or a newer Arduino IDE 2 path that follows upstream releases more closely.

On Debian, Arduino IDE handles sketch editing, board package management, compiling, and uploads to connected Arduino boards and compatible microcontrollers. Debian 13 and 12 currently ship Arduino 1.8.19 in the default package sources, Debian 11 ships 1.8.13, and both Flatpak and the official AppImage currently provide Arduino IDE 2.3.8.

Install Arduino IDE on Debian

MethodChannelVersionUpdatesBest For
APTDebian PackagesIDE 1.8.xThrough APTDebian-managed installs and wider architecture support
FlatpakFlathubIDE 2.xThrough FlatpakMost users who want Arduino IDE 2 with automatic updates
AppImageArduino DownloadsIDE 2.xManualPortable x86_64 installs without Flatpak
  • Want the newest Arduino IDE 2 build with automatic updates: choose Flatpak.
  • Want a Debian-managed package and the broadest architecture support: choose APT.
  • Want a portable x86_64 copy in your home directory: choose AppImage.

The APT package is still the legacy IDE branch, so Debian’s default package sources are best when you value integration over new features. If you specifically want Arduino IDE 2 on Debian, Flatpak and the official AppImage are the current upstream-aligned paths.

Install Arduino IDE from Debian APT on Debian

The Debian package installs the legacy Arduino IDE together with the Java runtime and AVR toolchain packages it needs. This is the simplest path when you want a repository-managed install on Debian 13, 12, or 11.

Update Debian before installing Arduino IDE from APT

Refresh package metadata and install pending upgrades first so the Arduino package resolves against your current system state.

sudo apt update && sudo apt upgrade

If your account does not have sudo access yet, follow our guide to add a user to sudoers on Debian before you continue.

Install Arduino IDE from Debian APT on Debian

Install the Debian package with APT:

sudo apt install arduino

This package adds the legacy Arduino IDE, its Java runtime, AVR upload tools, and Debian’s arduino-add-groups helper.

Verify the Debian APT Arduino install

Use APT metadata to confirm the install. This is safer over SSH than trying to launch the GUI application from a headless shell.

apt-cache policy arduino
arduino:
  Installed: 2:1.8.x+dfsg1-x
  Candidate: 2:1.8.x+dfsg1-x
  Version table:
 *** 2:1.8.x+dfsg1-x 500
        500 http://deb.debian.org/debian [release]/main amd64 Packages

Debian 13 and 12 currently resolve this package to 1.8.19, while Debian 11 still resolves it to 1.8.13 from the default package sources.

Install Arduino IDE 2 via Flatpak on Debian

Flatpak is the most practical Debian path when you want Arduino IDE 2 with automatic updates. The Flathub wrapper is community-maintained rather than published by Arduino, but it tracks the current IDE 2 release closely.

If Flatpak is not installed yet, first install Flatpak on Debian so the Flathub commands below have the required runtime and remote configuration.

Enable Flathub for Arduino IDE on Debian

Add the Flathub remote at system scope before installing the package. The --if-not-exists flag keeps Flatpak from erroring out if Flathub is already configured.

sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Install Arduino IDE 2 with Flatpak on Debian

Install the IDE 2 package from Flathub:

sudo flatpak install flathub cc.arduino.IDE2 -y

Because the remote was added with sudo, keep using sudo for Flatpak update and remove commands so you stay on the same system scope.

Verify the Arduino IDE Flatpak install on Debian

Check the installed Flatpak app list for the Arduino IDE 2 application ID:

flatpak list | grep cc.arduino.IDE2
Arduino IDE v2  cc.arduino.IDE2  2.x.x  stable  system

The current Flathub build resolves to Arduino IDE 2.3.8.

Install Arduino IDE 2 via AppImage on Debian

The official AppImage is useful when you want a portable Arduino IDE 2 install without Flatpak. Updates stay manual, and Arduino currently publishes the Linux AppImage as a 64-bit x86_64 download, so Debian arm64 systems should use APT or Flatpak instead.

Install Arduino IDE AppImage dependencies on Debian

The AppImage needs wget for the automated download and a FUSE 2 library to mount the application bundle. Debian 13 renamed the library package to libfuse2t64, while Debian 12 and 11 still use libfuse2. If you do not use it often, our wget command examples guide explains the basics behind the download step.

On Debian 13:

sudo apt install wget libfuse2t64

On Debian 12 or Debian 11:

sudo apt install wget libfuse2

Download the latest Arduino IDE AppImage on Debian

Start by asking GitHub for the newest Linux AppImage URL. Keep the same terminal session open for the next block so the APPIMAGE_URL variable stays available.

mkdir -p "$HOME/Applications"
cd "$HOME/Applications"
APPIMAGE_URL="$(wget -qO- https://api.github.com/repos/arduino/arduino-ide/releases/latest | grep browser_download_url | grep 'Linux_64bit.AppImage"' | head -n 1 | cut -d '"' -f 4)"
printf '%s\n' "$APPIMAGE_URL"
https://github.com/arduino/arduino-ide/releases/download/2.3.8/arduino-ide_2.3.8_Linux_64bit.AppImage

Once the URL looks correct, download the file into a fixed local name and make it executable. Keeping the saved filename fixed makes later updates easier because the next download replaces the same local AppImage.

wget -O arduino-ide-latest.AppImage "$APPIMAGE_URL"
chmod +x arduino-ide-latest.AppImage

Verify the Arduino IDE AppImage download on Debian

Confirm that the file exists and has execute permissions:

ls -lh "$HOME/Applications/arduino-ide-latest.AppImage"
-rwxr-xr-x 1 username username 193M Mar 13 08:46 /home/username/Applications/arduino-ide-latest.AppImage

Launch the Arduino IDE AppImage on Debian

Start the AppImage from a graphical desktop session:

"$HOME/Applications/arduino-ide-latest.AppImage"

If you start the AppImage from an SSH-only shell, it can fail with display errors instead of opening the IDE. Use a local desktop session when you want to launch the GUI.

Grant Arduino board access on Debian

APT, Flatpak, and AppImage installs all rely on the same serial device permissions when you upload sketches to boards that appear as /dev/ttyACM* or /dev/ttyUSB*.

Add your user to the dialout group on Debian

Run one command that works across all three installation methods. The $USER variable expands to your current login name.

sudo usermod -aG dialout $USER

If you installed the Debian APT package, Debian also includes the arduino-add-groups helper. The manual command above is easier to document because it works for APT, Flatpak, and AppImage alike.

Verify dialout access on Debian

Sign out and back in, then confirm that dialout appears in your active group list.

id -nG
joshua sudo audio video dialout

If dialout is missing, the old login session is still active. Start a new desktop login before testing uploads again.

Launch Arduino IDE on Debian

Arduino IDE is a graphical application, so start it from a desktop session even if you used SSH for the install steps. Remote shells are still fine for package checks, but they are not a reliable place to launch the GUI.

Launch Arduino IDE from the Debian terminal

Use the launcher command that matches the method you installed.

For the Debian APT package:

arduino

For the Flathub package:

flatpak run cc.arduino.IDE2

For the official AppImage:

"$HOME/Applications/arduino-ide-latest.AppImage"

Open Arduino IDE from the Debian applications menu

APT and Flatpak installs add a launcher to the applications menu. The AppImage keeps working from your home directory unless you decide to create a separate desktop launcher for it later.

  • Open the activities overview or application menu in your Debian desktop.
  • Search for Arduino or Arduino IDE.
  • Select the launcher that matches the package you installed.

If you keep sketches in version control, it also helps to install Git on Debian before you start larger board or library projects.

Update or remove Arduino IDE on Debian

Use method-specific maintenance commands so you only touch the build you installed.

Update Arduino IDE from Debian APT on Debian

APT upgrades only the Arduino package when a newer Debian build is available.

sudo apt install --only-upgrade arduino

Update Arduino IDE from Flatpak on Debian

Because the install used system scope, keep the update at system scope too.

sudo flatpak update cc.arduino.IDE2

Update the Arduino IDE AppImage on Debian

Use method 1 when you only want a quick manual refresh. Use method 2 when you want a reusable updater script you can run later without rebuilding the command each time.

Method 1: Refresh the Arduino IDE AppImage with direct commands on Debian

Resolve the latest AppImage URL first, then keep using the same terminal session for the download block so APPIMAGE_URL stays available.

cd "$HOME/Applications"
APPIMAGE_URL="$(wget -qO- https://api.github.com/repos/arduino/arduino-ide/releases/latest | grep browser_download_url | grep 'Linux_64bit.AppImage"' | head -n 1 | cut -d '"' -f 4)"
printf '%s\n' "$APPIMAGE_URL"
https://github.com/arduino/arduino-ide/releases/download/2.3.8/arduino-ide_2.3.8_Linux_64bit.AppImage

Once the URL looks correct, download the newest release into the same local filename and set a known executable mode.

wget -O arduino-ide-latest.AppImage "$APPIMAGE_URL"
chmod 755 arduino-ide-latest.AppImage
ls -lh arduino-ide-latest.AppImage
-rwxr-xr-x 1 username username 193M Mar 13 08:46 arduino-ide-latest.AppImage

Method 2: Update the Arduino IDE AppImage with a bash script on Debian

Create a small updater script if you want the refresh process wrapped into one reusable command you can call from any directory. This version installs the updater into /usr/local/bin, which is already in the standard Debian PATH, so you only need to remember one command name.

sudo tee /usr/local/bin/update-arduino-ide-appimage > /dev/null <<'EOF'
#!/usr/bin/env bash
set -euo pipefail

app_dir="$HOME/Applications"
appimage_path="$app_dir/arduino-ide-latest.AppImage"
api_url="https://api.github.com/repos/arduino/arduino-ide/releases/latest"

mkdir -p "$app_dir"

appimage_url="$(wget -qO- "$api_url" | grep browser_download_url | grep 'Linux_64bit.AppImage"' | head -n 1 | cut -d '"' -f 4)"

if [[ -z "$appimage_url" ]]; then
  echo "Could not find the latest Arduino IDE AppImage URL." >&2
  exit 1
fi

printf 'Downloading %s\n' "$appimage_url"
wget -O "$appimage_path" "$appimage_url"
chmod 755 "$appimage_path"
ls -lh "$appimage_path"
EOF
sudo chmod 755 /usr/local/bin/update-arduino-ide-appimage

The tee command writes the script into the root-owned /usr/local/bin directory, which a normal > redirection would not be allowed to modify with sudo. The set -euo pipefail line makes the script stop on errors instead of silently continuing with a bad or empty download URL.

update-arduino-ide-appimage
Downloading https://github.com/arduino/arduino-ide/releases/download/2.3.8/arduino-ide_2.3.8_Linux_64bit.AppImage
-rwxr-xr-x 1 username username 193M Mar 13 08:46 /home/username/Applications/arduino-ide-latest.AppImage

Remove Arduino IDE installed from Debian APT on Debian

Remove the Debian package first, then confirm APT shows it as no longer installed.

sudo apt remove arduino

APT can mark the AVR toolchain, Java runtime, and related helper packages as no longer required after you remove arduino. Review the list before you run sudo apt autoremove if you want a fuller cleanup.

sudo apt autoremove
apt-cache policy arduino
arduino:
  Installed: (none)
  Candidate: 1.8.x
  Version table:
     1.8.x 500
        500 http://deb.debian.org/debian [release]/main amd64 Packages

The candidate stays available because Debian can still reinstall the package later. What matters here is the Installed: (none) line.

Deleting ~/.arduino15 removes your board packages, cached indexes, and Arduino preferences. Keep that directory if you plan to reinstall and want to preserve your setup.

rm -rf ~/.arduino15

Remove Arduino IDE installed from Flatpak on Debian

Remove the system Flatpak package and then verify that Flatpak no longer sees it as installed.

sudo flatpak remove --delete-data -y cc.arduino.IDE2
sudo flatpak info cc.arduino.IDE2
error: cc.arduino.IDE2/*unspecified*/*unspecified* not installed

The system uninstall can still leave per-user data behind. Remove ~/.var/app/cc.arduino.IDE2 only when you want a full cleanup of that Flatpak profile.

rm -rf ~/.var/app/cc.arduino.IDE2

Remove the Arduino IDE AppImage on Debian

Deleting the AppImage file removes the portable install from your home directory.

rm -f "$HOME/Applications/arduino-ide-latest.AppImage"
test ! -e "$HOME/Applications/arduino-ide-latest.AppImage" && echo "AppImage removed"
AppImage removed

Fix Arduino IDE issues on Debian

Most Debian-side Arduino IDE problems come down to serial-port permissions or trying to start the GUI from a shell that has no graphical session attached.

Fix missing serial ports for Arduino IDE on Debian

If your board is connected but no upload port appears, Debian usually still needs the dialout group change or a fresh login session. Run id -nG again, make sure dialout is present, then reconnect the board and reopen the IDE.

The Flathub wrapper documents the same dialout requirement for USB access, so this fix applies to Flatpak as well as APT and AppImage installs.

Fix headless and AppImage launch errors for Arduino IDE on Debian

If you see HeadlessException, Missing X server or $DISPLAY, or similar dbus-launch messages, the IDE is being started without a graphical session. Launch it from Debian’s desktop session instead of a plain SSH shell.

For AppImage-specific failures, also confirm you installed the correct FUSE package for your release: libfuse2t64 on Debian 13, or libfuse2 on Debian 12 and 11.

Arduino IDE on Debian FAQ

Does Arduino offer an official Debian .deb download?

No official Debian .deb installer is published for this workflow. The official direct Linux download is the x86_64 AppImage from Arduino, while Debian’s own package sources provide the legacy arduino package and Flathub provides Arduino IDE 2.

Which Arduino IDE install method is best on Debian?

Use the Flatpak build if you want Arduino IDE 2 with automatic updates. Use the Debian package if you want a distro-managed 1.8.x install, and use the AppImage if you want a portable x86_64 copy without Flatpak.

Why can Arduino IDE not see my board on Debian?

Most upload failures come from missing dialout group membership. Run sudo usermod -aG dialout $USER, sign out and back in, then reconnect the board so Debian applies the new serial-port permissions to your session.

Does removing the Arduino IDE Flatpak delete all of its files?

Not always. sudo flatpak remove --delete-data -y cc.arduino.IDE2 removes the system installation, but a user data directory such as ~/.var/app/cc.arduino.IDE2 can still remain and may need manual removal if you want a full cleanup.

Conclusion

Arduino IDE on Debian is ready to use, whether you stayed with Debian’s 1.8.x package or moved to Arduino IDE 2 through Flatpak or the official AppImage. The next useful step is testing board access with a real device and, if you want cleaner project history, you can also install Git on Debian to track sketch changes over time.

Search LinuxCapable

Need another guide?

Search LinuxCapable for package installs, commands, troubleshooting, and follow-up guides related to what you just read.

Found this guide useful?

Support LinuxCapable to keep tutorials free and up to date.

Buy me a coffee Buy me a coffee

Before commenting, please review our Comments Policy.
Formatting tips for your comment

You can use basic HTML to format your comment. Useful tags currently allowed:

You type Result
<code>command</code> command
<strong>bold</strong> bold
<em>italic</em> italic
<blockquote>quote</blockquote> quote block

Leave a Comment

We read and reply to every comment - let us know how we can help or improve this guide.

Let us know you are human: