Because of this it's often essential for techies to be able to work directly in a Linux environment, especially for operating servers and for developing software that runs on them.
While Linux has a reputation for being primarily for coders and programmers, over the past couple of decades there have been moves to provide versions of Linux that are more friendly to ordinary users, such as by providing more of a graphic user interface (GUI) and be less reliant on command line use.
However, at its core Linux still remains important for development use, and there are specific distros available that care less for newbies from Windows and are configured specifically for various technical uses.
Here we'll look at the main Linux distros used by software developers, and feature the best of them.
- These are the best Linux training providers and online courses.
- Want your company or services to be added to this buyer’s guide? Please email your request to firstname.lastname@example.org with the URL of the buying guide in the subject line.
- 10 of the best Linux distros for privacy and security
- What's the best Linux distro for beginners?
- 10 of the most popular lightweight Linux distros
Best Linux distros for developers - at a glance
Unlike barebones distros like Arch Linux and Gentoo, Ubuntu is designed to be ideal for beginners, complete with a desktop interface and automatic updates.
Ubuntu is the chosen distro of the Android Open Source Project for building source files. The Android build is regularly tested using the most recent versions of Ubuntu.
You can also install other development environments using Ubuntu Make.
Ubuntu now supports the 'snaps' application packaging format, using the Snapcraft tool, which allows you to write apps in the programming language of your choice and package them with all the required dependencies. Visit the Ubuntu Developer portal here.
Debian is one of the oldest Linux distros and is built with stability in mind. All programs included with Debian have to meet the Debian Free Software Guidelines. Packages are carefully selected and tested for inclusion in the 'Stable' branch of Debian meaning that while some may be dated, there's very little chance of system instability, making this OS ideal for programmers.
The Debian website has extensive manuals, including a chapter on programming talking you through the basics of creating a script, compiling it, and using Autoconf to allow your scripts to be compiled on other Linux distros.
Like Fedora, CentOS is a free, community-based variant of Red Hat (a commercial version of Linux). Many of the packages are the same and theoretically it's possible to build a version of CentOS which is functionally identical to Red Hat itself, although this is difficult to achieve in practice.
This results in a highly stable system. The CentOS repository also contains the Developer Toolset, which boasts a range of essential programming tools.
For developers, the Xen virtualisation platform offers a way to compartmentalise your projects and run applications safely inside a virtual machine.
You can find instructions on how to do this and other developer tips in the excellent CentOS Wiki.
Fedora is a community supported derivative of the commercial distribution Red Hat Linux. It also enjoys the distinction of being the distro of choice of Linux kernel creator Linus Torvalds.
Aside from being very easy to set up and install, Fedora has a dedicated Developer Portal. Simply click 'Start a Project' to see dedicated guides on developing web, command line, desktop and mobile apps. There's also an excellent section on working with hardware devices such as Arduino.
If this wasn’t enough, the Fedora repositories also include Eclipse, a fully featured and multi-language IDE. Eclipse is probably best known for Java, but also has a C/C++ and PHP IDE. You can expand its functionality even further with plugins.
OpenSUSE (formerly SUSE Linux) is a distribution specifically designed for software developers and system administrators. Installation and system configuration is a breeze with the integrated YaST tool. This allows you to install all the '-devel' packages needed by developers with one click.
OpenSUSE comes preinstalled with all the basic tools a software developer needs, such as the Vim and Emacs text editors, build automation tools such as CMake and packaging tools like RPM. The operating system also comes with OBS (Open Build Service), a tool for developers to build software for various distros and platforms.
Arch Linux offers a powerful level of customisation during setup, allowing you to download and install only the packages you need. While this is definitely not for newbies to coding, the fact you can install only a minimal number of programs on your machine using the Arch Build System and Arch User Repository, reduces the possibility of anything interfering with your coding.
This means, for instance, that you can install a barebones window manager like i3 to be certain your system will respond quickly when using your chosen text editor. If you run into difficulty, the Arch Linux Wiki offers a helpful installation guide.
Named after the fast-swimming penguin, Gentoo is sometimes called a 'meta' distribution as users download and compile its source code manually according to their needs. This not only makes it a perfect match for the hardware requirements of your machine, but it allows you to decide exactly which versions of packages can be installed.
Gentoo suffered a minor setback a few years ago when its comprehensive Wiki went offline. Fortunately, it has since been restored and now includes the official Gentoo handbook. There's also a small diehard Gentoo following on Reddit if you need further help.
Solus is special in that it's one of the few Irish Linux distros, and also because it follows a curated rolling release model. The advantage of this is that once you've installed the OS, you can keep running updates rather than a major upgrade. Solus, however, tries to avoid installing extremely recent packages and beta software to maintain system stability.
Solus supports several editors and IDEs such as Atom, Idea and Gnome Builder, as well as the Git GUI, GitKraken. The Solus project website also claims that the OS supports a number of programming languages such as Go, Rust, PHP, Node.js and Ruby.
Puppy Linux is an extremely lightweight distro based on either Ubuntu or Slackware. The entire OS is only around 330MB in size, meaning it can be run entirely in RAM as well as installed to an ordinary hard disk. It comes with a minimal number of packages, although you can add more, such as devx which contains various development tools.
The Puppy Linux 'Wikka' details the programming languages supported by the OS. One notable language is BaCon, which can convert code written in BASIC to C.
The Wikka also has an extensive selection of tutorials on writing Bash scripts and getting started with Python.
Raspbian is the default operating system which is included with the Raspberry Pi. As the Pi was designed as an educational tool, Raspbian is the perfect OS for those interested in getting started with coding.
The Raspberry Pi website hosts some impressive guides on using the visual programming tool Scratch, which is used to create animations and games. There's also an excellent section on getting started with Python, which is supported out of the box.
Younger coders might prefer to learn to use the programming language for Minecraft Pi, a mini-version of the highly popular sandbox game.
- We've also featured the best Linux laptops.