Install on Debian

WARNING!!! If you use sudo apt-get install arduino you will probably get an extremely outdated and possibly non-standard version of the Arduino IDE. Official Linux 32 bit, 64 bit, and ARM builds are available for download here:

You can find official Linux installation instructions here:

Some of the information you will find in the following page may be outdated:

While you can install the Debian package as described below, you might want to install as described here to install a more recent version. (It also appears you can install both at the same time.)

Arduino has been packaged. The source builds two binary packages: arduino which is the full Java IDE, which depends on arduino-core which contains just enough of arduino to build and install sketches on the command-line using Martin Oldfield's Makefile (so, no IDE, and therefore no java dependency).

NOTE FOR PI USERS: The instructions on this page do not apply to Raspbian. If you use Raspbian, please only use the instructions here.

NOTE FOR UNO OWNERS: you need librxtx-java version 2.2pre2-3 or higher! It is available in unstable and wheezy (you can download it from

You will probably want to add the relevant repository to your /etc/apt/sources.list, then you should be able to do one of:

$ sudo apt-get install arduino


$ sudo apt-get install arduino-core

depending on what you want. Alternatively, you can follow the relevant package links above and grab the file directly, using dpkg to install it.


You might have to edit LD_LIBRARY_PATH to point to /usr/lib/jni. Extend your version of /usr/bin/arduino to invoke the following line before the java vm is called or export the LD_LIBRARY_PATH variable in your shell before invoking /usr/bin/arduino:

export LD_LIBRARY_PATH=/usr/lib/jni

previous non-packaged approach:

This guide was an update to the previous(Arduino 0010) which itself was an update of Arduino 0007. The new guide should work for Arduino 0013 and Debian Lenny.

1. Install dependencies

$ sudo apt-get install openjdk-6-jre gcc-avr avr-libc avrdude

binutils-avr should be installed automatically.

2. If you've already installed a form of java then

$ sudo update-alternatives --config java

and select the number relating to /usr/lib/jvm/java-6-openjdk/jre/bin/java.

3. Download the arduino ide and extract it.

4.On 64 bit Linux, check:

Install a minimal set of IA32 libraries packaged for use in a 64bit Debian system:

$apt-get install ia32-libs

6. Run the file "arduino".

It'll run and ask you where to put your sketches.

Configure your port. This is so you can read/write the arduino.

Tools/Serial Port/dev***

This should be all that is required to run 0010 ide in Debian Etch

Building the Arduino IDE

If you want to build the Arduino IDE from source, you will need to install a few more packages so that you can compile Java source files.

$ sudo apt-get install sun-java5-jdk sun-java5-bin unzip zip

To make sure that you are using the correct Java compiler (javac), run this command and select the number related to java-1.5:

update-alternatives --config javac

Arduino 1.0 and Arduino UNO on Debian squeeze (6.0.3)

These steps describe how to get started with an arduino uno and debian squeeze. First we will install all dependencies. Next we download and extract the latest arduino 1.0 binary for linux. And finally we adjust some settings. All really easy.

NOTE1: current arduino package in stable (squeeze) is version 0018+dfsg-6.

NOTE2: arduino 1.0 has just been accepted in unstable (sid).

1. Dependencies

REMEMBER: the arduino UNO requires librxtx-java 2.2pre2-3 or higher. The current stable package is pre2-2. The easiest way around this is to temporarily add testing to your sources. Testing currently uses pre2-10.

So edit your /etc/apt/sources.list (or use your favourite gui package manager) and add: deb wheezy main contrib non-free

Now install librxtx-java: sudo apt-get install librxtx-java

Remove the line again to use stable packages and do: sudo apt-get install gcc-avr avrdude gcc avr-libc libantlr-java libecj-java libjna-java liboro-java openjdk-6-jdk

2. Download the binary for linux 32 bit (or 64 bit, if you must)

links are here:

3. Extract the folder to a convenient location

For example ~/convenient/location/arduino-1.0

4. Now you can connect your arduino UNO and start the IDE

Double click the 'arduino' script or start it from the shell with:

sh arduino

You will notice that you can't select a Serial Port in the tools menu. This is probably because you need to add your user to a few groups to get it working.

NOTE1: you also have to connect your Arduino UNO to be able to select a serial port.

NOTE2: for a quick test you can run arduino as root with: sudo sh arduino. You should be able to select a Serial Port now.

5. Ofcourse you don't want to be running the arduino ide as root, so add your user to the groups tty and dialout like so:

sudo usermod -a -G tty yourUserName

sudo usermod -a -G dialout yourUserName

Log off and log on again for the changes to take effect!

NOTE: Some guides tell you to add your user to the uucp and/or don't add your user to the dialout group. If things don't work try those. Or check the group of your serial port. For example /dev/ttyACM0 (should be dialout). Then add your user to this group.