1

I'm attempting to create a Red Hat 7.8 ISO with a reduced set of rpms that have been updated to the latest version. I figured out how to isolate the packages I need and download them, but when I create the new ISO, it boots, starts the installer but it never finds the installation source on the local media. I have followed these steps:

  1. Mount the source ISO
  2. Copy the entire file structure into a temporary folder
  3. Filter the rpms down to just the ones I need
  4. Use yumdownloader to download the latest version of each RPM into a newPackages
  5. Delete the original Packages folder and rename newPackages packages.

The next step is to create the new repodata, which I do by running the following command in Packages:

createrepo -dpo .. .

It creates the new repo files in the repodata folder and replaces the repomd.xml file

When I boot, however, it can't find the repository on the ISO.

Is there another file that needs updating to recognize the new repo, or some option I need to make an ISO compatible repo? Did I delete an rpm that is required for initial installation?

Prdufresne
  • 111
  • 3

1 Answers1

0

I found a number of pages that referenced comps.xml, and I finally figured out that comps.xml on the source ISO has a much longer filename and is in an archive. In my case, the filename was:

c0dee7823d016c47d3d8ad66d65f6cbce5284a00f349dc4d7a72a971c283edd0-comps.xml.gz

Once I figured this out, I extracted the file, and placed it in the parent folder of my new ISO tree. Then, using the following command, I was successfully able to update the original repo with the reduced package list from my Packages folder (run this command from your Packages folder):

createrepo --update -g ../../comps.xml -dpo .. .

Breaking down the command:

  • --update tells createrepo to update the existing files in the repodata folder
  • -g ../../comps.xml copies the package groups from the source comps.xml file
  • -dp the -d flag crates the database files and -p makes the XML files pretty
  • -o specifies the location of the output. In this case, the parent folder which is where the original repodata folder was

The period at the end (.) refers to the current folder, which is where all the packages are.

Prdufresne
  • 111
  • 3