Packaging software bundles

The SMIT Install application look for bundles in /usr/sys/inst.data/sys_bundles and in /usr/sys/inst.data/user_bundles.

The sys_bundles location is typically reserved for system-defined bundles (those which come with AIX®). Users can create their own bundle files in the user_bundles directory.

The bundle definition file name must end in .bnd, because the AIX installation interfaces that process bundles recognize only bundle files that end in .bnd. Use any editor to create bundle files, which can contain comments and fileset names. Lines beginning with the pound sign (#) are recognized as comments and are ignored by the bundle processing code. When you have completed your list of filesets, save the file and make sure the file has the appropriate read permission. Invoking a bundle installation interface displays your bundle without the .bnd extension.

The following are examples of the predefined bundles:

  • Server Bundle. A collection of software packages for machines running AIX in a multiuser standalone or networked environment. This bundle emphasizes functionality over disk utilization.
  • Graphics Bundle. A collection of software packages that provides support of graphical environments. Graphical support may be automatically installed on some systems during BOS installation.
  • Migration Bundle. This bundle is created when there was not enough disk space available to complete a migration installation during the BOS installation process. The bundle consists of a collection of software packages that must be installed to complete your migration. You must install this bundle to complete the migration installation. Install the bundle using the smit update_all fast path.

    You may also need to install the Graphics Bundle.

Some system bundles might refer to installation images that are spread across multiple media. If you see errors indicating that filesets could not be found on the media you are using, insert the media containing the missing filesets and retry the bundle installation.

The system bundles are located in the /usr/sys/inst.data/sys_bundles directory. To list the system bundles, type the following:
ls /usr/sys/inst.data/sys_bundles/*.bnd
You can also use the SMIT list_bundle fast path to list the system bundles.

The geninstall and gencopy commands handle multiple software sources to be specified when a bundle file is used. This is accomplished by grouping software images together under #MEDIA= headings in the bundle file. Any images listed under such a heading must reside on the specified media. Media can be specified as the name of a CD (such as Base Install Media Volume 1 or AIX Linux® Toolbox CD) or as a local directory (such as the /usr/sys/inst.images directory).

The #MEDIA= heading is used to designate the location of the file sets or packages in the bundle. For example, the BaseAndLinuxCD Bundle might contain the following information:
# BaseAndLinuxCDBundle contains packages on volume 1 of base media and on the AIX 
# Linux Toolbox CD

#MEDIA=Base Install Media Volume 1
I:bos.adt.prof

#MEDIA=AIX Linux Toolbox CD
R:mtools
R:vim-common
When the geninstall and gencopy commands prompt for the additional media, they use the words provided in the #MEDIA= line. In the previous examples, the geninstall and the gencopy commands display a message informing you that the bos.adt.prof installp package is located on Base Install Media Volume 1, and the mtools and vim-common RPM packages are located on the AIX Linux Toolbox CD.
The #MEDIA= heading can also be used to indicate a directory. For example, the CD_Directory Bundle might contain the following information:
# CD_DirectoryBundle contains packages on volume 1 of base install media
# and in /usr/sys/inst.images

#MEDIA=/usr/sys/inst.images
I:bos.games

#MEDIA=Base Install Media Volume 1
I:bos.adt.prof
R:cdrecord-1.9-4
This informs the geninstall and the gencopy commands that the bos.games installp package is located in the/usr/sys/inst.images directory, and that the bos.adt.prof installp package and the cdrecord-1.9-4 RPM package are located on Base Install Media Volume 1.

The geninstall and gencopy commands understand the "%L" wildcard in a bundle file. This wildcard is replaced at runtime with the value of the appropriate locale environment variable; LC_ALL is checked first, then LC_MESSAGES, and then LANG. This allows you to create a single bundle file corresponding to multiple installation configurations.

As an example, assume you provide the ABC product, which requires the abc.rte and abc.com filesets, as well as a message catalog fileset and a documentation fileset. You then provide the message and documentation filesets in English, French, and German, as follows:
abc.cat.en_US
abc.cat.fr_FR
abc.cat.de_DE

abc.doc.en_US
abc.doc.fr_FR
abc.doc.de_DE
The following bundle file would cause the appropriate combination of filesets to be installed, according to the locale variables on the target system:
I:abc.rte
I:abc.com
I:abc.cat.%L
I:abc.doc.%L
Note: If expanding the %L wildcard does not yield a fileset name corresponding to a fileset available on the installation media, then the UTF-8 version of the current locale will be tried, then en_US, and then EN_US.
You can determine whether or not the contents of a bundle are installed on your system with the lslpp -Lb command. For example, to determine whether the components of the Alt_Disk_Install bundle, which is located in the /usr/sys/inst.data/sys_bundles directory, are installed, run the following command:
lslpp -Lb Alt_Disk_Install.bnd
You might see output that looks similar to the following:
Fileset                            Level      State  Type  Description
------------------------------------------------------------------------------------------------------
bos.alt_disk_install.boot_images   7.1.00     C      F     Alternate Disk Installation Disk Boot Image
bos.alt_disk_install.rte           7.1.00     C      F     Alternate disk Installation Runtime

State codes:
 A -- Applied.
 B -- Broken.
 C -- Committed.
 E -- EFIX Locked.
 O -- Obsolete. (partially migrated to newer version)
 ? -- Inconsistent State...Run lppchk -v.

Type codes:
 F -- Installp Fileset
 P -- Product
 C -- Component
 T -- Feature
 R -- RPM Package