Chapter 6. Applications, Package Management, and Containers
In this chapter, we talk about applications in Linux. Sometimes, the term application (or simply app) is used interchangeably with program, binary, or executable. We’ll explain the differences between these terms and initially will be focusing on terminology, including the definition of applications and packages.
We discuss how Linux starts up and brings all the services we depend on into being.
This is also known as the boot process. We will focus on init systems,
specifically on the de-facto standard, the
We then move on to package management, where we first review the application supply chain in general terms and see what the different moving parts are about. Then, to give you some context about existing mechanisms and challenges, we focus on how apps were traditionally distributed and installed. We discuss package management in traditional Linux distros, from Red Hat to Debian-based systems, and also have a peek at programming language–specific package managers such as Python or Rust.
In the next part of the chapter, we focus on containers: what they are and how they work. We’ll review the building blocks of containers, what tooling you have available, and good practices around using containers.
To round off this chapter, we look at modern ways to manage Linux apps, especially in desktop environments. Most of those modern package manager solutions are also making use of containers in some form or ...