Ubuntu

APT-GET in Ubuntu

APT is a command line tool on Ubuntu. It is one of the most used and supremely powerful command-line tools on Ubuntu. APT can be used to install new software packages, upgrade packages that are already installed on your system, or even upgrade. This command line tool is by far one of the first that all novices learn in Linux. APT can be subdivided into APT-GET, APT-CACHE, and APT-CONFIG. In this tutorial, we will be exploring the various ways we can use APT-GET.

Apt-get source and Apt-get build-dep

Apt-get source <package>

When you are dealing with open-source packages or source code, programmers typically want to study the source code and/or fix bugs to the source code. This is where source comes in. Source is used to grab the source package.

In order for this to work, point the deb-src entry in /etc/apt/sources.list at unstable (it should also be uncommented). And run an update once the sources.list file has been altered.

cd /etc/apt

nano sources.list

Then, uncomment the deb-src lines.

Untitled14

Then, perform an update:

sudo apt-get update

Download the source package:

cd ~

cd Downloads

mkdir imagemagick_source

cd imagemagick_source

sudo apt-get source imagemagick

Untitled15

This is what is found in the imagemagick_source folder:

Untitled16

Sudo apt-get build-dep <package>

The latter is used to install all the dependencies for a particular package that will permit it to be built. In other words, dependencies are libraries/programs that are required to compile the package. And the latter will get the dependencies for you.

Sudo apt-get install <package>

Sudo apt-get install <package>

This is the command that most people are forced to use and therefore the most well-known and well-used. It downloads and installs any given package of your choice. So, let us take a look at what it does:

Untitled6

In this case, I chose to install a package that I already have on my system. But what you have to note are the first two lines.

Reading package lists… Done” – went through the software repository and checked all the packages that are available.

Building dependency tree” – here, apt-get is building the other required packages in order to run the package of interest.

Untitled7

APT will retrieve all the requirements and install them too. /etc/apt/sources.list is utilized to pinpoint the packages. In order to install a specific version of a package, you can write:

Sudo apt-get install <package name>=<package version>

If on the other hand, you just wanted to download the package but not install it, then you can do so by adding the d switch. The latter will download the file and place it in /var/cache/apt/archives.

Sudo apt-get -d install <package>

Untitled8

You can simulate an install also using the s switch (-s, –simulate, –just-print, –dry-run, –recon, –no-act)

Sudo apt-get -s installl <package>

The latter does not change the system in any way, shape, or form but rather simulates an install. If and when a non-root user simulates an install, it might look distorted because of the lack of access to a certain configurations.

The next one we are going to look at is the fix-broken (-f, –fix-broken):

Sudo apt-get -f install <package>

In this case, it will attempt to fix broken dependencies.

Sudo apt-get autoclean/clean

Sudo apt-get clean

This command – clean – is used to clean out the local repository of packages. It removes everything from /var/cache/apt/archives which basically frees up some space on the system.

Sudo apt-get autoclean

Autoclean, on the other hand, is used to remove useless files.

Suppose that I download VLC (and only download it) using the command sudo apt-get -d install vlc. This is what /var/cache/apt/archives looks like:

Untitled9

Now let us use autoclean:

Sudo apt-get autoclean

Untitled10

And now let us clean:

Untitled11

By now, it is assumed that you figured what clean does and what it does not do.

Sudo apt-get --purge remove <package>

Sudo apt-get --purge remove <package>

Here, to remove a package using APT, you can use either purge or remove or both. Remove is used to remove the package but NOT the configuration files. Purge will remove all configuration files as well.

Sudo apt-get autoremove

Sudo apt-get autoremove <package>

Whenever you install a particular package, all of its dependencies are also automatically installed. When you remove the package, on the other hand, the package is removed but the dependencies remain. This is where apt-get autoremove comes in. Autoremove will remove not only the installed package but also the dependencies that were installed.

Untitled17

Sudo apt-get update

Sudo apt-get update

As the term states, this command is used to update. Now, what does it update and what does the command do? In this case, the /etc/apt/sources.list file is consulted and the database of packages that are available to the user is updated. If the sources.list file is ever changed, you certainly have to run this command.

Untitled

So here, in the previous image, I ran the update command and we can see that it chucks out a few lines. These lines say “Hit”, “Get”, or “Ign”.

Hit: No changes in package version

Get: new version is available and APT is getting it for you

Ign: Ignore the package

APT update will not download and install all the newly available packages. But you can type the following to see which ones have a newly available version:

Apt list --upgradable

Untitled2

Here, as you can see, it will display the current version (on your system) you have and the new version available.

Sudo apt-get upgrade

Sudo apt-get upgrade

The next command which is similar to the update command is the upgrade command. The latter command (upgrade) is used to upgrade or install newer versions of all the various packages that are install already on the system. It gets the newest versions from the sources that are in the etc/apt/sources.list file. Packages already installed on a system are NEVER removed and new not currently installed packages are never installed. But rather the “upgrade” is for ALL the packages that are currently installed on the system. If and when a package cannot be upgraded without altering the status of another package is left UN-UPGRADED (not upgraded). Typically, the upgrade command is preceeded by the update command. This is to ensure that APT knows that there are in fact new packages out there.

Sudo apt-get dist-upgrade

Sudo apt-get dist-upgrade

This particular command is used to update the system to a new release. In this case, some of the packages may be removed. The distinction between the upgrade and the dist-upgrade commands are that in the dist-upgrade, there is removal of certain packages. But for the upgrade, there is no removal of the packages.

Sudo apt-get download

Sudo apt-get download <package>

This is similar to the -d install. Apt-get -d install will download the file into the /var/cache/apt/archives while apt-get download will download the deb file into the current working directory. Apt-get download will download the deb file but not the dependencies. Further, apt-get download will not install the package.

Sudo apt-get check

Sudo apt-get check <package>

Sudo apt-get check is used to update the package cache as well as checks for broken dependencies.

For more information and more options, please type:

man apt-get

Conclusion

The APT-GET commands are very powerful and yet very basic too. In this tutorial, we learned about how to use the APT-GET commands: source, build-dep, install, clean, autoclean, purge, remove, autoremove, update, upgrade, dist-upgrade, download, and check were covered in this tutorial.

About the author

Kalyani Rajalingham

I'm a linux and code lover.