Package Management

17 October, 2020


Related Blogs


Package Management in Linux

  • Software is the basis of any operating system, allowing you to install and use different utilities.
  • In linux, the software is distributed through the use of packages, which contain the actual software files.
  • Each distribution of Linux has its own package management system. For Red Hat, there are two package management systems: RPM & YUM.

Working with RPM:

  • RPM stands for (Red Hat Package Manager)
  • RPM is the default package installation tool in the Linux operating system.
  • By using RPM we can install, upgrade, Query, verify, and remove the packages.
  • Before diving into package management, let’s look at the naming convention used by the system to describe packages.  

Package parameters:

  Packaage parameters

Methods of Installation:

Two ways of Installations.

  • Standalone
  • Network

Standalone: In this type, we can install the packages through any removable media (or) through the dump.

Installing and Removing packages:

Syn: #rpm <options> <pkg-name>  --force  --aid


I  ---> install a given package

V ---> verbose output

H --->  Shows hash progress when installing

U ---> Upgrades a given package

E ---> Removes a given package

---force ---> Install the package with forcefully

---aid    --->  Install the package along with dependencies

---nodeps --->  To erase an package without dependencies

Query options (with – q):

Syn: #rpm <options> <kg-name>

C       ---> Lists all config files.

D        ---> lists all documentation files.

I       --->Displays information about the package.

L     --->Lists the files in a package.

S      --->status of the package.

Verify options (with-v):

-a   ---> Queries all packages

F   ---> displays information about the specified file.

---> For installing an application. #rpm  -ivh  nano -2.2.6-1.x86_64.rpm

  • For installing an application with forcefully

# rpm  -ivh nano-2.2.6-1.x86_64.rpm  --force

  • If you want to upgrade this package (because you know that it is already installed), you can substitute the –I option for –U

#rpm  - Uvh nano -2.2.6-1.x86_64.rpm

  • For uninstalling a package

# rpm  -e nano

  • You can always reinstall the package at a later date if you keep the .rpm file on your system

#rpm  - ivh   -replace pkgs nano -2.26-1 .x86_64.rpm

Tip: A common situation to run into on the job is having to install a package that is already installed. You don’t have to go through the trouble of uninstalling the package first only to reinstall it. You can use the –replace pkg option alongside the regular install options to override an existing installation.

  • Query the install’ed system package for nano:

#rpm  -qa        /  grep nano

  • Query the information from the nano package:

#rpm  -qi nano

  • Suppose you are looking around on your new Red Hat installation and a file but aren’t sure what it does. You can use the –f option to query the package that the file belongs to, possibly giving you a better idea of what that file might be sued for.
  • Find out where the /etc/syslog. Cong file came from by doing the following

#rpm   -qf /etc/syslog.comf

  • Use the -c option to find all config files

#rpm   -qd rsyslog

  • To find the documentation files for a given package.

#rpm   -qd rsyslog

  • To the listing all files that come with the package.

#rpm  -q1  rsyslog

  • To find out whether a package has any dependencies:

#rpm  -qr rsyslog

Inclined to build a profession as Linux Developer? Then here is the blog post on, explore Linux Training

Network installation:

In this level, we can install the package from the server through NFS (or) FTP services.

NFS Service:

  • First, check the communication.


  • For accessing the data shared from the server

#Mount #cd   /mnt #rpm –ivh vsftpd*      --force    --aid

FTP Service: In this method to install the package the ftp server should have the dump of o/s under the ftp default sharable location

  • First, check the communication

# ping 192/168.0.254

  • For accessing the data shared from the server.

#rpm  -ivh<pkg-name>   --force --aid

Working with YUM:

  • YUM stands for a yellow dog update modifier.
  • In this section, we look at the same tasks, except this time we use the more flexible yum utility.
  • The yum command has access to repositories where tons of packages are kept and can install, upgrade, or remove them for you automatically.
  • Yum also takes care of resolving and installing any dependencies for you, which the rpm command can’t do.
  • Yum is an interactive tool that waits for the confirmation of a user.
  • Yum is a default package management tool in Red Hat o/s.
  • Using this tool we can install the required packages
  • With dependencies.

Syn:  Yum <options> <command> <package name>


c           -->   specifies the location of the config file

q         -->   specifies quit, no output

y           -->   to always answer yes to prompts.

V       -->   provides verbose output.


Clean   -->   Removes cached data.

Erase   -->   Removes a package from the system.

List       -->   Displays available packages

Install   -->   Install a package on the system.

Search -->   Enables you to search for a package.

Update -->   Updates a package.

Group list       -->  Displays available packages groups.

Group installs -->   Install packages with in a group.

