YUM tool is one of the most important tool for Centos/RHEL/Fedora. Though in latest builds of fedora, it has been replaced with DNF but that not at all means that it has ran its course. It is still used widely for installing rpm packages, we have already discussed YUM with examples in our earlier tutorial (READ HERE).
In this tutorial, we are going to learn to create a Local YUM repository, first by using ISO image of OS & then by creating a mirror image of an online yum repository.
Creating YUM with DVD ISO
We are using a Centos 7 dvd for this tutorial & same process should work on RHEL 7 as well.
Firstly create a directory named YUM in root folder
$ mkdir /YUM-
then mount Centos 7 ISO ,
$ mount -t iso9660 -o loop /home/dan/Centos-7-x86_x64-DVD.iso /mnt/iso/
Next, copy the packages from mounted ISO to /YUM folder. Once all the packages have been copied to the system, we will install the required packages for creating YUM. Open /YUM & install the following RPM packages,
$ rpm –ivh deltarpm
$ rpm –ivh python-deltarpm
$ rpm –ivh createrepo
Once these packages have been installed, we will create a file named “local.repo” in /etc/yum.repos.d folder with all the yum information
$ vi /etc/yum.repos.d/local.repo
[LOCAL REPO]
Name=Local YUM
baseurl=file:///YUM
gpgcheck=0
enabled=1
Save & exit the file. Next we will create repo-data by running the following command
$ createrepo –v /YUM
It will take some time to create the repo data. Once the process finishes, run
$ yum clean all
to clean cache & then run
$ yum repolist
to check the list of all repositories. You should see repo “local.repo” in the list.
Creating mirror YUM repository with online repository
The process involved in creating a yum is similar to creating a yum with an ISO image with one exception that we will fetch our rpm packages from an online repository instead of an ISO.
Firstly, we need to find an online repository to get the latest packages. It is advised to find an online yum that is closest to your location, in order to optimize the download speeds. We will be using below mentioned, you can select one nearest to your location from CENTOS MIRROR LIST
After selecting a mirror, we will sync that mirror with our system using rsync but before you do that, make sure that you plenty of space on your server
$ rsync –avz rsync://mirror.fibergrid.in/centos/7.2/os/x86_64/Packages/s/ /YUM
Sync will take quite a while (maybe an hour) depending on your internet speed. After the syncing is completed, we will update our repo-data
$ createrepo – v /YUM
Our Yum is now ready to used. We can create a cron job for our repo to be updated automatically at a determined time daily or weekly as per your needs.
To create a cron job for syncing the repository, run
$ crontab –e
& add the following line
30 12 * * * rsync –avz http://mirror.centos.org/centos/7/os/x86_64/Packages/ /YUM
This will enable the syncing of yum every night at 12:30 AM. Also, remember to create the repository configuration file in /etc/yum.repos.d, as we did above.
That’s it guys, you now have your own yum repository to use. Please share this article if you like it & leave your comments/queries in the comment box down below.
If you think we have helped you or just want to support us, please consider these :-
Connect to us: Facebook | Twitter | Google Plus
Become a Supporter - Donate us some of you hard earned money: [paypal-donation]
Linux TechLab is thankful for your continued support.
Dear sir,
there is one confusion that , can you define the and explain online repository server.
i mean how to install and configure step by step online yum repository server.
thanks
Regards,
Rashid Hussaian
Hello, google lead me here, keep up great work.
please fix your note you should not add space between the name in local.repo