Configuring Local Yum Server on RHEL 5.x (Part-1)


Yum or yellow dot update manager is the front of RPMs. It is only design for packages dependencies. Yum can collect packages from more than one location. To download & install RPM packages, it use a repository file, a repository is a single collection point for all documents that relate to the program. Generically repository refers to a central place where data is stored and maintained. A repository can be a place where multiple databases or files are located for distribution over the network, or a local machine. Yum first read this file list then it can download & install the packages.

Why Yum?

Generally in every Linux platform, it is difficult to install the packages (Software), because in Linux a single package is related with other packages, so if you want to install any package or packages then you need to know the other related packages name, but it is tough to remember so you can install packages by using yum. Yum could be use as Local server that means by configuring yum you can install packages on local machine or can be use in other machines on your network. You can also download and install packages from internet by yum.

Pre-requisites of Yum Server:

  • A Linux Server with IP address & hostname yumsrv
  • A Linux Client with IP address 210.207.201.x & hostname pc1 
  • Configure NIC card on every machine
  • Update /etc/hosts file on both Linux system or use DNS system for name resolution.
  • A DVD-ROM with RHEL5 DVD

Necessary configuration for Server & Client Machine

IP Configuration: Change your server & client machine IP address as like below.

[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

#Broadcom Corporation Net link BCM57875 Gigabyte Ethernet PCI Express

HWADDR=00:0C:29: EB: B2: CA


Changing Host name: Change your server & client machine name as like below.

[root@localhost ~]# vi /etc/sysconfig/network


Local Yum Server

 Step-1: Mounting the RHEL5 DVD.

Insert the RHEL5 DVD into your DVD-ROM and create a directory under the /mnt/ directory named rhel5 then mount the DVD into /mnt/rhel5/ directory.

[root@yumsrv ~]# mkdir /mnt/rhel5
[root@yumsrv ~]# mount /dev/block device name /mnt/rhel5/

Note: If you are using usb-dvd-rom then your block device name will be scd0, if your device IDE dvd-rom then your device will dvd-hdd, if else you are using SATA dvd-rom then device will be only dvd, but keep remember it that when you are working on Vmware Workstation then you have to use only cdrom.

Step-2: Copy all the files from DVD source.

Create a directory into /var/www/html/rhel5 then copy all the file from /mnt/rhel5 directory and keep into /var/www/html/rhel5 directory

[root@yumsrv ~]# mkdir /var/www/html/rhel5
[root@yumsrv ~]# cp –r /mnt/rhel5/* /var/www/html/rhel5/

Or you can directory copy /mnt/rhel5 directory without creating /var/www/html/rhel5 directory

[root@yumsrv ~]# cp –r /mnt/rhel5 /var/www/html/

Step-3: Unmount and eject the DVD

[root@yumsrv ~]# umount /mnt/rhel5/
[root@yumsrv ~]# eject /dev/block device name

Step-4: Installing createrepo RPM package for creating Repository file for DVD source.

Now go to the mount point directory (var/www/html/rhel5/) and execute the command below for installing the RPM package.

[root@yumsrv ~]# cd /var/www/html/rhel5/Server/
[root@yumsrv Server]# rpm –ivh createrepo-0.4.11-3.el5.noarch.rpm

Warning: createrepo-0.4.11-3.el5.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
########################################### [100%]
########################################### [100%]

Step-5: Creating Repository file.

Now go to the /var/www/html/rhel5/ directory and create repodata file for DVD source.

[root@yumsrv ~]# cd /var/www/html/rhel5/
[root@yumsrv rhel5]# createrepo .

Step-6: Edit yum.conf file.

Now finally tell to yum use this “repo” frile for installing packages. It will automatically done by configuring yum.conf file

[root@yumsrv ~]# vi /etc/yum.conf


name=Red Hat Enterprise Linux Local Repository


Step-7: Create Local debug information.

Now configure the debug information for DVD source by editing rhel-debuginfor.repo file.

[root@yumsrv ~]# cd /etc/yum.repos.d
[root@yumsrv ~]# cp rhel-debuginfor.repo  rhel5.repo
[root@yumsrv yum.repos.d]# vi rhel5.repo

name=Red Hat Enterprise Linux Local Repository Debuginfo


Note: Remove or move the rhel-debuginfo.repo file, otherwise yum will try to use this file.

Step-8: Disable RHN Plug-ins.

Now finally disable the RHN plug-ins and tell to yum that just install the packages.

[root@yumsrv ~]# cd /etc/yum/pluginconf.d
[root@yumsrv pluginconf.d]# vi rhnplugin.conf



Step-9: Testing the yum server.

Now verify that your Yum is working properly by following this command.

[root@yumsrv ~]# yum clean all
[root@yumsrv ~]# yum update
[root@yumsrv ~]# yum list
[root@yumsrv ~]# yum install kernel* gcc* lib* httpd* vsftpd* -y
[root@yumsrv ~]# yum erase kernel* gcc* lib* httpd* vsftpd* -y

So, now you can install & uninstall your all required packages by using yum command with install & erase command.

Configure yum server for Client machine:

If you want to provide client machine to download & install the packages via yum server, then you will have to enable following services below on your yum server. In this case I am describing both of them, but in real world you can configure both of them or one of them.

  • By Enabling HTTP Services
  • By Enabling FTP Services

Enabling HTTP Services in Yum Server

Step-1: Installing http RPM package

[root@yumsrv ~]# yum install httpd* -y

Step-2:  Configuring the httpd.conf file.

Now go to the main configuration file for enabling http services

[root@yumsrv ~]# vi /etc/httpd/conf/httpd.conf



Line Number

Orginal File Text

Modified File Text

Listen Specify the Port Number where apache will listen on


ServerAdmin e-mail address of the server administrator



ServerName Put the host name(FQDN)of web server

DocumentRoot Specify the html file location of the web server



NameVirtualHost Set web Server IP which will contain the virtual host



** Also go to the end of the configuration file for configuring Virtual host

ServerAdmin     root@
DocumentRoot    /var/www/html

Tips: To edit httpd.conf file set Line number & enter Follow the method.

Esc → set number → Enter → Esc → Shift+: → type line number which you want to edit → Enter → press I for insert mode → then edit → Save & Exit.

Step-3:  Editing hosts file

If DNS is not use for http services then you put the host name and IP address of yum server in to the /etc/hosts file in every client machine otherwise packages will be failed to download & install. The configuration file will look like below,

[root@yumsrv ~]# vi /etc/hosts

# Do not remove the following line, or various programs
# that require network functionality will fail.       localhost.localdomain localhost  yumsrv     yumsrv

Step-4:  After configuring http service you have to restart httpd service

[root@yumsrv ~]# service iptables  stop
[root@yumsrv ~]# chkconfig iptables off
[root@yumsrv ~]# service network restart
[root@yumsrv ~]# service httpd restart
[root@yumsrv ~]# chkconfig httpd on

HTTP Client side configuration

Step-1:  Locating repository information

[root@pc1 ~]# vi /etc/yum.conf


name=Red Hat Enterprise Linux Local Repository


Step-2:  Locating debug information

[root@pc1 ~]# cd /etc/yum.repos.d/
[root@pc1 yum.repos.d]# cp rhel-debuginfo.repo  rhel5.repo
[root@pc1 yum.repos.d ~]# vi rhel5.repo

name= Red Hat Enterprise Linux Local Repository Debuginfo


Note: Now remove or move the rhel-debuginfo.repo file, otherwise yum will be try to use this file

Step-3:  Disable RHN plug-ins

[root@pc1 ~]# cd /etc/yum/pluginconf.d
[root@pc1 ~ pluginconf.d]# vi rhnplugin.conf



Step-4:  Testing the server

Now verify that your client can download and install packages from yum server by typing the command below.

[root@pc1 ~]# yum clean all
[root@pc1 ~]# yum update
[root@pc1 ~]# yum list
[root@pc1 ~]# yum install kernel* gcc* lib* httpd* vsftpd* -y
[root@pc1 ~]# yum erase kernel* gcc* lib* httpd* vsftpd* -y

So, now you can install & uninstall your all required packages from local http server by using yum command.

Enabling FTP Services in Yum Server

Your client can download and install packages from yum server using FTP services. For providing FTP services you have to create a public directory named “rhel5” into /var/ftp/pub/ directory and put all the packages in it.

Step-1:  Installing the ftp package

[root@yumsrv ~]# yum install vsftpd*

Step-2:  Edit the vsftps.conf file

[root@yumsrv ~]# vi /etc/vsftpd/vsftpd.conf


Line Number

Orginal File Text

Modified File Text





Note: remove the “#” from line number 27,31,81,81 but do not remove “#” from the line 89 & 91

[root@yumsrv ~]# service iptables stop
[root@yumsrv ~]# chkconfig iptables off
[root@yumsrv ~]# service network restart
[root@yumsrv ~]# service vsftpd restart
[root@yumsrv ~]# chkconfig vsftpd on

Client side configuration

Follow the “HTTP Client configuration” Just replacehttp://” With Also configure the “/etc/hosts” file.

Author Info

Md. Kamrul Hassan

Myself is a Computer Network Specialist. Working in a training center (name - Acme IT) in Bangladesh. Basically most of the tutorial I have written here is created for my students. Happy to know if it become useful for visitors. You can find me at Facebook

  • Stephania Hillburg

    Nice post. Do you think this is necessary? Because i don`t think so. But except of this i read this post pleasantly. I hope you will write so good post soon.