Group remove -->  Removes a packages with in a group

YUM Server configuration:

  • Mount the dvd


  • Install RPM package (vsftpd)

#rpm – ivh vsftpd*  --force –aid

  • Copy the dump of o/s into the default sharable location ftp.

#cp –rvf /mnt/*          /var/ftp/pub *à means all the data under the mount point  /mnt.

  • Install the create repo package:

#rpm  -ivh  create repo*    ---force   --aid    

Create the new repository:

#create repo  -g  /var/ftp/pub/server/repo data/comps-rhel5-server-core.xml/ var/ftp/pub

Note:  If any errors are showing then remove #rm  - fr  /var/ftp/pub/repo data

Open the YUM configuration file:

#vim /etc/yum.repos.d/linux.repo

  1. [linux]
  2. name=yum server
  3. base url = ftp: //
  4. enable = 1
  5. gpgcheck = 0


  • Restart the ftp service

# service vsftpd restart # yum  clean all

  • To list out packages

#yum list

  • To install the package

# yum install postfix  -Y

  • You could also update the postfix package

#yum update postfix -y

  • To remove the package

#yum remove postfix  

Note: One great feature about yum is that instead of updating a single package, you can list all updates that need to be installed for the system. #yum list updates

  • From this list, you can choose to update packages individually or as a whole. If you cant to install all the updates

#yum update

  • To get a listing of all available “groups”,

#yum group list

  • You can then install that “groups”:

#yum group installs “Development Tools”

Note: Don’t forget that Linux doesn’t handle whitespace the way that windows do. If you specify a group name, you need to enclose it in quotation marks(“  “ ).

Searching for packages:

  • Find the postfix package to install:

#yum search postfix

  • To find out more information about the postfix package:

#yum info postfix --->  To flush the cache, do the following #yum clean all

Configuring Additional Repositories:

  • Sometimes you might want to install a package that isn’t in the repositories that come preconfigured with Red Hat. If the package is available in someone else’s repository, you can add that person’s repository to your yum config file.
  • You can either add your own custom repositories to the main config file /etc/yum.conf (or) create a .repo file in the /etc/yum. Repos.d directory which will be added automatically. Here is what a sample entry for a custom repository looks like:

[Unique title]

Name              = my custom yum repository.

Base url           =

Enabled          =1

Gpgcheck        =0


  • One neat trick that you can do is to create a repository based on an ISO
  • This trick can be useful in an environment whether there is no Internet access and you’d like to install packages from the Red Hat

Step 1: Create a folder for the temporary mount:                        

                # mkdir  /mnt/cd

Step 2:  Mount the ISO image (or) cd:                        

                # mount  -o loop /dev/cdrom / mnt/cd

Note:  ---> To create a ISO image.

#dd if =/dev/scdʘ      of = /os/rhe/5.iso

To check it which device is mount  

  • Read the image file

#mount –o loop  /OS/Rhel5.iso   /DVD

Step 3:  Create a repository in the temporary directory:

# cd  / mnt


This creates an XML file of all the packages from the mounted CD.

Step 4:   You also need to clean the current repository cache:

#yum clean all  

Step 5:  Create a .repo file for your temporary repository:

#vim /etc/yum.repos.d/sio.repo

[ISO Repo]

Name = My Repository

Base url =file:///mnt/cd




Adding your custom packages:

  • Just as you have already created two different types of custom repositories, you can add packages you have created to them as well.

Step 1:  copy the file over to your private directory

#cp  /usr/src/redhat/RPMS/x86_64/mysample – 1.0-0.x86_64.rpm


Step 2: Update the repository to recognize your new package:

#createrepo  - update

  • Now you should be able to search for your package in your private repository along with other software

Registering your system:

  • To register your system to the Red Hat Network, you must have an active subscription with Red Hat.
  • You can register during the installation of your system or manually after the system has already been installed. Use the ‘rhn_register’ command to begin the registration process. After you finish, you can visit to start managing your system(s) through the web. You need to make sure that the rhnsd daemon is running for it to be managed.

Step1:  Set the daemon to boot on system start

# chkconfig rhnsd on

Step2: You should verify whether the service is currently running

#service rhnsd status

Step3: If it is, you are all set: otherwise, start the service manually:

# service rhnsd start

For an in-depth understanding of Linux click on

About Author


Author Bio

TekSlate is the best online training provider in delivering world-class IT skills to individuals and corporates from all parts of the globe. We are proven experts in accumulating every need of an IT skills upgrade aspirant and have delivered excellent services. We aim to bring you all the essentials to learn and master new technologies in the market with our articles, blogs, and videos. Build your career success with us, enhancing most in-demand skills .