Managing Packages on Debian and Ubuntu Systems

15 minutes
  • 3 Learning Objectives

About this Hands-on Lab

Managing packages means managing what version of software is available on a Linux distribution. For Ubuntu/Debian Linux distributions, the high-level, `apt`, manages installation, upgrading, and removal automatically. Ubuntu/Debian-based distributions also utilize the low-level tool `dpkg`, which requires resolving dependencies manually. But it provides powerful overrides, queries, and the ability to reconfigure installed packages.

During this activity, we will work with `apt` to update, install, and remove packages, since it automatically manages packages required for dependencies. Then we will use the `dpkg` command to query information about installed packages and reconfigure one that is already installed. After completing this activity, we’ll have a basic understanding of how manage software packages on Ubuntu/Debian systems.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Clean the apt Cached Information, Retrieve Latest Information About Available Packages, and Upgrade the System Software

Use the apt command to clean, update and upgrade the system software:

sudo -i
apt clean
apt update
apt list --upgradeable
apt upgrade
Search for the apache http Package, Install It along with the elinks Package, and Use elinks to Dump the Home Page to /root/index.html

Use the apt command to find the apache http package. Install it, and then install elinks to verify operation of the server. Use elinks to output the http://localhost home page to /root/index.html

apt search 'apache http'
apt install apache2 elinks

To just see if the server is up, run this command:

elinks http://localhost

We should see a It works! page. Hit the q key to get back to a command line. Now lets dump that page’s output to a text file:

elinks -dump http://localhost > index.html
Show Information about the tzdata Package and Reconfigure That Package

Use the dpkg command to show the information about the tzdata. Use dpkg-reconfigure to adjust the timezone to US/Pacific.

dpkg -s tzdata
dpkg-reconfigure tzdata

Once we run the reconfigure command, we’ll be prompted with the tzdata package’s configuration window, and we can set the correct time zone.

Additional Resources

We have been provided with the credentials and connection information for a new Ubuntu 18.04 LTS system. Our development team will be using it to do some basic web server testing, as an alternative to the CentOS 7 systems they are developing their API on. They will be doing most of the configuration, however, they have asked us to provision it to serve out basic web pages. We want to make sure that all software is updated on the system before we install new software.

Fortunately, we know that Ubuntu starts services (when appropriate) when we install packages. We have been asked to install the Apache web server on the system, using the default package management system. Before we turn the system over, we need to make sure the elinks package is installed. Once it is installed, use it to download the default web page from the Apache server we just installed, and use the elinks command to create a file called index.html in the root user's home directory.

Then we'll use the dpkg command to list the files in the apache2 package, and redirect that output to a file named apache2.files in our home directory. The system also requires an adjustment for the timezone. We have to set it to US Pacific using the dpkg-reconfigure.

Once we're logged into the server, we might as well become root right away, since we'll need elevated privileges. Run sudo -i to start an interactive root shell.

Note: If you receive a dpkg lock error, wait a few minutes before trying again. Sometimes update checks on the instance startup need more time to complete.

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?