Linux provides numerous tools to help you manage software. Most distributions are built around the RPM or Debian package systems, both of which enable installation, upgrade, and removal of software using a centralized package database to avoid conflicts and other problems that are common when no central package database exists. You can perform basic operations on individual files or, with the help of extra tools such as Yum and APT, keep your system synchronized with the outside world, automatically or semi-automatically updating all your software to the latest versions.

No matter how you install your software, you may need to manage shared libraries. These software components are necessary building blocks of large modern programs, and in the best of all possible worlds they operate entirely transparently. Sometimes, though, shared libraries need to be upgraded or the system configuration changed so that programs can find the libraries. When this happens, knowing about critical configuration files and commands can help you work around any difficulties.

Beyond managing packages and libraries, Linux software management involves manipulating processes. Knowing how to manipulate foreground and background processes, adjust process priorities, and kill stray processes can help you keep your Linux system working well.


What are the critical features of RPM and Debian package formats?

RPM and Debian packages store all files for a given package in a single file that also includes information about what other packages the software depends on. These systems maintain a database of installed packages and their associated files and dependencies.

What are the tools used for managing RPMs?

The rpm program is the main tool for installing, upgrading, and uninstalling RPMs. This program accepts operations and options that tell it precisely what to do. The Yum utility, and particularly its yum command, enables installation of a package and all its dependencies via the Internet, rather than from local package files.

What are the tools used for managing Debian packages?

The dpkg program installs or uninstalls a single package or a group of packages you specify. The apt-get utility retrieves programs from installation media or from the Internet for installation and can automatically upgrade your entire system. The dselect program serves as a menu-driven interface to apt-get , enabling you to select programs you want to install from a text-mode menu.

What are the tools for extracting files and converting between package formats?

The rpm2cpio program can convert an RPM file to a cpio archive, enabling users of non-RPM systems to access files in an RPM. The alien utility can convert in any direction between Debian packages, RPMs, Stampede packages, and tarballs. This enables the use of packages intended for one system on another.

What are the reasons for using shared libraries?

Shared libraries keep disk space and memory requirements manageable by placing code that’s needed by many programs in separate files from the programs that use it, enabling one copy to be used multiple times. More generally, libraries enable programmers to use basic “building blocks” that others have written without having to constantly reinvent code.

What are available methods to change the library path?

The library path can be changed system wide by editing the /etc/ file and then typing ldconfig. For temporary or per-user changes, directories may be added to the path by placing them in the LD_LIBRARY_PATH environment variable.

What is the difference between foreground and background processes?

Foreground processes have control of the current terminal or text-mode window (such as an xterm ). Background processes don’t have exclusive control of a terminal or text-mode window but are still running.

How to limit the CPU time used by a process?

You can launch a program with nice or use renice to alter its priority in obtaining CPU time. If a process is truly out of control, you can terminate it with the kill command.