Okay, so back to the Commands Graphic. You see the Top Dog software management command is Yum. Yeah, I said it, because Yum stands for Yellow Dog updater modified. Yellow Dog? Seriously? Well, yes. Let me explain. You see Yellow Dog is or was, it's not in active development now, but it was a Red Hat based variant that was, interestingly enough, developed for use on the IBM PowerPC architecture, which is essentially Power Systems, when it was the hardware used by Apple for the Mac before the Apple Intel transition. It has become a very minor player in a Linux very murky place, but will forever be immortalized in the name of the Yum tool. All right, so back to the course. Yum is a front end tool for RPM to manage dependencies and repositories. Now using Yum, you can install new packages, update packages, list installed packages, list available packages for install and remove packages just to name the most likely uses and most likely it's the same stuff you just saw with the RPM command. So you're saying Bill, what's the difference here? Well, the difference is in managing the packages, especially with respect to locating the packages, those repositories we talked about earlier and with respect to dependencies, resolving and installing them potentially across multiple repositories. Think about how complex this could be. Now Yum relies on metadata that's compiled about each package to maintain status and to use when resolving dependencies in installation or remove time. Well, that metadata is associated with the Yum repository we just talked about, right? So it's all tying together. Yum works with packages that are in the RPM format and then have a file extension of.rpm. Now graphical interfaces to Yum are provided in all the major Linux desktops, but I'm going to talk about the CLI access. So the Yum syntax is pretty straightforward as you see on the screen. Notice though, that you don't use a minus sign preceding the arguments. Nothing's ever easy. The list of packages available or installed on the system use Yum list. This option is likely to be used to see if a needed package is installed or if that package is available for install. Keep in mind, it's not only the stuff that's installed, but also what's available in that metadata in those repositories. For example, if you wanted to install VNC, remember we talked about that earlier, and knew that TigerVNC was a package that does that for you, you could type yum, list, TigerVNC, asterisk, as noted in the lower right corner of the graphic. Now that asterisk is key given the format of the RPM package names. We'll talk about that a little later. You'll either see that TigerVNC is installed or you'll see that it's available for Install or you'll see neither. You might get nothing in return telling you that you're going to have to go find and configure a repository that contains TigerVNC. Moving on, to get information about a package, you can use yum, space, info, and then the package name. The package does not have to be installed. The repository where it can be found is indicated in the repo field. Now note, it has to be in a repository that you have enabled and available on your system. You might see more than one entry for the package, which would indicate that there's likely an update available as well. One entry will be for the install package and one for the available update. One might be installed and the other might be available. Okay, so moving on again, like with other installation tools on other operating systems, Yum supports the grouping of packages that provide a specific capability, like say server with GUI, basic web server, system administration tools, development tools, etc. That's all packaged into an installable unit. You can list the available groups for installation using the Yum group list command. Your most likely usage of Yum will be to install or remove packages from the system other than those commands that we saw earlier where we're looking for things, but that's leading to installing a package. To install a package, you use the install option. What a surprise? The install option checks dependencies, remember the dependency value of Yum calculates the amount of disk space to be used and if the dependencies are met, it will prompt you to proceed with the installation. Now you can supply arguments that will allow you to skip the prompt and limit the repository scan for dependencies and things of that sort, but in its most basic form, it does the things that I described. Notice that if the package is already installed, you just receive an informational message to that effect. To remove or uninstall a package as we saw with RPM minus E, you use the Remove option. Now if there are packages depend on this package, they will be removed too, so be careful using this command. Think about the difference between RPM minus E and this. Go back and look at that one and sort this out, but in the end, with Yum, if there are packages that depend on the package that's being removed, they're removed too, so you got to be careful. Add the argument: clean, underscore, requirements, underscore, on, underscore, remove, to remove packages that are only dependencies of the package being removed. That makes sense, right? Check out the graphic. You see the spelling of the option. Basically, what I said there is, Yum remove will remove all packages that depend on this package, but you can use that option to limit it just to the packages that are only dependencies of this package. As I mentioned earlier, Yum supports grouping of packages to install a group, you use the group install option. Finally, I'll briefly describe the last of the commands and that's DNF. It stands for Dandified Yum. First, I always thought it stood for did not find, right, DNF did not find. You get DNF messages when you try to a command that isn't on the system. It says DNF, so hey, if that works for you, you have my full support and honestly, really who comes up with these names in Linux? Dandified Yum? I guess that's a Yum improvement, but these names, they're like the names of those medications we see advertised on television all the time. I guess, at least on Linux names are actual words, but anyway, I've gotten distracted, so let's go back. Why do we have two tools to invoke the installer command, RPM? Well, Yum has been around awhile and it served its purpose well. Over time, problems in dependency resolution have arisen. That's one of the key things that Yum does. It's led to the creation of DNF. DNF resolves the dependency processing troubles. So now Yum V4, which relies on DNF, benefits from the fast and accurate dependency resolution without added flags to ignore errors or provide workarounds. The summary here on the last of these commands is use Yum V4 and RHEL 8. Look for Yum V4 and other Red Hat based variants and if necessary, use DNF directly. It's a better option.