-->

Previous | Table of Contents | Next

Page 161

The --recompile option is normally used when a previously installed package needs to be recompiled. --recompile comes in handy when software needs to be compiled against a new version of the kernel.

Here's what RPM displays during a --recompile:


# rpm --recompile cdplayer-1.0-1.src.rpm

Installing cdplayer-1.0-1.src.rpm

* Package: cdplayer

Executing: %prep

...

+ exit 0

Executing: %build

...

+ exit 0

Executing: %install

...

+ exit 0

Executing: special doc

...

+ exit 0

Executing: sweep

...

+ exit 0

#

The very first line shows RPM installing the source package. After that are ordinary executions of the %prep, %build, and %install sections of the spec file. Finally, the cleanup of the software's build directory takes place, just as if the --clean option had been specified.

Since rpm -i and rpm -U are not being used to install the software, the RPM database is not updated during a --recompile. This means that doing a --recompile on an already-installed package may result in problems down the road, when RPM is used to upgrade or verify the package.

12.2.2. rpm --rebuild: What Does It Do?

Package builders, particularly those who create packages for multiple architectures, often need to build their packages starting from the original sources. The --rebuild option does this, starting from a source package file. Here is the list of steps it performs:

  1. Install the specified source package file.
  2. Unpack the original sources.
  3. Build the software.
  4. Install the software.
  5. Create a binary package file.
  6. Remove the software's build directory tree.

Page 162

Like the --recompile option, --rebuild cleans up after itself. The only difference between the two commands is that --rebuild also creates a binary package file. The only remnants of a --rebuild are the original source package, the newly installed software, and a new binary package file.

Package builders find this command especially handy because it allows them to create new binary packages using one command, with no additional cleanups required. There are two times when --rebuild is normally used:

Here's an example of the --rebuild option in action:


# rpm --rebuild cdplayer-1.0-1.src.rpm

Installing cdplayer-1.0-1.src.rpm

* Package: cdplayer

Executing: %prep

...

+ exit 0

Executing: %build

...

+ exit 0

Executing: %install

...

+ exit 0

Executing: special doc

...

+ exit 0

Binary Packaging: cdplayer-1.0-1

...

Executing: %clean

...

+ exit 0

Executing: sweep

...

+ exit 0

#

The very first line shows RPM installing the source package. The lines after that are ordinary executions of the %prep, %build, and %install sections of the spec file. Next, a binary package file is created. Finally, the spec file's %clean section (if one exists) is executed. The cleanup of the software's build directory takes place, just as if the --clean option had been specified.

12.3. Summary

That completes our overview of the commands used to build packages with RPM. In Chapter 13, "Inside the Spec File," we'll look at the various macros that are available and how they can make life easier for the package builder.



Previous | Table of Contents | Next