# Package Managers

<span class="TextRun SCXO38321458 BCX0" data-contrast="none" lang="EN-GB" xml:lang="EN-GB"><span class="NormalTextRun SCXO38321458 BCX0">====================================================================================</span></span>

## YUM (Yellowdog Update Manager) &amp; DNF

Both yum and DNF are found on RedHat based systems, and are pretty much interchangable.

<span class="TextRun SCXO41186676 BCX0" data-contrast="none" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXO41186676 BCX0">------------------------------------------------------------------------------------------------------------------------------------------ </span></span><span class="EOP SCXO41186676 BCX0"> </span>

#### Cache &amp; Repositories

##### Update cache

```
yum makecache
```

##### List enabled repositories

```
yum repolist
```

##### List all active repositories

```
yum repolist --all
```

##### Use specific repository:

```
yum --enablerepo="repoID" install packagename
```

##### Disable specific repository

```
yum --disablerepo="repoID" install packagename
```

##### Adding additional repositories

repositories are stored in /etc/yum.repos.d/ (for both YUM and DNF)

##### Searching repositories for packages and package info

The below can be used to check whether a package is available in the currently configured repositories (requires the exact package name):

```
dnf list packagename
```

The below can be used to search repositories for a keyword relating to a package - ie a part of its name or description:

```
dnf search packagename
```

or

```
yum list available | grep -i packagename
```

##### Retrieve information about an available package:

```
dnf info packagename
```

<span class="TextRun SCXO41186676 BCX0" data-contrast="none" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXO41186676 BCX0">------------------------------------------------------------------------------------------------------------------------------------------ </span></span><span class="EOP SCXO41186676 BCX0"> </span>

### Installing/Updating Packages

#### Install package

```
yum install packagename
```

or

```
dnf install packagename
```

#### remove package

```
yum remove packagename
```

or

```
dnf remove packagename
```

remove unused dependencies:

```
dnf autoremove
```

#### update packages

```
yum update
```

or

```
dnf update
```

update a specific package

```
yum update packagename
```

or

```
dnf update packagename
```

<span class="TextRun SCXO38321458 BCX0" data-contrast="none" lang="EN-GB" xml:lang="EN-GB"><span class="NormalTextRun SCXO38321458 BCX0">====================================================================================</span></span>

## APT (Advanced Package Tool) &amp; DPKG (Debian Package)

APT is a package manager found primarily on Debian based systems.

<span class="TextRun SCXO38321458 BCX0" data-contrast="none" lang="EN-GB" xml:lang="EN-GB"><span class="NormalTextRun SCXO38321458 BCX0">====================================================================================</span></span>

#### Cache &amp; Repositories

Ubuntu apt uses a cache to store what can be installed/updated from repos. Before installing or updating software, it's worth checking that the cache has been recently updated to ensure that the most recent available packages are stored.

##### Update cache

```
apt update
```

Check when cache was last updated:

```
stat -c %z /var/lib/apt/periodic/update-success-stamp
```

##### Searching repositories

```
apt list packagename
```

or

```
apt search packagename
```

##### <span class="TextRun SCXO41186676 BCX0" data-contrast="none" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXO41186676 BCX0">Adding repositories.</span></span>

<span class="TextRun SCXO41186676 BCX0" data-contrast="none" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXO41186676 BCX0">repositories are stored in /etc/apt/sources.list or /etc/apt/sources.list.d  
</span></span>

<span class="TextRun SCXO41186676 BCX0" data-contrast="none" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXO41186676 BCX0">Typically, you will need a key for apt to be able to use a repository. Keys will be available via the repository website.</span></span>

<span class="TextRun SCXO41186676 BCX0" data-contrast="none" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXO41186676 BCX0">Download the key file</span></span>

<span class="TextRun SCXO41186676 BCX0" data-contrast="none" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXO41186676 BCX0">Add the key to 'apt trusted keys'</span></span>

```
apt-key add filename
```

Once added, create the repository file within <span class="TextRun SCXO41186676 BCX0" data-contrast="none" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXO41186676 BCX0">/etc/apt/sources.list.d with a name of your choice.</span></span>

<span class="TextRun SCXO41186676 BCX0" data-contrast="none" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXO41186676 BCX0">Add the repository details, typically prefaced with 'deb' and then the repo URL, and then OS release version.</span></span>

<span class="TextRun SCXO41186676 BCX0" data-contrast="none" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXO41186676 BCX0">------------------------------------------------------------------------------------------------------------------------------------------ </span></span><span class="EOP SCXO41186676 BCX0"> </span>

#### Installing &amp; Updating Packages

##### Install packages

```
apt install packagename
```

Install multiple packages

```
apt install packagename packagename packagename
```

##### Removing packages

Remove package without removing configuration files

```
apt remove packagename
```

Remove package and configuration files

```
apt purge packagename
```

Remove package dependencies

```
apt autoremove
```

##### Updates

(remember to apt update before hand)

Check for updates

```
apt list --upgradable
```

Run all package updates

```
apt upgrade
```

Upgrade specific package

```
apt upgrade packagename
```

Update the OS and kernel:

```
apt dist-upgrade
```

Update everything (packages and kernel)

```
apt full-upgrade
```

<span class="TextRun SCXO38321458 BCX0" data-contrast="none" lang="EN-GB" xml:lang="EN-GB"><span class="NormalTextRun SCXO38321458 BCX0">====================================================================================</span></span>

### openSuse - zypper

#### Cache &amp; Repositories

Zypper uses a cache to store what can be installed/updated from repos. Before installing or updating software, it's worth checking that the cache has been recently updated, and if it hasn't; running an update on the cache.

update cache

```
zypper ref
```

List repositories

```
zypper lr
```

Repositories are stored in /etc/zypp/repos.d

<span class="TextRun SCXO41186676 BCX0" data-contrast="none" lang="EN-US" xml:lang="EN-US"><span class="NormalTextRun SCXO41186676 BCX0">------------------------------------------------------------------------------------------------------------------------------------------ </span></span><span class="EOP SCXO41186676 BCX0"> </span>

#### Installing/ Searching/ Updating Packages

Search packages

```
zypper se packagename
```

Search specifically

```
zypper se --match-words packagename
```

or

```
zypper se --match-exact packagename
```

Install package

```
zypper in packagename
```

Remove package (only option to remove package and configuration files)

```
zypper rm packagename
```

<span class="TextRun SCXO38321458 BCX0" data-contrast="none" lang="EN-GB" xml:lang="EN-GB"><span class="NormalTextRun SCXO38321458 BCX0">====================================================================================</span></span>