= Hands-On = == Repositories and key management == A Linux repository is a storage location that contains essential and popular software for different Linux distributions and, each distribution has its own official repositories (also called standard-repositories). Debian-based distributions, including, Ubuntu make use of the Advanced Package Tool (APT) to install and update packages. You can find software repository information in the `/etc/apt/sources`. list file on your Debian-based Linux installation. ===== to add manually ===== Although you can manually enter repository details in the file, it can quickly become a tiresome job. A better way of adding them to your system is by using the `add-apt-repository` tool. ===== Install add-apt-repository ===== You won't find the add-apt-repository utility installed on your system by default. It is a part of the software-properties-common package. To install add-apt-repository using the APT package manager, type: `sudo apt install software-properties-common` ==== Add Repositories Using add-apt-repository ==== Now that you've installed the package, it's time to add a third-party software repository to your system. The basic syntax for adding repositories is: `sudo add-apt-repository [options] repository` ex: `sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe"` === Key Management === The Linux key-management facility is primarily a way for various kernel components to retain or cache security data, authentication keys, encryption keys, and other data in the kernel == Linux package management == The most common and popular package managers they are likely to first start using is the apt (Advanced Package Tool) because it is most widely shipped as the default Package Manager for users of Debian, Ubuntu and Mint. We’ll cover some of the basic commands of how to use apt in order to illustrate the ease of use of using a package manager in the terminal window. === Let's see - update/upgrade, package installation === ==== How to install a package ==== Install a package as follows by specify a single package name or install many packages at once by listing all their names. To install apache2 `sudo apt install apache2` ==== Find dependencies of a package ==== Once package has been installed you might want to understand which dependencies the package is making use of, you can list out the dependencies of a package using apt as follows. `sudo apt depends apache2` ==== Search for package ==== It is highly likely that you will need to search for a package to perform a specific task. The apt package manager enables you to easily search for packages via the terminal. In this case, I want to search for an image manipulation program, I can simply include the phrase in quotes and use the apt search facility `sudo apt search "image manipulation program"` ==== View package details ==== You will often want to find and view details of package. In this example I want to view some details regarding the apache2 package we installed earlier. `sudo apt show apache2` ==== Upgrade system packages ==== Often the above command will instruct you that new releases of packages are available, so to install new versions of all the packages on your system. `sudo apt upgrade` You will often want to execute both these commands at the same time, so you can run them both at the same time using. `sudo apt update && sudo apt upgrade -y` ==== Remove packages ==== To remove packages from your system. `sudo apt remove apache2` if you want to ensure all packages configuration and dependencies are removed at the same time you can use the purge switch. `sudo apt remove apache2 --purge` ==== Remove unused packages ==== Installing or upgrading packages will result in some dependencies not being required, you can clean up these unused dependencies after removing that particular package, it's dependencies will remain on the system, therefore to remove them use auto-remove as follows: `sudo apt autoremove`