Understanding Yum in Linux

Yum overview
RPM knows what its dependencies are, and has the ability to download software from FTP and web servers. 
Yum was created by Yellowdog Linux, and has since been adopted by many Red Hat-based distributions including Fedora and CentOS. 
Yum resolves dependencies automatically. This means it downloads and installs all software packages necessary. 
This includes packages that the user didn't specify, if the chosen package requires them. Y
Yum has also the concept of software package groups. A group is a list of software that is usually installed together. 

For instance, we could have a web server group that included the web server, and other tools commonly installed with it. Yum repositories contain RPM software packages. 
The Yum client maintains a local list of software repositories. Users can add repositories by just adding a new Yum configuration file for them. 
The Yum client also maintains a local list of all available software. The package install process using Yum is pretty straightforward. 
First, the Yum client contacts the repositories that it's aware of, and gets their list of software packages. 
These lists are then cached locally, and it updates them during install operations. 
The user then selects a software package that they want to install. Users can select packages to install by using either CLI or GUI tools. 
Yum then calculates dependencies. This would be the requested software package, and any packages that it requires. 
Yum then downloads all software packages and installs them using the RPM libraries, just like the RPM command does. 
Once the install has finished, Yum updates the RPM package database. 
Installing software using Yum couldn't be easier. 
Yum also has the concept of software groups. Yum groups contain multiple software packages. 
These software packages are usually installed together. All software in a group can be installed at once. 
All software in a group can be removed at once. Groups can contain optional software. 
Option software is related software, but not installed by default. Groups make configuring a system quicker. 
Installing a group of software with one command is much easier than installing each package individually.

Yum commands:

1) show package list in repository
yum list <name>

yum list samba

2) Show all version of packages in repository

yum --showduplicates list samba*

3) Get information on package

yum list 
yum info <name>

ex. yum info samba

4) Get info on installed packages

yum list installed

Output Color Codes:

All package in Bold and Underline means -Curent Kernel Version
All package in Bold means -Have updates available
All package in Red means- Package is not in our repository
All package in yellow means -package in installed with higher version that in repository

5) To only download rpm 

yum install -downloadonly -downloaddir=/tmp

6)Get all packages with updates available

yum list updates

7)Get list of packages available in repository

yum list available

Output Color Codes:

Blue: An updated to an installed package
Cyan: Downgrade to a installed package
Green and Underlined: Current Version of installed package

8) Check all package

yum list all

9) Check obsolete package list
yum list obsoletes

10)Check more information on package

yum info <package name>

yum info zip
yum info updates (check information on updates)
yum info obsoletes (check information on obsoletes)

11) Check dependency of a package

yum deplist <package name>
yum deplist zip

12) Checking various package groups

yum group list

13) Checking hidden groups

yum group list hidden

14) Checking group information

yum group info "group name"

yum group info "Development Tools"

15) Searching a package using yum

yum search <package name>

yum search zip

we can also search all which will search description as well

yum search all zip

16) Find which package can provide specific utility

yum provides <package name>

yum provides zip