Chapter 3.Building Custom PackagesThere are many things that might go wrong when building software packages. This is espe-cially true when these packages must be delivered and installed through Red Hat Network.This chapter provides an overview of how to build packages for successful delivery via RedHat Network. Topics covered include why to use RPM, how to build packages for RHN,and how to properly sign packages.3.1. Building packages for Red Hat NetworkRed Hat Network uses the RPM Package Manager (RPM) technology to determine whatsoftware additions and updates are applicable to each client system. Packages retrievedfrom Red Hat Network are usually in RPM format. Entire ISO images, however, are avail-able through the Software tab of the Red Hat Network website, but are not available inRHN Satellite Server installations. If your Satellite has Solaris support enabled, you canuse RHN Push to upload Solaris packages to custom channels used by Solaris clients.RPM is a tool that provides users with a simple method for installing, uninstalling, upgrad-ing, and verifying software packages. It also allows software developers to package thesource code and compiled versions of a program for end users and developers.3.1.1. RPM BenefitsRPM provides the following advantages:Easy UpgradesUsing RPM, you upgrade individual components of a system without completely re-installing. When Red Hat releases a new version of Red Hat Enterprise Linux, usersdo not have to reinstall in order to upgrade. RPM allows intelligent, fully-automated,in-place upgrades of your system. Configuration files in packages are preserved acrossupgrades so users do not lose customizations. There are no special upgrade filesneeded to update a package because the same RPM file is used to install and upgradethe package.Package QueryingRPM provides querying options that allows you to search through your entire RPMdatabase for all packages or just for certain files. You can also easily find out whatpackage a file belongs to and from where the package came. The files contained in thepackage are in a compressed archive, with a custom binary header containing useful