How to Install Arduino on Ubuntu 26.04, 24.04 and 22.04

Install Arduino 26.04, 24.04 and 22.04 on Ubuntu using APT, Snap, or Flatpak. Covers USB permissions, troubleshooting, and IDE 2.x setup.

Last updatedAuthorJoshua JamesRead time7 minGuide typeUbuntu

Arduino IDE on Ubuntu turns a desktop session into a board-programming workspace for writing sketches, installing board cores, managing libraries, and uploading code over USB. The main choice is how you want updates handled: Ubuntu’s repository gives you the distro-tested IDE 1.8.x package, Snap and Flatpak keep the app isolated, and Flathub also offers the newer IDE 2.x branch.

The graphical Arduino IDE and Arduino CLI serve different workflows. If you need terminal-only board, library, and sketch automation, Arduino CLI is a separate tool with its own official Arduino CLI installation workflow.

Install Arduino IDE on Ubuntu

Use the table to choose a package source before running commands. The APT package is the most integrated option, while Flatpak IDE 2.x is the practical package-managed path for the modern interface.

MethodChannelVersionUpdatesBest For
APT (Default Repository)Ubuntu ReposIDE 1.8.19Automatic via apt upgradeDistro-tested package and USB helper script
SnapSnapcraftIDE 1.8.19Automatic background updatesSnap users who accept community-maintained packaging
Flatpak (IDE 1.x)FlathubIDE 1.8.xAutomatic via flatpak updateFlatpak users who prefer the classic IDE
Flatpak (IDE 2.x)FlathubIDE 2.xAutomatic via flatpak updateModern IDE features without manual AppImage updates

Arduino’s official Linux downloads are AppImage and ZIP archives from the Arduino software page, not an official DEB package. Those manual downloads are useful when you specifically want upstream binaries, but they do not update through APT, Snap, or Flatpak, so they are not the main flow below.

For most users, the APT method is the simplest starting point because it integrates with Ubuntu’s package management and includes the arduino-add-groups utility for USB permissions. If you need IDE 2.x features such as autocomplete, board manager improvements, and live debugging, choose Flatpak IDE 2.x or Arduino’s official AppImage or ZIP download instead.

These steps cover Ubuntu 26.04 LTS, 24.04 LTS, and 22.04 LTS. The Ubuntu repository package installed successfully on all three supported LTS releases during validation, with Arduino IDE 1.8.19 and release-specific Debian revision suffixes.

Install Arduino IDE via Ubuntu Repository

With the APT method, Arduino IDE installs directly from Ubuntu’s repository. This approach provides a stable package, tracks system updates, and includes helper scripts for configuring USB permissions.

Update Your System Packages

Before installing new software, first refresh your package index and upgrade existing packages. Doing so ensures you have the latest security patches and also prevents dependency conflicts:

sudo apt update && sudo apt upgrade

If your account cannot run sudo commands yet, follow our guide to add a user to sudoers on Ubuntu before continuing.

Install Arduino IDE from APT

The arduino package comes from Ubuntu’s Universe component. Standard desktop installs usually have Universe enabled; on minimal systems, enable the Universe repository on Ubuntu first if APT cannot locate the package.

Install Arduino IDE and its dependencies with APT:

sudo apt install arduino

This command installs Arduino IDE 1.8.19, Java libraries, and AVR board tooling such as avrdude, gcc-avr, and arduino-core-avr. ARM board cores are normally installed later through the IDE’s Boards Manager rather than by installing Ubuntu’s gcc-arm-none-eabi package manually.

The package also adds the arduino-add-groups utility for configuring USB permissions.

Configure USB Permissions

Arduino boards connect via USB serial ports, which require your user account to be a member of the dialout group. Without this permission, the IDE cannot upload sketches to your board. Run the included helper script to add your user to the required group:

sudo arduino-add-groups

After running this command, log out and log back in for the group membership to take effect. Alternatively, if you prefer the manual approach, you can add yourself to the dialout group:

sudo usermod -aG dialout $USER

Verify the APT Installation

To confirm that Arduino IDE installed correctly, check which packages were installed:

