Introduction to Software Management

As with most operating systems you will probably want to install some additional applications, or potentially remove some of the defaults that you don't find particularly useful. Fortunately software management in Peppermint is rather simple in that we have multiple methods of accomplishing this.

Software in Peppermint comes in the form of Debian software packages which carry the .deb file extension. These packages contain a complex dependency structure implemented in such a way that the user should never have to worry about anything while installing.

The Software Manager

The preferred method of installing and removing software in Peppermint is by use of the Software Manager. This application was developed in house at Linux Mint specifically to offer a simple and intuitive means of managing software packages.

Here you will find software broken down into categories according to their intended use. You will also find descriptions, reviews, and ratings for each application. The most popular and highly rated applications can be found in the "Featured" category. The Peppermint specific metapackages can be found in the "Featured" category as well.

Using the Software Manager is quite easy: simply navigate to the application you wish to install and click on the "Install" button. That's it. The Software Manager will handle all the rest for you, including dependency resolution. In a moment you should be able to check the menu and see your freshly installed application. Removal of applications in the Software Manager is handled in exactly the same way except that you will see a "Remove" button for applications that are already installed on the system.

The Synaptic Package Manager

If you're looking for something that's a little more technical in nature than the Software Manager, the Synaptic Package Manager should fit the bill nicely. Synaptic can be easily be found in the "System Tools" section of the menu. Synaptic makes very few compromises in the way of simplifying software installation the way the Software Manager does. As such it's often the preferred graphical tool for veteran users and power users on systems where it is available. While using Synaptic, be prepared to have a good idea of exactly what you're searching for as it is less discriminating about such things than the Software Manager.

Synaptic functions by having the user mark packages that they wish to install, upgrade, or remove. After all the changes you wish to make are marked, simply click on the "Apply" button. From here you will be prompted with a confirmation window that provides drop down menus which break down all of the changes to be made, including any dependencies that are necessary for the software you are installing. Clicking "Apply" in this window will confirm the changes and Synaptic will go ahead with the process.

GDebi Package Installer

So what happens if you download a software package that isn't available in the Software Manager or in Synaptic? Fortunately there's a tool specifically for this job called GDebi, and it's very easy to use. Double-clicking on a downloaded software package in the file manager will launch GDebi and it'll present you with a simple, yet intuitive interface to work with. In this example I'll be installing the stable build of Google's Chrome web browser.

Unlike the Software Manager and Synaptic, GDebi does not automatically handle dependencies for you. If a software package requires other packages to be installed first, it will let you know but you'll need to find alternate means of installing the additional packages (such as the Software Manager or Synaptic). These packages must be installed prior to GDebi installing the package. Once you have installed the required dependencies via some other means, you are free to install the downloaded package with GDebi. The installation process should only take a few seconds and you'll be shown a dialog box that indicates the installation status.

The Terminal

As mentioned in the previous chapter, the terminal can often be an overwhelming place to end up if you aren't familiar with how it operates. In this chapter we're going to cover 7 simple commands that should get you up and running in regards to software management in the terminal.

apt update

Peppermint keeps a list of all available software and the versions of that software from all available sources. It makes sense to update that list periodically so that Peppermint will know to look for new versions of installed software and so that it can be aware of new software that is available. The "apt update" command tells Peppermint to refresh this list so that it can take advantage of the most recent software updates and additions. Note that "apt update" does not actually install any software, it simply informs the system of what is available. Note that the "apt update" command is something you will not find in most other Debian or Ubuntu based distributions as the "apt" command is a wrapper script around several other commands intended to simplify package management. The exception is Linux Mint where the wrapper script was introduced. In this case the equivalent command in Debian/Ubuntu is "sudo apt-get update" and in all cases the Debian/Ubuntu equivalent will work in Peppermint/Linux Mint as well.

apt upgrade

New versions of software packages are being released all the time. The "apt upgrade" command tells the system to download and install any available new versions of software that is already installed on the system. If a new version of a package requires an additional package to be installed, or if it requires an existing package to be removes, "apt upgrade" will kindly let you know that the upgrade is being held back. Under no circumstances will it install new packages or remove any existing packages. The Debian/Ubuntu equivalent of this command is "sudo apt-get upgrade".

apt dist-upgrade

This command will perform the same function as "apt upgrade" however it will install additional packages that new versions depend on, and it will remove packages that cause conflicts. Debian/Ubuntu equivalent = "sudo apt-get dist-upgrade".

apt install

Now we get to the fun part. The "apt install" command will install any available package by including the package name after the command If you want to install the Leafpad text editor, then type "apt install leafpad". If you want to install the Eclipse integrated developer environment, then type "apt install eclipse". Applications like Leafpad, which has no additional dependencies, will simply download and install after you enter your password. Applications like Eclipse, which has a lot of dependencies, will prompt you for whether or not you want to install all of the required dependencies before moving forward. Software management from the terminal is generally much more efficient than going through one of the graphical tools. The downside is that you have to know the name of each package you wish to install. Debian/Ubuntu equivalent = "sudo apt-get install".

apt remove

Removing software is just the same as installing it except for one word. Just like with the "apt install" command, simply add the name of the application you wish to remove after the "apt remove" command and hit "Enter". You may be prompted for your password, then the command will ask you to verify using "y" or "n" and if you select "y" then the application will be removed. Configuration files from the removed application will stay on the system in case you later decide to reinstall the application. There's really not much to it. Debian/Ubuntu equivalent = "sudo apt-get remove".

apt purge

This command is just like "apt remove" however it will remove any configuration files associated with the application being removed as well. Debian/Ubuntu equivalent = "sudo apt-get purge".

sudo dpkg -i

Just as GDebi handles downloaded software packages with a graphical front end, "sudo dpkg -i" handles downloaded software packages from the terminal. This command works in a similar manner to "apt install", however it does require that the terminal be open to the directory where the package is, or that you type the full path to the software package. In addition, "sudo dpkg -i" requires that you type the entire filename (including the version and the .deb extension) of the software package whereas "apt install" simply requires the name. For example I'm going to reinstall the Google Chrome package I installed earlier with GDebi, but this time using "sudo dpkg -i":

Do note that like GDebi, the "sudo dpkg -i" command does not automatically handle dependencies and will alert you of packages you must install via other means.

To break things down just a little bit, the "sudo" part of the command tells the system to use administrative privileges while running the rest of the command. "dpkg" is actually a very large and very powerful framework for working with Debian software packages in almost any capacity. The "-i" is simply one of the many options in "dpkg", this one meaning that it should install something. Finally we have the full name of the downloaded software package. We can't abbreviate here as is done with the "apt" commands as "apt" will always refer to either the most current version (when installing or upgrading) or the installed version (when removing. Many people use "dpkg" to work with older versions or experimental versions of software and in these situations typing the exact package name with the exact version number eliminates much confusion. The "dpkg -i" command is not a wrapper and thus is the exact same command you would use in Debian/Ubuntu.

Again, don't worry if you feel a bit overwhelmed with some of the terminal commands. This is why the graphical tools exist. Please check the following for some additional information regarding some of what was discussed here: