Install src.rpm package on Red hat Linux

29,177

Solution 1

Installing a src.rpm is very much like unpacking the source code of a program. If you run (as yourself) :

rpm -vv -Uvh package.src.rpm

You will see the source installed under your home under a rpm tree:

rpm/SOURCES
rpm/SPECS

You will find a spec file telling how the rpm is built. You will find one or more files needed to build the RPM under the SOURCES directory.

You will also see

rpm/BUILD
rpm/RPMS
rpm/RPMS/i386
rpm/RPMS/i686
...

The BUILD dir is used when the rpm is rebuilt. The final RPM gets written under the appropriate RPMS subdirectory.

The interest of installing a src.rpm is to modify and rebuild it. But if the source you need already contains spec file to build the rpm, it's better downloading the source and building the rpm from it when you so desire:

rpmbuild --rebuild -bb rpm.spec

You can find more information on rebuilding srpms here: How to unpack and rebuild RPM packages on Fedora?

Solution 2

Use mock to rebuild it for your distro/version.

mock --resultdir=some/dir -r distro-version-arch --rebuild somepackage.src.rpm

Then install the resulting binary package(s).

Solution 3

Here's a short article I wrote on this, way back when Redhat was at 6.2:

Redhat RPM Source Packages

Share:
29,177

Related videos on Youtube

Kumar
Author by

Kumar

Updated on September 17, 2022

Comments

  • Kumar
    Kumar over 1 year

    How can i install src.rpm package on Red hat Linux ?

  • Kumar
    Kumar about 14 years
    @Ignacio Vazquez-Abram, I am getting error "bash: mock: command not found"
  • Ignacio Vazquez-Abrams
    Ignacio Vazquez-Abrams about 14 years
    Feel free to install it first, with yum.
  • Ignacio Vazquez-Abrams
    Ignacio Vazquez-Abrams almost 14 years
    Note that openly building a package like this can taint it with things not specified in the spec file but installed regardless, which is why it's recommended to use a tool such as mock that builds it in a clean environment.
  • bertieb
    bertieb over 8 years
    Can this be summarised here?