RPM packaging. Part 1: basics

This article will help you understand the basic concepts of the RPM packaging and howmo set up an environment building packages.


Debian-based distributions proliferate today, with their well-known .deb package system. However, it is not the only packaging system available. In fact, the LSB say what any distribution who wants to meet the standards must support packets RPM. Let's see how to create one.

We will use Fedora following the instructions from your wiki.

Prepare the environment

Recommended create a user specifically to create the packagesSo we don't break any of ours. We also need a basic selection of packages:

sudo yum install @ development-tools @ fedora-packager

What we need is ready. Now we are going to create the package building environment:

rpmdev-setuptree

Now we have the ~ / rpmbuild folder, in which some other folders are located:

  • BUILD: This is where the package will be built.
  • BUILDROOT: The installation drill takes place here. The files that are supposed to be installed when the end user installs the package will be written.
  • RPMS: Once built, the resulting binary RPM files (.rpm) will be placed here, ready to install.
  • SRPMS: If we so indicate, the source RPM files (.src.rpm) will be placed here, ideal for making a revised or updated version of the package.
  • SOURCES: Here you have to put the original sources (.tar.gz, normally) and the patches to be used.
  • SPECS: Specification files (.spec) are placed here.

    With this we already have the environment prepared. In the next chapter we will learn how to understand those strange files spec.


      Leave a Comment

      Your email address will not be published. Required fields are marked with *

      *

      *

      1. Responsible for the data: Miguel Ángel Gatón
      2. Purpose of the data: Control SPAM, comment management.
      3. Legitimation: Your consent
      4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
      5. Data storage: Database hosted by Occentus Networks (EU)
      6. Rights: At any time you can limit, recover and delete your information.

      1.   Courage said

        Lower those fumes first.

        There are distros that avoid all that you say (Mageia, Open Xange, Kororaa ...)

        Let's see if we investigate a little before we open our mouth

      2.   Rrr said

        The problem with making guides to package RPM is that each distro has its things, although obviously they essentially do not vary. Something that so far does not happen in the deb packages and not to mention in the slack txz! XD

        good guide, it is a very interesting topic

      3.   Courage said

        Good post

      4.   zulander said

        Even Linux does not get tired of offering such radical solutions and aimed at advanced users, when will the day be when they offer something easier for novice users? I'm tired of seeing so much packaging, console, and repository nonsense that all they do is slow down and further thwart the takeover of novice users into the Linux world. I'm not talking about what they do or the progress they have made so far is not good, but I keep criticizing the ways they do it, it is time to do something easy and offer a single complete installation package free of strings. of the internet connection to be able to install something complete. Too bad that companies dedicated to the development of linux operating systems have not realized this small but important detail, which if they took Windows and MacOS very seriously ...

      5.   porter said

        Good stuff I love.
        See if it makes me take a look at the Fedora distro

      6.   Jesus Israel Perales Martinez said

        Excellent just what I needed apparently this project does not have an rpm