≡ Menu

Howto Setup yum repositories to update or install package from ISO CDROM Image

yum (Yellow dog Updater Modified) is a package manager for RPM compatible Linux systems such as CentOS, Fedora core and latest Redhat Enterprise Linux.

So how do you use yum to update / install packages from an ISO of CentOS / FC / RHEL CD?

Creation of yum repositories is handled by a separate tool called createrepo, which generates the necessary XML metadata. If you have a slow internet connection or collection of all downloaded ISO images, use this hack to install rpms from iso images.

Step # 1: Mount an ISO file

Type the following command (replace iso file name with the actual iso file):
# yum install createrepo
# mkdir -p /mnt/iso/{1,2,3}
# mount -o loop /path/to/centos1.iso /mnt/iso/1

Step # 2: Create a repository

Use createrepo to generate the necessary XML metadata. Type the following commands:
# cd /mnt/iso
# createrepo .

Clean repo, enter:
# yum clean all

Step # 3: Create config file

You need to create a repo config file in /etc/yum.repos.d/ directory.
# vi /etc/yum.repos.d/iso.repo
Append following text:
[My ISO Repository]
baseurl=file:///mnt/iso
enabled=1

Save and close the changes.

Now use yum command to install packages from ISO images:
# yum install package-name

Tweet itFacebook itGoogle+ itPDF itFound an error/typo on this page?