apt-cache policy arduino

Expected output on Ubuntu 26.04 looks like this:

arduino:
  Installed: 2:1.8.19+dfsg1-5
  Candidate: 2:1.8.19+dfsg1-5
  Version table:
 *** 2:1.8.19+dfsg1-5 500
        500 http://au.archive.ubuntu.com/ubuntu resolute/universe amd64 Packages
        100 /var/lib/dpkg/status

The mirror hostname can differ by region. Ubuntu 26.04 currently uses the -5 revision, 24.04 uses -2, and 22.04 uses -1; all three provide Arduino IDE 1.8.19.

Install Arduino IDE via Snap

Snap provides a sandboxed installation that runs independently of your system libraries. This method is convenient if you prefer automatic background updates and application isolation.

Verify Snap Availability

By default, Ubuntu includes Snap on standard desktop installations. On minimal Ubuntu systems where the snap command is missing, install the Snap daemon first:

sudo apt install snapd

Install the Arduino Snap

Once Snap is available, install Arduino IDE using the following command:

sudo snap install arduino

To verify the installation was successful, list installed Snap packages:

snap list arduino

Expected output:

Name     Version  Rev  Tracking       Publisher      Notes
arduino  1.8.19   85   latest/stable  snapcrafters*  -

The Snap version of Arduino IDE is community-maintained by Snapcrafters and may lag behind official Arduino releases. The stable channel currently provides Arduino IDE 1.8.19, so choose Flatpak IDE 2.x or Arduino’s official AppImage or ZIP download if you need the modern IDE.

Configure USB Permissions for Snap

The current Arduino snap auto-connects raw-usb, while serial-port remains disconnected unless a matching serial slot exists. Verify the interface state after installation:

snap connections arduino | grep -E 'raw-usb|serial-port'
raw-usb      arduino:raw-usb      :raw-usb  -
serial-port  arduino:serial-port  -         -

USB serial uploads still need your Ubuntu account in the dialout group:

sudo usermod -aG dialout $USER

Once you log out and back in, the group changes will take effect.

Install Arduino IDE via Flatpak

With Flatpak, Arduino IDE runs in a sandbox with its own runtime libraries. Flathub hosts both Arduino IDE 1.x for the classic interface and Arduino IDE 2.x for the modern interface.

Flatpak is not pre-installed on Ubuntu. If you have not set it up yet, follow our guide to install Flatpak on Ubuntu before continuing.

Enable the Flathub Repository

Add the Flathub repository at system scope if it is not already configured:

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

Confirm that the remote exists before installing the app:

flatpak remotes --columns=name,options
flathub system

Install Arduino IDE 1.x with Flatpak

Arduino IDE 1.x provides the classic interface that many long-time users prefer. To install it, run:

sudo flatpak install flathub cc.arduino.arduinoide -y

Install Arduino IDE 2.x with Flatpak

Arduino IDE 2.x is a complete rewrite with a modern interface, code autocompletion, syntax highlighting, and an integrated live debugger. To install it, run:

sudo flatpak install flathub cc.arduino.IDE2 -y

The Flatpak version of Arduino IDE 2.x is community-maintained and not officially supported by Arduino. For issues specific to the Flatpak wrapper, report them to the Flathub issue tracker rather than Arduino’s official support channels.

Configure USB Permissions for Flatpak

The Flathub manifests for both Arduino IDE 1.x and 2.x currently request devices=all, so do not add a redundant Flatpak device override. Your Ubuntu user still needs access to serial devices through the dialout group:

sudo usermod -aG dialout $USER

After logging out and back in, verify the Flatpak installation:

flatpak list --app --columns=name,application,version,installation | grep -i arduino

Expected output for IDE 2.x:

Arduino IDE	cc.arduino.IDE2	2.x.x	system

Once group membership has refreshed, reconnect the board and select the detected port from the IDE.

Launch Arduino IDE

Once the installation completes, launch Arduino IDE from your desktop menu or with the terminal command that matches your installation method.

Launch from the Applications Menu

