Popular Linux Distributions
Instructions
Q&A (0)
Notes (0)
Resources (0)
Saving Progress...
Resources
There are no resources for this lesson.
Notes can be saved and accessed anywhere in the course. They also double as bookmarks so you can quickly review important lesson material.
Imagine Linux as a powerful engine that runs a computer, but on its own, it's just a bare-bones skeleton. That's where Linux distributions come in. They take that raw power of the Linux kernel and dress it up with a complete operating system.
As this course primarily targets server infrastructure, our main concentration will be on server-based distros, excluding client distros like Ubuntu Desktop.
A Linux distribution, also known as a distro, is like a full package deal. It includes the Linux kernel, which is the brain behind the scenes that talks to the hardware and manages system resources. But that's not all! It also bundles together a whole bunch of software components like libraries, utilities, applications, and sometimes a graphical user interface (GUI) to make your life easier.
Think of it as a customized flavor of Linux. Each distribution has its own personality, preferences, and goals. It's like a different recipe cooked up by different chefs.
Below is a list of popular Linux distros. The "best" Linux distribution topic is a hotly debated one and not one we are making an argument for.
- Ubuntu Server
- AlmaLinux (similar to RHEL and CentOS)
- Debian Linux
- Fedora Server
- ArchLinux
- openSUSE
Choosing the right Linux distribution for your specific needs is a complex decision. It depends on various factors, such as your (or your team's) prior Linux experience or simply personal preference. To help you make an informed choice, consider the following key factors that differentiate Linux distributions:
- Package Management System
- Software Repository
- Default Desktop Environment
- Release Model
Let's look into each of these in more detail.
Package Management System
Each distribution has its own package management system, which handles software packages' installation, removal, and updates. Examples include APT (used by Debian and Ubuntu), DNF (used by Fedora), Pacman (used by Arch Linux), and Zypper (used by openSUSE). The package management system ensures smooth software management and dependency resolution.
But what does this mean? It means that besides using a different package manager on the backend, you will also use different commands to install and update software. In the table below, there are examples of how to install the nginx package using different package managers:
Package Manager | Update Command | Install Command |
---|---|---|
APT (Debian/Ubuntu) | sudo apt update | sudo apt install nginx |
DNF (Fedora) | sudo dnf update | sudo dnf install nginx |
Pacman (Arch Linux) | sudo pacman -Syu | sudo pacman -S nginx |
Zypper (openSUSE) | sudo zypper refresh | sudo zypper install nginx |
YUM (CentOS) | sudo yum update | sudo yum install nginx |
Software Repository
Linux distributions typically have software repositories, which are collections of pre-compiled software packages that users can easily install. These repositories contain a vast array of applications, libraries, and utilities, making it convenient for users to access and install software.
Using the official software repository provided by the Linux distribution itself is preferred due to trust, reliability, security, compatibility, and official support. Official repositories undergo testing, have secure packages, and are well-maintained for the specific distribution.
You can also add third-party repositories to Linux Distros. While these repositories may offer more software options, but they can be less reliable, have compatibility issues, and lack official support. It's important to balance the benefits and risks when considering third-party repositories.
Various Linux distributions have different ways to add third-party repositories. The table below gives you a rough idea of the different ways to get this done:
Distribution | Package Manager | Command to Add Repository | Command to Update Package Lists |
---|---|---|---|
Debian/Ubuntu | APT | Modify /etc/apt/sources.list or create files in /etc/apt/sources.list.d/ directory | sudo apt update |
Fedora | DNF | sudo dnf config-manager --add-repo <repository_url> | sudo dnf update |
Arch Linux | Pacman | Modify /etc/pacman.conf | sudo pacman -Sy |
openSUSE | Zypper | sudo zypper addrepo -f <repository_url> <repository_name> | sudo zypper refresh |
CentOS | YUM/DNF | Create .repo file in /etc/yum.repos.d/ directory | sudo yum update or sudo dnf update (depending on version) |
Default Desktop Environment
It is common for Linux server distros (like the ones you'll likely work on as a DevOps professional) not to include a desktop environment. These would rely solely on the Linux terminal, which means you need to be familiar with and comfortable executing common Linux administration tasks with the command line. This is most likely the type of Linux operating system you'll be interacting with if you're working in the DevOps field. The lack of a desktop environment has benefits such as improved performance and reduced storage usage.
You should expect to interact with desktop environments when you're working with client Linux distros like Ubuntu Desktop. It's common to use a Linux-based OS with a desktop environment when Linux is installed on a desktop, laptop, or local VM, for example.
A desktop environment provides a graphical interface and tools for users to interact with the operating system and is common for client operating systems you would load on your laptop or workstation. Different distributions offer various desktop environments, such as GNOME, KDE, Xfce, Cinnamon, or MATE. The choice of the default desktop environment can significantly impact the look, feel, and user experience of a distribution.
Release Model
Linux distributions follow different release models. Some distributions have fixed release cycles, where new versions are released at regular intervals with specific feature sets and updates. Others adopt a rolling release model, which offers continuous updates without distinct version releases, providing users with the latest software and features as they become available.
Release cycles vary too much between distros to discuss here, and I don't want to bore you to death with their details... Instead, when you choose to use a Linux distro, I highly encourage you to become familiar with their specific release cycle so you can keep your servers up-to-date and secure.
Here are some links to checkout the release cycles for the distros we've talked about so far:
That's it for this lesson! See you in the next one.