{ 49 comments… add one }

  • prince August 10, 2007, 6:10 pm

    thanks for the thismanual,can u tell me how to install update and coresponsding dependancies from a url like rpm.pbone.net

    • noor January 22, 2011, 6:13 pm

      it is not working for me.

      • noor January 22, 2011, 6:50 pm

        hi all,

        yes right, when yum is configured locally it is working. how to do that on the client machine.

        client is nfs client. how will i configure yum repository now.
        becos it is giving error if i configured in the same way. problem is it is unable to read /mnt/iso/1 directory.

        error downloading packages kernel-headers-2.6.18-194: failure: 1/Server/kernel-headers…rpm from my_iso_repository: errno 256 no more mirrors to try.

  • Henk Kloepping September 12, 2007, 10:48 am

    yum may not be able to install ‘createrepo’ as it may need a repository to find it – you know, the one you try to create ;-)..

    This can be resolved by installing it ‘by hand’, e.g.

    # rpm -i /mnt/iso/4/Server/createrepo-0.4.4-2.fc6.noarch.rpm

    Thanks for the article, keep it up!

  • nixCraft September 12, 2007, 4:23 pm

    Henk,

    Thanks for pointing out this issue

  • fizzix April 1, 2008, 1:52 pm

    Thanks for the tip. Seems to work great for the most part.

    I used it to create a local repo for FC7 with the original fc7 isos and an Everything snapshot as of ~Jan ’08. Most of the packages are fine, but some of them (openoffice.org-pyuno in particular) are prepending a “1:” to the version number so it’s failing the dependency check.

    –> Package openoffice.org-pyuno.i386 1:2.2.0-14.8 set to be updated
    –> Processing Dependency: openoffice.org-core = 1:2.2.0-14.8 for package:openoffice.org-pyuno
    –> Finished Dependency Resolution
    Error: Missing Dependency: openoffice.org-core = 1:2.2.0-14.8 is needed by package openoffice.org-pyuno

    But I’ve got openoffice.org-2.2.0-14.8 installed!

    Looking through yum list available shows a subset of packages with the “1:” prepended to the version number.

    Any thoughts on how I can get around this?

    Thanks in advance.

  • alice September 3, 2008, 2:11 pm

    Use /etc/yum.repos.d/CentOS-Media.repo

  • brandon January 27, 2009, 12:19 am

    so I’ve gone through this process, and have all 7 of rhel 5.3 iso’s (cd files) mounted and as the location for the repo, however it doesn’t want to complete without the public key. do I have to generate and import a key?

  • ratzdecan March 17, 2009, 5:34 pm

    You have to import all the gpg keys for the packages.
    rpm –import /mnt/iso/{1,2,3}/RPM-GPG-KEY

    Take a look here:
    http://www.linuxquestions.org/questions/fedora-35/public-key-not-installed-468615/

  • Procfs March 18, 2009, 4:41 am

    Hi thanks this workes grate

  • Usamantaray June 19, 2009, 6:16 am

    Error : Repository ‘MY ISO Repository’ is missing name in configuration, using id
    Fix :
    # vi /etc/yum.repos.d/iso.repo
    [My ISO Repository]
    name=ISO
    baseurl=file:///mnt/iso
    enabled=1

  • Uv December 12, 2009, 11:12 pm

    I am wondering how you createrepo within an ISO image
    That needs a trick to mount writable as it does not on its own.
    Please share this trick….

  • elvir December 30, 2009, 4:02 pm

    Thanks for Howto, for some reason when this implemented for RHEL 5.4 in case there is name of repository in iso.repo set up as
    [My ISO Repository]
    it will complain with error
    bad id for repo
    and will not index files …
    workaround
    [MyISORepository] ….no spaces in repsitory name.

    Regards,

  • Bijan January 19, 2010, 7:47 am

    Hey elvir, thanks for the tipc. I had the exact problem ;)

  • baseurlme January 28, 2010, 2:46 am

    Hi and thank you for the tips, they are great. I will be using the following entry, which should work I believe.
    [MyUpdateRepository]
    name=updater
    baseurl=file:///repo_update/updaterepos
    enabled=1

    Looks good to you? I will be doing this in about two weeks and will let you know how it goes. Any suggestions?
    Thanks again for the assist.

  • sarath April 16, 2010, 4:52 am

    Hi,

    When iam trying the second step that is :

    # cd /mnt/iso
    # createrepo .
    am getting an error as follows:
    Directory /mnt/iso/. must be writable.

    Please help……

    Sarath M.

  • Sadiel April 20, 2010, 12:52 pm

    Nice answer, but when I did all that step I got this error:
    Bad id for repo: My ISO Repository, byte=2
    I were searching in internet only I found one answer and don’t resolve my problem.
    Could you help me, please? I can’t download from internet, so my only way to install something in federo is in you way.
    Thank

  • Shaikh Dawood April 25, 2010, 8:16 pm

    For “Bad id repo” problem the solution is that the repository ID should not have a spaces
    IT should be [My-ISO-Repository]

    • Ajeet July 25, 2010, 10:42 am

      Sharath,

      Awesome !!! That worked for me.Thanks.

    • Suresh July 25, 2011, 9:01 am

      Thank you very much!!! Now it is working perfectly.

  • Christophe Quintard May 19, 2010, 8:26 am

    Sarath,
    what you need to do is to use another directory for the repository data :
    # mkdir /tmp/repo
    # cd /mnt/iso
    # createrepo -o /tmp/repo .

    Then use /tmp/repo as the repository directory instead of /mnt/iso

  • Greg May 28, 2010, 4:39 pm

    What about errors like this one when I tried “yum install expect”

    Public key for expect-5.43.0-5.1.i386.rpm is not installed

    I know I can force but is there a way to clear it up?

    • Per May 31, 2010, 7:59 am

      Greg:

      It’s probably because the package is signed, and you don’t have the gpg key.
      To bypass this, type:
      yum install expect –nogpg

      • Ronan June 8, 2010, 4:06 pm

        It didn’t work for me.
        I had to type:
        yum install package-name –nogpgcheck

        • Ronan June 8, 2010, 4:08 pm

          with 2 dashes – –
          when you type 2 dashes they appear as one long one

  • Rashid Iqbal August 13, 2010, 10:53 am

    I am trying to create the local repository but getting errors: below ism y setup
    /data/iso/dvd
    mount -o loop CentOS-5.5-i386-bin-DVD.iso /data/iso/dvd
    cd /data/dvd
    createrepo .

    vi /etc/yum.repository.d/iso.repo
    [My-ISO-Repositary]
    baseurl=file:///data/iso
    enabled=1

    when I tried to install the software thorugh
    yum –enablerepo=iso.repo install bind

    [root@server ~]# yum –enablerepo=iso.repo install bind
    Loaded plugins: fastestmirror
    Repository ‘My-ISO-Repositary’ is missing name in configuration, using id

    Error getting repository data for iso.repo, repository not found
    [root@server ~]#

    Kinldly help me solve this problem

  • me November 25, 2010, 10:23 pm

    Are you drunken?

    setting up a software-repro by using yum and a software-repro? Well man, I don’t know what you are smoking, but I like to ask you if you mind to share it …

  • Rashid Iqbal November 26, 2010, 10:50 am

    hope that I was drunk.
    let me refine my question.
    I want to setup yum repository
    I copied the cd/DVD file into /var/www/html/centos
    vim /etc/yum.repos.d/server.repo
    [Server]
    name=server repository
    file:///var/www/html/centos
    enable=1

    when I tried to install the software through
    yum –enablerepo=server install package name

    me receiving the same mentioned above error.

  • Ouk Khean February 6, 2011, 9:48 am

    Still error, I can’t install from ISO image.
    Please help.

  • deanet February 24, 2011, 7:19 am

    you couldn’t createrepo on read only media.. you should use symlink tricks :D

    [root@rhel6 ~]# cd /mnt/cdrom/Packages/
    [root@rhel6 Packages]# mkdir /mnt/repo
    [root@rhel6 Packages]# find . -name "*.rpm" -exec ln -s `pwd`/{} /mnt/repo/{} \;
    [root@rhel6 Packages]# cd /mnt/repo/
    [root@rhel6 repo]# createrepo .
    2865/2865 - pcsc-lite-libs-1.5.2-3.1.el6.i686.rpm
    Saving Primary metadata
    Saving file lists metadata
    Saving other metadata
    [root@rhel6 repo]# cat /etc/yum.repos.d/rhel-beta.repo
    [rhel-beta-6]
    name=Red Hat Enterprise Linux Beta
    baseurl=file:///mnt/repo/
    enabled=1
    gpgcheck=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta-2
    [root@rhel6 repo]# yum update
    Loaded plugins: rhnplugin
    This system is not registered with RHN.
    RHN support will be disabled.
    rhel-beta-6                                              | 1.3 kB     00:00 ...
    rhel-beta-6/primary                                      | 1.3 MB     00:00 ...
    rhel-beta-6                                                           2865/2865
    Setting up Update Process
    No Packages marked for Update
    [root@rhel6 repo]# yum list | grep mysql-server
    This system is not registered with RHN.
    RHN support will be disabled.
    mysql-server.i686                     5.1.42-4.el6                   rhel-beta-6
    [root@rhel6 repo]#
    [root@rhel6 repo]# yum install mysql-server.i686
    Loaded plugins: rhnplugin
    This system is not registered with RHN.
    RHN support will be disabled.
    Setting up Install Process
    Resolving Dependencies
    --> Running transaction check
    ---> Package mysql-server.i686 0:5.1.42-4.el6 set to be updated
    --> Processing Dependency: mysql = 5.1.42-4.el6 for package: mysql-server-5.1.42-4.el6.i686
    --> Processing Dependency: perl-DBD-MySQL for package: mysql-server-5.1.42-4.el6.i686
    --> Running transaction check
    ---> Package mysql.i686 0:5.1.42-4.el6 set to be updated
    ---> Package perl-DBD-MySQL.i686 0:4.013-3.el6 set to be updated
    --> Finished Dependency Resolution
    Dependencies Resolved
    ================================================================================
     Package               Arch        Version             Repository          Size
    ================================================================================
    Installing:
     mysql-server          i686        5.1.42-4.el6        rhel-beta-6        8.6 M
    Installing for dependencies:
     mysql                 i686        5.1.42-4.el6        rhel-beta-6        3.8 M
     perl-DBD-MySQL        i686        4.013-3.el6         rhel-beta-6        134 k
    Transaction Summary
    ================================================================================
    Install       3 Package(s)
    Upgrade       0 Package(s)
    Total download size: 13 M
    Installed size: 30 M
    Is this ok [y/N]: y
    Downloading Packages:
    --------------------------------------------------------------------------------
    Total                                            19 MB/s |  13 MB     00:00
    Running rpm_check_debug
    Running Transaction Test
    Transaction Test Succeeded
    Running Transaction
      Installing     : mysql-5.1.42-4.el6.i686                                  1/3
      Installing     : perl-DBD-MySQL-4.013-3.el6.i686                          2/3
      Installing     : mysql-server-5.1.42-4.el6.i686                           3/3
    Installed:
      mysql-server.i686 0:5.1.42-4.el6
    Dependency Installed:
      mysql.i686 0:5.1.42-4.el6          perl-DBD-MySQL.i686 0:4.013-3.el6
    Complete!
    [root@rhel6 repo]#
    

    gud lak.. ;)

  • sathya February 28, 2011, 4:26 pm

    software to play the video in linux

  • Swaminathan March 17, 2011, 11:51 am

    I have Oracle EL5.5 installed in virtualbox 4.0.4.
    ISO mounted automatically in virtual dvd drive in /media/Enterprise Linux dvd 20100405.
    Created dvd.repo in /etc/yum.repos.d.

    Content of file:
    [el5 dvd]
    name=Enterprise Linux dvd 20100405
    baseurl=file:///media/”Enterprise Linux dvd 20100405″/Server
    enabled=1
    gpgcheck=1
    gpgkey=file:///media/Enterprise Linux dvd 20100405/RPM-GPG-KEY file:///media/Enterprise Linux dvd 20100405/RPM-GPG-KEY-oracle

    yum clean all results:
    [root@primedbs Enterprise Linux dvd 20100405]# yum clean all
    Loaded plugins: security
    Bad id for repo: el5 dvd, byte = 3

    If I remove the space in repository ID as [el5dvd]
    yum clean all results:
    [root@primedbs Enterprise Linux dvd 20100405]# yum clean all
    Loaded plugins: security
    Options Error: Error parsing ‘file:///media/Enterprise Linux dvd 20100405/RPM-GPG-KEY file:///media/Enterprise Linux dvd 20100405/RPM-GPG-KEY-oracle’: URL must be http, ftp, file or https not “”

    Please help.

    • deanet March 17, 2011, 10:58 pm

      gpgcheck=1

      you have 2 option:
      1. make sure your gpg is right.
      2. disable gpg check with gpgcheck=0

  • Hieu Tran April 5, 2011, 4:19 am

    @Swaminathan:
    Created dvd.repo in /etc/yum.repos.d.

    Content of file:
    [el5 dvd] => [el5-dvd]
    name=Enterprise Linux dvd 20100405

  • VIKAS April 28, 2011, 11:33 pm

    yum grouplist does not work with this method

  • Suresh May 10, 2011, 11:41 am

    I am getting the following error. please help me.

    Loaded plugins: rhnplugin
    Config Error: File contains no section headers.
    file: file://///etc/yum.repos.d/iso.repo, line: 1
    ‘baseurl=file:///mnt\n’

  • rupan3rd May 13, 2011, 9:23 am

    Just a note about the suggested command to install createrepo manually:
    > # rpm -i /mnt/iso/4/Server/createrepo-0.4.4-2.fc6.noarch.rpm
    unless you have a “full” OS installation (which is likely not the case, as you are missing createrepo), the installation of the individual package is surely going to drag you into the hell of resolution of the dependencies before it can be actually installed.

    Not that I have a solution for the above issue, but is worth underlying that it is better to make sure createrepo is installed since the beginning.

  • Sahil July 25, 2011, 7:35 am

    Thanks that was good one!!!!

  • Javad October 8, 2011, 12:01 pm

    Was really helpful!! Thanks a ton guys!!!

  • Dinu November 30, 2011, 5:45 am

    without working “yum” how we execute the command “yum install createrepo” in step 1 ?

  • rashid February 14, 2012, 4:52 pm

    without working yum you need to install a createrepo rpm with rpm command
    rpm -ivh createrepo-0.9.8-4.el6.noarch

    after this either download the rpms from a mirror (Redhat , Centos,etc)
    using lftp and wget or copy the rpms from dvd or use iso image

    i copied from dvd into the directory /srv/www/centos/yum

    next type following command to create the meta data and yum repos
    createrepo /srv/www/centos/yum

    next either edit yum.conf or make a new file in /etc/yum.repos.d with the .repo
    extension

    cd /etc/yum.repos.d
    vi mylocal.repo

    type the following lines or edit according to your directory structure
    [MyISORepository]
    name=myrpms
    baseurl=file:///srv/www/centos/yum
    enabled=1

    that’s it so simple

  • Mithun March 29, 2012, 2:30 pm

    Does yum comes along with the redhat dvd or we need to install it separately?

  • M.PASHA July 4, 2012, 12:35 pm

    Hi Team,

    I have setup local and network yum server. Recently i got new application requirement which my present yum server does not have it. How can i update new rpm’s in present yum server.

    Tanks
    M.PASHA

  • Prashant Nirgun February 23, 2013, 2:26 pm

    i copied rpm from dvd and create local repository it works fine but i had an error while i used yum grouplist or yum groupinstall Development tools
    Obviously i dont have the package Group list anybody know from where i can get the list or build the list i am using RHEL6 32 Bit. Development tools is containing lot many packages i cant installed it one by one.

  • Torsten March 18, 2013, 2:23 pm

    Hi Team,

    so i have followed your how to! I use a ContOs 6.3

    So after the steps i want install a package with yum for tessting but i get the following messeag:

    could not retrieve mirrorlist http://mirrorlist.centos.org/….
    14: PYCURL ERROR 6 – Couldn d resolve host mirrorlist.centos.org
    ERROR: Cannot find a valid baseurl for repo: base!

    For information the Server has no connection to the Internet! I have create a iso of the hole Repo from the internet and has mount it!

    I hope you can help me!

    Thx
    Torsten

  • dinakar September 6, 2013, 9:56 am

    Thanks for this article… It helped me a lot

  • Kelly October 1, 2013, 8:32 pm

    Okay, now how do I back this out, and make the default way work again? I’ve backed out all the things above (at least, I think I have), done a “yum clean all,” and now when trying to use yum to go to the CentOS repositories over the Internet I get the following error:

    # yum install gcc
    Loaded plugins: fastestmirror, refresh-packagekit, security
    Determining fastest mirrors
    Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os error was
    14: Peer cert cannot be verified or peer cert invalid
    Error: Cannot find a valid baseurl for repo: base
    

    Thanks!

  • chrisy September 30, 2014, 3:26 am

    I have created a correct iso.repo file. However, I got error saying Cannot retrieve repository metadata (repomd.xml) for repository: iso-repository. Please verify its path and try again
    How to fix this issue?

Leave a Comment