ITS 2320 - Linux II

Chapter 2, Managing Software and Processes

Objectives:

This lesson reviews major package delivery system and introduces the student to concepts that relate to managing processes. Objectives important to this lesson:

  1. Debian package management
  2. RPM and YUM package management
  3. Create, monitor, and kill processes
  4. Process execution priorities
Concepts:

The chapter begins with an observation that an operating system is usually incomplete. It not only requires revisions and patches, it requires applications to make the server or workstation valuable to anyone. Applications are typically placed in packages to make it easier to install them. Installation packages can be arranged in libraries for your staff, assuming they are allowed to download and install as needed.

The chapter hints that you can download source code for applications, edit the code if the apps are open source, and compile them to make custom applications. This is the nature of an open source environment. However, most people do not do this. They download installable packages, as mentioned above. Regardless of the method, installing a package/program will be tracked by package management software that varies across major distributions, and across time. (Get used to it: tech changes.)

The package management system currently used by Red Hat and Debian systems:

  • Red Hat, Fedora, CentOS (also, openSUSE): Red Hat Package Management (RPM)
  • Debian and related distributions: Debian Package Management (apt, which actually stands for Advanced Package Tool)

RPM package names typically follow the syntax on page 69 of the text:
package-name version release.architecture.rpm
Review the explanation in the text, as it is a probable exam question.

rpm is the name of the utility that implements RPM usage. Common command options for rpm are shown on page 70. They follow the syntax rpm action [option] package name. (Note: installing packages requires root access to the computer.)

Option Purpose
-e erases named package file
-F upgrades package to currently available version, if installed
-i installs named package
-q reports whether named package is installed (query)
-U upgrades and installs the named package
-V verifies that files for the named package are present and in good condition

The chapter discusses each of these options in more detail.

The links in the lines above this one lead to formal lessons about RPM and APT. For RPM, you will also want to know about YUM which is an interface app for RPM, but it is also a useful tool.


The text spends several pages on YUM options, which are more extensive. Table 2.4 lists seventeen commands, which you will probably find more memorable than the options for rpm.

The text also discusses ZYpp, which is kind of a version of YUM, but for openSUSE Linux. Yes, openSUSE uses rpm package files, but it has its own command set.

The link in this paragraph will take you to a more intelligible discussion/comparison of package tools and high level interfaces.

Functionality is also important to keep in mind. Take a look at this article on installing a LAMP stack on Red Hat 8. It demonstrates using sudo to enable using yum, and it also addresses configuration settings.

On page 86, the text turns to packages on Debian based systems. Debian package files end with a .deb extension. Debian commands are similar, but different. Well, it's Linux.

  • Some .deb packages can be managed with the DPKG tool set, whose main command is dkpg. Some options are shown on page 87.
  • Most Debian packages can be managed with APT tool suite. Most of its commands start with the characters "apt-" followed by a verb that indicates what the tool does.
  • Debian packages can also be managed with the apt tool, which is different from the the tool above.

This video introduces you to the apt utility for managing Debian packages.


Moving on to page 102, the text discusses processes, which can be programs that are running or code blocks that are called by programs. The text discusses three versions of the main program you use to manage processes: ps. It is confusing to everyone because it supports three versions of historical options from three environments;

  • UNIX options are preceded by a dash
  • BSD options are not preceded by a dash
  • GNU options are preceded by a double-dash

This is a good place to stop for a moment and scream in outrage. Are you done now?

Processes running in memory are assigned process ID numbers, also called PIDs. You can see the most processor intensive processes currently running with the top command. You might want to run top in the background instead of running it in its normal mode, which takes over the terminal console. The command to run any process in the background is just to add an ampersand (&) to the command that starts the process.

The text explains that we can use the ps command to list all or some of the processes that are currently running.

You can run the top command and kill a process from it, but that only gives you access to the most processor intensive processes. To kill any process, you can use the kill command (assuming you have rights to do so). To kill a process, the syntax is kill PID, or kill processname. You can also use the pkill command with the name of a user to kill all processes that belong to that user.This will effectively boot the user off your system, a helpful concept in cyber defense.

This video gives you a better background on processes and a related material such as moving a process to the background, returning it to the foreground


The chapter discusses process management in more detail, which you should go over after reading the questions at the end of the chapter.