In brief, the procedure to be followed should resemble the following:
cl> mkpkg -p foo updatewhere foo is the package name, e.g., "noao", "local", etc. The
-p flag can be omitted by defining PKGENV in your
UNIX environment, but this only works for updates to a single package.
An external system of packages may be configured for multiple architecture
support by repeating what was done for the core system. One sets up several
BIN directories, one for each architecture, named bin.arch, where
arch is "sparc", "ddec", "rs6000", etc. These directories, or
symbolic links to the actual directories, go into the root directory of the
external system. A symbolic link bin pointing to an empty directory
bin.generic, and the directory itself, are added to the system's root
directory. The system is then stripped of its binaries with rmbin, if
it is not already a source only system. Examine the file zzsetenv.def in
the layered package LIB directory to verify that the definition for the
system BIN (which may be called anything) includes the string "(arch)",
e.g.,
set noaobin = "noao$bin(arch)/"
cl> cd foo cl> mkpkg sparc cl> mkpkg -p foo update >& spool &where foo is the name of the IRAF package being updated. If any questions arise, examination of a working example of a system configured for multiple architecture support (e.g., the NOAO packages) may reveal the answers.
Once installed and configured, a layered product may be uninstalled merely by archiving the package directory tree, deleting the files, and commenting out the affected lines of hlib$extern.pkg. With the BINs already configured reinstallation is a simple matter of restoring the files to disk and editing the extern.pkg file.