YUM:: Yellow dog Updater, Modified, command line interface (CLI) software to update, install and remove RPM-based packages, in an automatic and easy way.
While rpm is the low level manager and base for package management, the calculation of dependencies is very basic and can easily lead to a situation known as "the nightmare of the dependencies". This is the fundamental task solved by YUM system, hence to learn to use yum avoids many bad times and as long as you have access to a YUM repository, you can smile and install, uninstall and update any software packages in our RPM based system without complications due to dependencies.
The key advantage is the calculation of the dependencies and thus its automatic inclusion in order to be able to install the desired software package, however, it is not limited to that and from its initial design to the present days, it has gained a lot of extensions to allow the replacement of the rpm command line tool.
There are also GUI programs such as gpk-application and gpk-update-viewer as a YUM front-end for software management in our RPM based system, like Fedora, Red Hat Enterprise Linux, or CentOS. These applications are part of the suite called PackageKit.
gpk-application in Fedora is invoked from System > Administration > Add / Remove Software
. There is another more advance GUI tool called Yumex which offers more advanced control over YUM in an X environment.
In either case, the software management is a sensitive operation for the system and therefore it requires enough privileges to perform such transactions, typically you must be root.
yum is the main command line tool of the YUM system. In many cases it is enough to use the high-level GUI tools, in some others it may be insufficient or even impossible to use them, such as a server without a GUI environment (X), so to learn to use the yum tool has a double benefit, more power and broader scope. To be fair we have to mention that PackageKit also includes command line tools, and knowing that the discussion is whether to use these tools or the yum native tool. The documentation for that command line client is really small and it is still not recommended to use them and prefer the use of yum native tool.