Open Activities, type “Arduino” in the search field, and click the Arduino IDE icon. If you installed both IDE 1.x and 2.x through Flatpak, you will see two entries; select the version you want to use.

Launch from Terminal

Alternatively, terminal launch commands vary by installation method:

APT installation:

arduino

Snap installation:

snap run arduino

Flatpak Arduino IDE 1.x:

flatpak run cc.arduino.arduinoide

Flatpak Arduino IDE 2.x:

flatpak run cc.arduino.IDE2

Troubleshooting Common Issues

Arduino Board Not Detected

When the IDE cannot detect your Arduino board, the most common cause is insufficient USB permissions. First, verify that your current login session includes the dialout group:

id -nG | tr ' ' '\n' | grep '^dialout$'
dialout

If dialout does not appear in the output, add yourself to the group and log out:

sudo usermod -aG dialout $USER

After logging back in, reconnect your Arduino board. Then, to verify the device is recognized, check the /dev directory:

ls /dev/ttyACM* /dev/ttyUSB* 2>/dev/null
/dev/ttyACM0

If this command shows devices like /dev/ttyACM0 or /dev/ttyUSB0, then your board is connected and recognized by the system.

Upload Fails with Permission Denied

Even after adding yourself to the dialout group, uploads may fail if you have not started a new login session. Remember that group memberships only take effect after logging out completely. If you are using a graphical session, logging out and back in should resolve this. For terminal sessions, you can verify your current group membership:

id

The output should include dialout in the groups list:

uid=1000(username) gid=1000(username) groups=1000(username),20(dialout),27(sudo)...

If dialout is missing from the current session after you already added the group, log out completely and sign in again.

Serial Monitor Shows Garbage Characters

If the Serial Monitor displays unreadable characters instead of expected output, verify that the baud rate in your sketch matches the baud rate selected in the Serial Monitor. The default is often 9600, while many projects use 115200 for faster communication.

Manage Arduino IDE

Update Arduino IDE

Each installation method uses its own update path:

APT installation:

sudo apt update && sudo apt install --only-upgrade arduino

Snap installation:

sudo snap refresh arduino

Flatpak installation:

sudo flatpak update -y

Remove Arduino IDE

Use the removal command that matches the installation method you chose.

APT removal:

sudo apt remove arduino

After removing the package, review unused dependencies before accepting the cleanup:

sudo apt autoremove

Snap removal:

sudo snap remove --purge arduino

Flatpak removal (IDE 1.x):

sudo flatpak remove cc.arduino.arduinoide -y

Flatpak removal (IDE 2.x):

sudo flatpak remove cc.arduino.IDE2 -y

Arduino IDE stores sketches and libraries in your home directory at ~/Arduino and ~/.arduino15. Back up sketches you want to keep before deleting these directories.

To remove Arduino user data after backing it up, run:

rm -rf "$HOME/Arduino" "$HOME/.arduino15"

Package removal does not undo the dialout membership you added for USB uploads. If Arduino was the only reason you needed serial-device access, remove your account from the group and start a new login session:

sudo gpasswd -d "$USER" dialout

Finally, clean up unused Flatpak runtimes after removing Flatpak apps:

sudo flatpak uninstall --unused -y

Conclusion

Arduino IDE is ready on Ubuntu once the package is installed, your account belongs to dialout, and the board appears as a serial device. Use APT when you want the distro-tested IDE 1.8.19 package and helper script, Snap when you already prefer Snap packages, or Flatpak IDE 2.x when you want the newer editor through package-managed updates.

For another Debian-family path, see our guide to install Arduino IDE on Debian Linux.

The following official resources provide additional documentation and community support:

Share this guide

Help another Linux user troubleshoot faster

Share this guide with someone troubleshooting Linux systems or saving it for later.

Follow LinuxCapable

Want more LinuxCapable guides in Google?

Add LinuxCapable as a preferred source so Google can show more of our fresh Linux tutorials in Top Stories and From your sources when relevant.

Add LinuxCapable as a preferred source on Google
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 coffeeBuy 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 in published comments:

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

Got a Question or Feedback?

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

Verify before posting: