UPDATEP(8,C) AIX Commands Reference UPDATEP(8,C) ------------------------------------------------------------------------------- updatep PURPOSE Updates one or more Licensed Program Products (LPPs). SYNTAX one of +------+ +-| -a |-+ | | -ac | | | | -ai | | +---------------+ +-----------------+ +------+ +--| | -aci | |--| +-----------+ |--| +-------------+ |--| |--| | | +------+ | +-| |-+ +-| |-+ +- -q -+ | | +----+ | +- -n user -+ +- -d device -+ | +--| -s |--+ | +----+ | | one of updatep ---| +-----+ | | -r | |---| -rx |---| | | -c | | +-----+ | | one of | +-----+ +---------------+ +---| -u |--- lpp.name --- vv.rr.llll.ffff ---| +-----------+ |---| | -ur | +---------------+ +-| |-+ +-----+ vv = version +- -n user -+ rr = release llll = level ffff = fix DESCRIPTION Warning: Under no circumstances attempt to run more than one installation or update process at the same time. The primary site must be up when executing updatep. Failure to perform these steps may result in a failure in the installation or update of the active files being serviced. The updatep command controls the update process for one or more LPPs. It also lets you determine the status of pending LPP updates and provides documentation Processed March 20, 1992 UPDATEP(8,C) 1 UPDATEP(8,C) AIX Commands Reference UPDATEP(8,C) about the updates. You must be a operating with superuser authority to run this command. The updatep command supports an apply/commit/reject philosophy. To apply one or more LPPs, you use the -a or the -ai flags. You must then use either the -c flag to commit the LPP or the -r flag to reject the LPP. Normally you should not use -r until you have tested the LPP on your system. If you specify -ac or -aci, you can apply and commit in one operation. The -r flag must be used separately. During an apply, updatep normally saves the current versions of files that are being updated. If needed, these files can be used to do a recovery or reject. The apply phase is primarily for restoring the updated files from the PTF media, which requires a certain amount of free disk space in the file systems involved, such as root, /tmp, /usr/lpp.save, and /usr/lpp. If there is not enough space or inodes to install the updated files, updatep displays the resource requirements and then terminates the update session. You should increase the free space/inodes in each of the file systems reported to have insufficient resources. Normally, updatep saves the current versions of the files in /usr/lpp before these files are updated. If there is insufficient free space or inodes in /usr/lpp, updatep gives you the option of either ending the command or of allowing it to continue. If you end the command, you can take action to increase the free space/inodes in /usr/lpp. If you continue, no current versions of files are saved and updatep automatically commits the update, even though you may not have requested a commit originally. In the apply phase, updatep copies the existing LPPs that were selected for update to /usr/lpp//inst_updt.save/ (where is the short name for each LPP, for example, bnuu). In the commit phase, the saved copies are moved from the /usr/lpp file system to the /usr/lpp.save file system. In the applied state, an update may be readily rejected because the saved information is in /usr/lpp, but once committed, the saved information is archived in a last-in-first-out (LIFO) stack structure in /usr/lpp.save. Only after an update is committed can another update be applied to the system. In this phase, updatep again checks that sufficient disk space/inodes exist. In this case, it checks that the backup save-sets can be moved into /usr/lpp.save and allows some space for saving additional status information. In general, if /usr/lpp.save and /usr/lpp both reside in the root file system, a commit requires only a small amount of space/inodes to succeed. The design of updatep allows for /usr/lpp.save to be a nonreplicated, separately mounted file system, so that a history of committed updates can be accumulated outside the root file system. But note that this is of no advantage in applying an update, which requires save space in /usr/lpp.save. /usr/lpp may be made a separately mounted file system, but little is to be gained because it must be system-replicated since some LPPs (notable X11) have binaries residing there (being symbolically linked from the root file system). Processed March 20, 1992 UPDATEP(8,C) 2 UPDATEP(8,C) AIX Commands Reference UPDATEP(8,C) You cannot use INTERRUPT to stop the updatep command. To stop updatep, press QUIT WITH DUMP. This should be used only in extreme circumstances since the state of the system cannot be predicted. For example, some update control files may need to be deleted. If the program is interrupted, you must run /etc/lpp/inuconfig to reset the status of the system to what it was before updatep was issued. FLAGS -amiy Applies the updates for one or more LPPs. If there is a pending update for any LPP on the system, updatep does not permit an apply. You must either commit or reject all pending updates before it accepts another update apply. The updatep command asks you to select the LPP you wish to update. After you select a LPP, updatep runs the inudocm command for any specific update instructions. If it finds any, it copies them into the file /usr/lpp/lpp_idd/ui.vv.rr.llll., where vv is the version, rr the release, and llll the level of the LPP. For fixes, this is /usr/lpp/lpp_idd/ui.vv.rr.llll.ffff, where ffff is the fix number. Normally you should review instructions before continuing. To restart the update procedure and ignore the check for existing update instructions, enter updatep -ai or updatep -aci. The updatep command applies the update for each LPP by running inuupdt for each name. After each update, it deletes the /usr/lpp/lpp_idd/inst_updt directory. It then runs inudocm to check for any update documentation. If there are changes to any documents shipped with this update, updatep copies it into the file /usr/lpp/lpp_idd/me.vv.rr.llll and writes a message. -c Commits a previous update apply. updatep presents selection information for LPPs that have pending updates. You select the LPPs that you want to commit. Any LPPs that you apply as a group must be committed as a group. Management control information about the update changes to indicate that the LPP is committed. updatep deletes the directory that contains the update recovery information, /usr/lpp/lpp_idd/inst_updt.save. -d device Specifies the input device name. The default input device is /dev/rfd0. If this is a tape device, it must be the rewind device, /dev/rmt0rh. -n user Lets you specify a name in the LPP history file that is responsible for the LPP. The default is the value of the system variable $LOGNAME. If you specify user, the first 8 nonblank characters are stored in the LPP history file. -q Runs in quiet mode suppressing most of the interactive queries. Processed March 20, 1992 UPDATEP(8,C) 3 UPDATEP(8,C) AIX Commands Reference UPDATEP(8,C) -r Rejects a previous update apply for one or more LPPs. updatep presents selection information for the LPPs that have pending updates. You select the LPPs to reject. Any LPPs that are grouped together by the system must be rejected or applied as a group. Specify -r without -x if you want automatic recovery of saved files. If you do specify the -x flag, the management control information about the update reflects that the update is rejected, but updatep does not recover saved files. To recover the necessary files, look at the information in /usr/lpp/lpp_id/inst_updt.save. This flag should be used only by someone very knowledgeable about the system. -s Writes status information about all pending LPP commits. -u lpp_idd vv.rr.llll.ffff Uncommit takes a committed update to the lpp_idd with version, release, level and fix numbers equal to vv.rr.llll.ffff and puts it back in the applied state where it can be either committed or rejected. Uncommit is only permitted if the requested uncommit is for the last committed update on the system. Otherwise, if there have been any updates or installp(s) of any LPP since the requested uncommit, a list of lpps installed/updated after the requested one is displayed and the user is asked to first uncommit them. -x Cancels the automatic recovery of saved files (use with -r). When the update completes, it is sometimes necessary for the service tools to take special actions, such as build the kernel or reboot. In these cases, a special code must be returned to the installation tools via the installation scripts update or inst_updt.loc. described in the AIX Operating System Programming Tools and Interfaces. Some codes with local implications are returned by inst_updt.loc (for example 2, 3, 4, and 5). Codes 5 and 7 are specific to update. Code 0 and error codes may be returned by either script. This return code signals the end of the update LPP, and determines what actions the installation tools perform next. Use one of the following values for a return code. Code Description 0 Successful completion. No additional action is needed. 2 Successful completion. The service tools update superblocks and the inode list and flush the buffers (sync). 3 Successful completion. The service tools build a new kernel. Then they update superblocks and the inode list and flush the buffers. Then they instruct the user to reboot the system. 4 Successful completion. The service tools build a new kernel. Then Processed March 20, 1992 UPDATEP(8,C) 4 UPDATEP(8,C) AIX Commands Reference UPDATEP(8,C) they update superblocks and the inode list and flush the buffers before they perform an IPL on the operating system. 5 Update cancelled by the update procedure without errors. 6 Successful completion. The service tools update superblocks and the inode list and flush the buffers (sync). Then they instruct the user to reboot the system. 7 The update was cancelled by the update procedure with errors. The service tools recover the previous state of the system. Internal Commands The updatep command uses the inudocm command for update documentation control. It uses the inuupdt command to apply an update to a single program. inuupdt runs a program-provided update procedure, update. updatep passes the following parameters to update procedure: o The full path name of the apply-list. o The full path name of the device (file) where the update information is stored in backup format. In addition to the commands discussed here, program-provided update procedures can use all of the internal commands discussed under "installp" Since they are internal commands, they do a minimum validation of input parameters. Their purpose is to provide common code for functions frequently needed by most program-provided procedures. Since these internal commands function as subcommands, they return exit values rather than issue error messages. However, messages may come from other system commands that they run. C Language programmers of update procedures that call these commands can use the /usr/include/inu21.h file to define the return codes for them. inudocm The inudocm command is normally used as an internal command to get copies of specific update instructions or manual errata information that you can print out. There may be cases, however, when you would enter this command from the command line (for example, if you have misplaced the manual errata information that came with a previous update). You must be a member of the system group to run this command. The inudocm command has the following syntax: inudocm -cu {-d device} {lpp_idd} {level} {-f file} where lpp_idd specifies the name of the program being checked. It must be specified unless you use the -f flag. It can be a maximum of 8 characters. level specifies the current level of lpp_idd. This value must be identical to the level value for the last committed entry in "/usr/lpp/lpp_idd/lpp.hist". Processed March 20, 1992 UPDATEP(8,C) 5 UPDATEP(8,C) AIX Commands Reference UPDATEP(8,C) It must be specified unless you use the -f flag. FLAGS -d device Restores file from this device. device must be the full path name of a device special file. The default device is /dev/rfd0. You must not specify this flag if you use the -f flag. -e Requests the existing manual errata information for lpp_idd from level. If you select this flag, inudocm uses the ar x command to extract the archive file /usr/sys/inst_updt/lpp_idd_erata. (If this file is not present, no information is available.) inudocm extracts any level-dependent manual errata information files if there are any more recent than the current level. Selected files are moved to /usr/lpp/lpp_idd/me.vv.rr.llll. -f file Identifies a file that already contains the lpp_idd and the level. Only updatep itself should use this flag. -u Requests the existing specific update instructions for lpp_idd from level. If you select this flag, inudocm uses the ar x command to extract the archive file /usr/sys/inst_updt/lpp_idd_instr. (If this file is not present, no information is available.) inudocm extracts any level-dependent specific update instruction files if there are any more recent than the current level. Selected files are moved to /usr/lpp/lpp_idd/ui.vv.rr.llll. The inudocm command returns the following exit values: 0 Normal return, no error occurred. 1 The system cannot run inudocm. 2 Specific update instruction files were requested but not found. 4 Manual errata information was requested, but none were found. 6 Specific update instructions and manual errata were both requested but not found. 201 An invalid flag was specified, or the first argument was not e, -eu, or -u. 202 One or more parameters were missing. 204 Too many parameters were entered. 250 Processed March 20, 1992 UPDATEP(8,C) 6 UPDATEP(8,C) AIX Commands Reference UPDATEP(8,C) The level parameter did not contain exactly 4 characters, or they were not numeric. 251 An error occurred while attempting to restore /usr/sys/inst_updt/control. 253 The directory /usr/lpp/lpp_idd does not exist. inuupdt The inuupdt command provides a common interface for applying an update to a single program. Normally, updatep runs inuupdt. The inuupdt command has the following format: inuupdt -d device current-level new-level lpp_idd where lpp_idd is the name of a program and current-level specifies the current maintenance level. new-level is the level of the update to be applied. lpp_idd can be a maximum of 8 characters and current-level must be identical to the level value in the /usr/lpp/lpp_idd/lpp.hist file. /etc/lpp/qproc onsite sitenumber /etc/lpp/qproc Program to trigger the processing of all pending queue entries on an individual site. qproc runs on each individual site and processes all pending updatep or installp actions for that site. qproc first compares the local queue pointer to the global queue pointer. If local queue pointer file is not found, it is assumed that the local queue pointer value is null meaning the site is new and all queue entries are to be processed. If local queue pointer is less than global queue pointer, a "local" action is pending. qproc processes the entries one by one from the entry beginning with entry after the one pointed to by the local pointer and ending by processing the last queue entry. /etc/lpp/qinvoke Program to coordinate when qproc is to run on each site of the multisite cluster. On the multisite system, this program uses the command at to set up jobs for each site's qproc to run. On the single site systems, qproc is run as a part of installp/updatep because to time synchronization is required for a one site system. In such cases, qinvoke simply calls qproc. Processed March 20, 1992 UPDATEP(8,C) 7 UPDATEP(8,C) AIX Commands Reference UPDATEP(8,C) FILES See installp command for internal command files. /usr/include/inu21.h Error code definitions for internal routines. /usr/lpp/lpp_idd/inst_updt Temporary directory. /usr/lpp/lpp_idd/inst_updt.save Directory for saved files. /usr/lpp/lpp_idd/inst_updt/arp Program specific control library. /usr/lpp/lpp_idd/me.vv.rr.llll Document change file. /usr/lpp/lpp_idd/ui.vv.rr.llll Update instruction file. /usr/lpp/lpp_idd/me.vv.rr.llll.ffff Document change file for fixes. /usr/lpp/lpp_idd/ui.vv.rr.llll.ffff Update instruction file for fixes. /usr/sys/inst_updt Temporary directory. /usr/sys/inst_updt/control Update control library. /usr/sys/inst_updt/inutemp.xx...x Temporary files. /usr/sys/inst_updt/lpp_idd_erata Document change library. /usr/sys/inst_updt/lpp_idd_instr Update instruction library. /usr/sys/inst_updt/updt_cntrl Temporary file. RELATED INFORMATION See the following command: "installp." See the lpp.hist file in AIX Operating System Technical Reference. See the discussion of updating programs in AIX Operating System Programming Tools and Interfaces. Processed March 20, 1992 UPDATEP(8,C) 8