Fedora-rpm

From Bashlinux
Revision as of 01:50, 5 February 2010 by Manpaz (talk)
Jump to: navigation, search

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.

More details on [[1]]

#!wiki warning
 '''warning'''

 Be careful with the usage of each script section, please note the execution order which is crucial at upgrade time.
 


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)