Fedora-rpm

From Bashlinux
Revision as of 01:44, 6 June 2015 by Manpaz (talk | contribs)
Jump to: navigation, search

__NOTITLE__

Fedora RPM Build

Structure

To build an rpm must be created and/or placed different files under /usr/src/redhat as follow:

  1. Spec file with details of name, dependencies, instructions, etc and script of how to build the rpm under SPEC folder
  2. Compressed file with the sources under SOURCES folder

Build

To build the new rpm, run the command:

# rpmbuild -ba SPEC/newrpm.spec

The created files will be placed as follow:

  1. New RPM created under RPMS/system_architecture folder
  2. RPM with sources and spec file packed under SRPMS folder
  3. Unpacked sources under BUILD folder

Scripts

There are 4 types of scripts:

  1. Pre install: pre
  2. Post install: post
  3. Pre uninstall: preun
  4. Post uninstall: postun

The rpm command has 3 main types of execution to be considered:

  1. install
rpm -i newrpm.rpm
  1. upgrade
rpm -u newrpm.rpm
  1. remove
rpm -e newrpm.rpm
and different values are passed to each script based on which type of execution is performed by the rpm command.
Error creating thumbnail: File missing
Warning
  • Be careful with the usage of each script section, please note the execution order which is crucial at upgrade time.
  • When importing specs from other distros use remove `%` in from of `make`


New installation

The execution order and values passed are:

  •  %pre NEW_PACKAGE ($1 = 1)
  •  %install
  •  %post NEW_PACKAGE ($1 = 1)

Upgrade

The execution order and values passed are:

  •  %pre
NEW_PACKAGE `($1 = 2)`
  •  %install
  •  %post
NEW_PACKAGE `($1 = 2)`
  •  %preun
OLD_PACKAGE `($1 = 1)`
  •  %files
NEW_PACKAGE, Delete all files no longer listed
  •  %postun
OLD_PACKAGE `($1 = 1)`

Remove

The execution order and values passed are:

  •  %preun
OLD_PACKAGE `($1 = 0)`
  •  %files
OLD_PACKAGE, Delete all files listed
  •  %postun
OLD_PACKAGE `($1 = 0)`