6.2. Uploading Packages to RHN Satellite Server

The RHN Push application allows an organization to serve custom packages associated with a private RHN channel through the RHN Satellite Server. If you want the RHN Satellite Server to update only official Red Hat Enterprise Linux packages, you do not need to install the RHN Push application.

To use the RHN Push application, install the rhnpush package and its dependencies. This package is available to registered RHN Satellite Server systems and may be installed by running up2date rhnpush.

The RHN Push application uploads RPM header information to the RHN Satellite Server database and places the RPM in the RHN Satellite Server package repository. Unlike the RHN Proxy Server's RHN Package Manager, RHN Push never distributes package information, even the headers, beyond the RHN Satellite Server database.

6.2.1. Configuring and Using the RHN Push application


It is recommended that at least one private channel be created to receive custom packages prior to upload, since a channel is required for systems to obtain the packages.

The following command uploads package headers to the RHN Satellite Server and copies the packages to the RHN Satellite Server package repository:

rhnpush -c label_of_private_channel --server localhost pkg-list

The label_of_private_channel is the custom channel created to receive these packages. Be sure you use the precise channel label specified during its creation. If you have one or more channels specified (using -c or --channel), the uploaded package headers will be linked to all the channels identified. If you do not specify a channel, the packages will be deposited in the No Channels section of the Package Management page. Refer to Section 4.6 Assigning Packages to Software Channels for instructions on reassigning packages.

The --server option specifies the server to which the packages will be installed, and is required. RHN Push may be installed on external systems, but running RHN Push locally on the RHN Satellite Server is recommended.

The pkg-list reference represents the list of packages to be uploaded. Alternatively, use the -d option to specify the local directory that contains the packages to be added to the channel. RHN Push can also read the list of packages from standard input (using --stdin).

The following summary contains all command line options for the rhnpush command:

-v --verbose Increase verbosity (can use multiple times).
-d=, --dir=DIRECTORY Process packages from this directory.
-c=, --channel=CHANNEL_LABEL Specify the channel to receive packages. Note that this is required and is not the same as the channel's name. Multiple channels may be specified using multiple instances of -c (e.g. -c=CHANNEL_ONE -c=CHANNEL_TWO).
-n=, --count=N_HEADERS_PER_CALL Process this number of headers per call. Must be an integer. (25 is default.)
-l, --list List only the specified channels.
-r=, --reldir=RELATIVE_DIRECTORY Associate this relative directory with each file.
-o=, --orgid=ORGANIZATION_ID Include your organization's ID number. Must be an integer.
-u=, --username=USERNAME Include RHN username of user that has administrative access to the specified channel. If not provided, rhnpush will prompt for the username of a valid Channel Administrator.
-p=, --password=PASSWORD Include RHN password of user that has administrative access to the specified channel. If not provided, rhnpush will prompt for the password of a valid Channel Administrator.
-s, --stdin Read package list from standard input (a piped ls command, for example).
-X=, --exclude=GLOB Exclude packages that matches this glob expression.
--force Force upload of a package, even if a package of that name and version currently exists in the channel. Without this option, uploading a pre-existing package will return an error.
--nosig Don't fail if packages are unsigned.
--newest Push only the packages that are newer than those on the server. Please note that source RPMs are special in that their versions are never compared. Therefore, using this option with RHN Push will upload source RPMs for the specified channels only if they were not previously uploaded, and binaries built from them exist in those channels. In other words, you have to upload a binary RPM before being able to use --newest with its source RPM.
--header Upload only the headers.
--source Upload the indicated source packages. (We treat them differently.)
--serverSERVER Specify the server to which packages will be uploaded. Currently, a value of http://localhost/APP is necessary. This parameter is required.
--test Only print the packages to be pushed, don't actually push them.
-h, --help Briefly describe the options.
-?, --usage View the usage summary.

Table 6-2. rhnpush options


These command line options are also described in the rhnpush man page: man rhnpush.