1 <?xml version="1.0" encoding="UTF-8"?>
2 <refentry id="package5">
4 <refentrytitle>package</refentrytitle>
5 <manvolnum>5</manvolnum>
8 <refname>package</refname>
9 <refpurpose>Provides instructions for the package command</refpurpose>
12 <title>Description</title>
13 <para>The package configuration file defines the file system elements that the
14 <emphasis role="bold">package</emphasis> command creates or alters on the local disk of an AFS client
15 machine it is configuring. Use the <emphasis role="bold">-config</emphasis> or <emphasis role="bold">-fullconfig</emphasis> argument
16 to the <emphasis role="bold">package</emphasis> command to identify the configuration file to use.</para>
19 <title>Summary of Configuration File Instructions</title>
20 <para>The configuration file can include one or more instances of each of the
21 following instructions, each on its own line. A more detailed description
22 of each instruction's syntax follows this list.</para>
28 <para>Defines a block special device, such as a disk, which deals with input in
29 units of multi-byte command blocks.</para>
36 <para>Defines a character special device, such as a terminal or tty, which deals
37 with input in single character units.</para>
44 <para>Creates a directory.</para>
51 <para>Creates or alters a file to match the contents of a specified source file.</para>
58 <para>Creates a symbolic link.</para>
65 <para>Defines a socket, which is a communications device for UDP and TCP/IP
73 <para>Defines a variable or declares a string as defined.</para>
80 <para>Specifies an action to perform if a certain string is declared or defined.</para>
87 <para>Specifies an action to perform if a certain string is not declared or
95 <para>Includes a library file.</para>
102 <para>Declares a string not to be defined, or a variable no longer to have a
110 <title>The B and C Instructions for Defining Special Devices</title>
111 <para>The <computeroutput>B</computeroutput> instruction in a package configuration file defines a block
112 special device, such as a disk, that deals with input in units of
113 multi-byte command blocks. The <computeroutput>C</computeroutput> instruction defines a character
114 special device, such as a terminal or tty, that deals with input in single
115 character units. They share a common syntax:</para>
118 (B | C) &lt;device&gt; &lt;major&gt; &lt;minor&gt; &lt;owner&gt; &lt;group&gt; &lt;mode&gt;
127 <para>Indicates the definition of a block special device. It must be a capital
135 <para>Indicates the definition of character special device. It must be a capital
141 <term><device></term>
143 <para>Names the special device to define. To learn the name format appropriate
144 to the machine's system type, consult the hardware or operating system
145 documentation.</para>
150 <term><major></term>
152 <para>Specifies the device's major device number in decimal format. To learn
153 the correct value for the machine's system type, consult the hardware or
154 operating system documentation.</para>
159 <term><minor></term>
161 <para>Specifies the device's minor device number in one of hexadecimal, octal,
162 or decimal format. Precede a hexadecimal number with the string <computeroutput>0x</computeroutput>
163 (zero and the letter <computeroutput>x</computeroutput>) or an octal number with a <computeroutput>0</computeroutput> (zero). A number
164 without either prefix is interpreted as a decimal. To learn the correct
165 value for the machine's system type, consult the hardware or operating
166 system documentation.</para>
171 <term><owner></term>
173 <para>Specifies the username or UNIX user ID (UID) of the user to be designated
174 the device's owner in the output from the UNIX <computeroutput>ls -l</computeroutput> command.</para>
179 <term><group></term>
181 <para>Specifies the group name or UNIX group ID (GID) of the group to be
182 designated the device's group in the output from the UNIX <computeroutput>ls -lg</computeroutput>
188 <term><mode></term>
190 <para>Defines the device's UNIX mode bits. Acceptable values are the standard
191 three- or four-digit numbers corresponding to combinations of
192 permissions. Examples: <computeroutput>755</computeroutput> corresponds to <computeroutput>rwxr-xr-x</computeroutput>, and <computeroutput>644</computeroutput> to
193 <computeroutput>rw-r--r--</computeroutput>.</para>
200 <title>The D Instruction for Creating a Directory</title>
201 <para>The <computeroutput>D</computeroutput> instruction in a package configuration file creates a directory
202 on the local disk. If a symbolic link, file, or other element on the local
203 disk has the same name, it is replaced with a directory. If the directory
204 already exists, its owner, group, and mode bits are changed if necessary
205 to conform with the instruction. The instruction has the following syntax:</para>
208 D[I&lt;update_code&gt;] &lt;directory&gt; &lt;owner&gt; &lt;group&gt; &lt;mode&gt;
217 <para>Indicates the creation of a directory. It must be a capital letter.</para>
222 <term><update_code></term>
224 <para>Modulates the directory creation instruction. It is optional and follows
225 the letter <computeroutput>D</computeroutput> directly, without an intervening space. Choose one of the
226 two acceptable values:</para>
232 <para>Indicates that the directory is a lost+found directory (used by the
233 <emphasis role="bold">fsck</emphasis> program).</para>
240 <para>Removes any subdirectory (along its contents) or file that exists in the
241 existing directory on the local disk but for which an instruction does not
242 appear in the configuration file.</para>
250 <term><directory></term>
252 <para>Specifies the full pathname of the directory to create.</para>
257 <term><owner></term>
259 <para>Specifies the username or UNIX user ID (UID) of the user to be designated
260 the directory's owner in the output from the UNIX <computeroutput>ls -ld</computeroutput> command.</para>
265 <term><group></term>
267 <para>Specifies the name or UNIX group ID (GID) of the group to be designated
268 the directory's group in the output from the UNIX <computeroutput>ls -lgd</computeroutput> command.</para>
273 <term><mode></term>
275 <para>Defines the directory's UNIX mode bits. Acceptable values are the standard
276 three- or four-digit numbers corresponding to combinations of
277 permissions. Examples: <computeroutput>755</computeroutput> corresponds to <computeroutput>drwxr-xr-x</computeroutput>, and <computeroutput>644</computeroutput> to
278 <computeroutput>drw-r--r--</computeroutput>.</para>
285 <title>The F Instruction for Creating or Updating a File</title>
286 <para>The <computeroutput>F</computeroutput> instruction in a package configuration file creates or updates a
287 file on the local disk by copying in the contents of the indicated source
288 file, which can reside in AFS or on the local disk. If the <emphasis role="bold">package</emphasis>
289 command interpreter cannot access the source file, it exits without
290 executing any instruction in the configuration file.</para>
292 <para>If a file with the same name already exists on disk, the package command
293 overwrites it with the contents of the source file, unless the <computeroutput>I</computeroutput> update
294 code is used to prevent that. To add a <computeroutput>.old</computeroutput> extension to the current
295 version of the file, include the <computeroutput>O</computeroutput> update code. To have the machine
296 reboot automatically after the <emphasis role="bold">package</emphasis> program completes, include the
297 <computeroutput>Q</computeroutput> update code.</para>
299 <para>If a symbolic link, directory, or other element on the local disk has the
300 same name, it is replaced with the file (a directory's contents are first
301 removed as necessary).</para>
303 <para>The instruction has the following syntax:</para>
306 F[&lt;update_code&gt;] &lt;file&gt; &lt;source&gt; [&lt;owner&gt; &lt;group&gt; &lt;mode&gt;]
315 <para>Indicates the creation or update of a file. It must be a capital letter.</para>
320 <term><update_code></term>
322 <para>Modulates the file creation instruction. It is optional and follows the
323 letter <computeroutput>F</computeroutput> directly, without an intervening space. Choose one or more of
324 the four acceptable values, and list them in any order:</para>
330 <para>Indicates that the pathname in the <source> field is the complete pathname
331 of the source file, including the filename. If this argument is omitted,
332 the <emphasis role="bold">package</emphasis> command appends the pathname in the <file> field to the
333 pathname in the <source> field to derive the source file's full name. This
334 code allows the source and target filenames to differ.</para>
341 <para>Preserves the existing file called <file>, rather than overwriting it.</para>
348 <para>Saves the existing version of the file by appending a <computeroutput>.old</computeroutput> extension to
356 <para>Causes the package command to exit with status code <computeroutput>4</computeroutput> if it overwrites
357 the file. If the standard <emphasis role="bold">package</emphasis>-related changes have been made to the
358 machine's AFS initialization file, then status code <computeroutput>4</computeroutput> causes the
359 machine to reboot automatically. Use this code when the machine must
360 reboot if updates to the file are to have any effect (for example, if the
361 operating system file -- <replaceable>/vmunix</replaceable> or equivalent -- has changed).</para>
369 <term><file></term>
371 <para>Specifies the complete pathname on the local disk of the file to create or
372 update, including the filename as the final element.</para>
377 <term><source></term>
379 <para>Specifies the pathname (local or AFS) of the file to copy to the local
382 <para>If the <computeroutput>A</computeroutput> update code is included, specify the source file's complete
383 pathname. Otherwise, the <emphasis role="bold">package</emphasis> command derives the source file's full
384 name by appending the <emphasis>file</emphasis> pathname to this pathname. For example, if
385 the <computeroutput>A</computeroutput> update code is not included and the file
386 <replaceable>/afs/abc.com/rs_aix42/bin/grep</replaceable> is the source file for the <replaceable>/bin/grep</replaceable>
387 binary, the proper value in this field is <replaceable>/afs/abc.com/rs_aix42</replaceable>.</para>
392 <term><owner></term>
394 <para>Specifies the username or UNIX user ID (UID) of the user to be designated
395 the file's owner in the output from the UNIX <computeroutput>ls -l</computeroutput> command.</para>
397 <para>To copy the source file's owner to the target file, leave this field
398 empty. In this case, the <group> and <mode> fields must also be empty.</para>
403 <term><group></term>
405 <para>Specifies the name or UNIX group ID (GID) of the group to be designated
406 the file's group in the output from the UNIX <computeroutput>ls -lg</computeroutput> command.</para>
408 <para>To copy the source file's group to the target file, leave this field
409 empty. In this case, the <owner> and <mode> fields must also be empty.</para>
414 <term><mode></term>
416 <para>Defines the file's UNIX mode bits. Acceptable values are the standard
417 three- or four-digit numbers corresponding to combinations of
418 permissions. Examples: <computeroutput>755</computeroutput> corresponds to <computeroutput>rwxr-xr-x</computeroutput>, and <computeroutput>644</computeroutput> to
419 <computeroutput>rw-r--r--</computeroutput>.</para>
421 <para>To copy the source file's mode bits to the target file, leave this field
422 empty. In this case, the <owner> and <group> fields must also be empty.</para>
429 <title>The L Instruction for Creating a Symbolic Link</title>
430 <para>The <computeroutput>L</computeroutput> instruction in a package configuration file creates a symbolic
431 link on the local disk to a directory or file that exists either in AFS or
432 elsewhere on the local disk. As with the standard UNIX <computeroutput>ln -s</computeroutput> command,
433 the link is created even if the actual file or directory does not exist.</para>
435 <para>If a file or directory on the local disk already has the same name, the
436 <emphasis role="bold">package</emphasis> command replaces it with a symbolic link.</para>
438 <para>The instruction has the following syntax:</para>
441 L[I&lt;update_code&gt;] &lt;link&gt; &lt;path&gt; [&lt;owner&gt; &lt;group&gt; &lt;mode&gt;]
450 <para>Indicates the creation of a symbolic link. It must be a capital letter.</para>
455 <term><update_code></term>
457 <para>Modulates the link creation instruction. It is optional and follows the
458 letter <computeroutput>L</computeroutput> directly, without an intervening space. Choose one or both of
459 the acceptable values, and list them in any order:</para>
465 <para>Indicates that the pathname in the <path> field is the complete pathname
466 of the actual directory or file (including the filename for a file). If
467 this argument is omitted, the <emphasis role="bold">package</emphasis> command appends the value in the
468 <link> field to the pathname in the <path> field to derive the actual
469 directory or file's full name. This code allows the name of the symbolic
470 link and actual directory or file to differ.</para>
477 <para>Preserves the existing symbolic link called <link>, rather than
478 overwriting it.</para>
486 <term><link></term>
488 <para>Specifies the complete local disk pathname of the symbolic link to create.</para>
493 <term><path></term>
495 <para>Specifies the pathname (local or AFS) of the directory or file to which
496 the link refers. If the <computeroutput>A</computeroutput> update code is included, specify the
497 directory or file's complete pathname. Otherwise, the <emphasis role="bold">package</emphasis> command
498 derives the actual directory or file's full name by appending the value in
499 the <emphasis>link</emphasis> field to this pathname. For example, if the <computeroutput>A</computeroutput> update code
500 is not included and <replaceable>/etc/ftpd</replaceable> is a symbolic link to the file
501 <replaceable>/afs/abc.com/sun4x_56/etc/ftpd</replaceable>, the proper value in this field is
502 <replaceable>/afs/abc.com/sun4x_56</replaceable>.</para>
504 <para>The package command interpreter correctly handles pathnames that begin
505 with the <computeroutput>./</computeroutput> (period, slash) or <computeroutput>../</computeroutput> (two periods, slash) notation,
506 interpreting them relative to the current working directory from which the
507 <emphasis role="bold">package</emphasis> command is invoked.</para>
512 <term><owner></term>
514 <para>Specifies the username or UNIX user ID (UID) of the user to be designated
515 the symbolic link's owner in the output from the UNIX <computeroutput>ls -l</computeroutput> command.</para>
517 <para>To designate the issuer of the package command (usually, the local
518 superuser <computeroutput>root</computeroutput>) as the symbolic link's owner, leave this field
519 empty. In this case, the <group> and <mode> fields must also be empty.</para>
524 <term><group></term>
526 <para>Specifies the name or UNIX group ID (GID) of the group to be designated
527 the link's group in the output from the UNIX <computeroutput>ls -lg</computeroutput> command.</para>
529 <para>To have the symbolic link's group match the default group associated with
530 the <emphasis role="bold">package</emphasis> command's issuer, leave this field empty. The issuer is
531 usually the local superuser <computeroutput>root</computeroutput> and the default group is designated in
532 the issuer's entry in the local <replaceable>/etc/passwd</replaceable> file or equivalent. If this
533 field is left empty, the <owner> and <mode> fields must also be empty.</para>
538 <term><mode></term>
540 <para>Defines the symbolic link's UNIX mode bits. Acceptable values are the
541 standard three- or four-digit numbers corresponding to combinations of
542 permissions. Examples: <computeroutput>755</computeroutput> corresponds to <computeroutput>rwxr-xr-x</computeroutput>, and <computeroutput>644</computeroutput> to
543 <computeroutput>rw-r--r--</computeroutput>.</para>
545 <para>Leaving this field empty sets the symbolic link's mode bits to <computeroutput>777</computeroutput>
546 (<computeroutput>rwxrwxrwx</computeroutput>). In this case, the <owner> and <group> fields must also be
554 <title>The S Instruction for Creating a Socket</title>
555 <para>The <computeroutput>S</computeroutput> instruction in a package configuration file creates a socket (a
556 communications device for UDP or TCP/IP connections) on the local
557 disk. The instruction has the following syntax:</para>
560 S &lt;socket&gt; [&lt;owner&gt; &lt;group&gt; &lt;mode&gt;]
569 <para>Indicates the creation of a socket. It must be a capital letter.</para>
574 <term><socket></term>
576 <para>Names the socket. The proper format depends on the local machine's
577 operating system.</para>
582 <term><owner></term>
584 <para>Specifies the username or UNIX user ID (UID) of the user to be designated
585 the socket's owner in the output from the UNIX <computeroutput>ls -l</computeroutput> command.</para>
587 <para>To designate the issuer of the package command (usually, the local
588 superuser <computeroutput>root</computeroutput>) as the socket's owner, leave this field empty. In this
589 case, the <group> and <mode> fields must also be empty.</para>
594 <term><group></term>
596 <para>Specifies the name or UNIX group ID (GID) of the group to be designated
597 the socket's group in the output from the UNIX <computeroutput>ls -lg</computeroutput> command.</para>
599 <para>To have the symbolic link's group match the default group associated with
600 the <emphasis role="bold">package</emphasis> command's issuer, leave this field empty. The issuer is
601 usually the local superuser <computeroutput>root</computeroutput> and the default group is designated in
602 the issuer's entry in the local <replaceable>/etc/passwd</replaceable> file or equivalent. If this
603 field is left empty, the <owner> and <mode> fields must also be empty.</para>
608 <term><mode></term>
610 <para>Defines the socket's UNIX mode bits. Acceptable values are the standard
611 three- or four-digit numbers corresponding to combinations of
612 permissions. Examples: <computeroutput>755</computeroutput> corresponds to <computeroutput>rwxr-xr-x</computeroutput>, and <computeroutput>644</computeroutput> to
613 <computeroutput>rw-r--r--</computeroutput>.</para>
615 <para>Leaving this field empty sets the symbolic link's mode bits to <computeroutput>777</computeroutput>
616 (<computeroutput>rwxrwxrwx</computeroutput>), modulated by the cell's umask. In this case, the <owner>
617 and <group> fields must also be empty.</para>
624 <title>The %define or %undef Instructions</title>
625 <para>The <computeroutput>%define</computeroutput> instruction in a package configuration file declares or
626 defines a variable, depending on its number of arguments:</para>
630 <para>If followed by a single argument, it declares that argument to be
631 defined. The argument is then available as a controller when mentioned in
632 <computeroutput>%ifdef</computeroutput> and <computeroutput>%ifndef</computeroutput> statements, which evaluate to <computeroutput>true</computeroutput> and
633 <computeroutput>false</computeroutput> respectively.</para>
637 <para>If followed by two arguments, it defines the second argument as the value
638 of the first. When the first argument appears later in this prototype or
639 other prototype or library files as a variable -- surrounded by curly
640 braces and preceded by a dollar sign, as in the example <computeroutput>${variable}</computeroutput> --
641 the <emphasis role="bold">package</emphasis> command interpreter substitutes the second argument for it.</para>
645 <para>The <computeroutput>%undef</computeroutput> statement negates the effect of a previous <computeroutput>%define</computeroutput>
646 statement, declaring its argument to be defined no longer, or to have a
647 value no longer if it is a variable.</para>
649 <para>The syntax for the two types of instruction are as follows:</para>
652 %define &lt;declaration&gt;
653 %define &lt;variable&gt; &lt;value&gt;
654 %undef &lt;declaration&gt;
655 %undef &lt;variable&gt;
664 <para>Indicates a definition statement.</para>
671 <para>Indicates a statement that negates a definition.</para>
676 <term><declaration></term>
678 <para>Names the string being declared by a <computeroutput>%define</computeroutput> statement, or
679 negated by an <computeroutput>%undef</computeroutput> statement.</para>
684 <term><variable></term>
686 <para>Specifies the name of the variable that a <computeroutput>%define</computeroutput> statement is
687 defining, or an <computeroutput>%undef</computeroutput> statement is negating.</para>
692 <term><value></term>
694 <para>Specifies the value to substitute for the string in the <variable> field
695 when it appears in the appropriate format (surrounded by curly braces and
696 preceded by a dollar sign, as in the example <computeroutput>${variable}</computeroutput>), in this or
697 other prototype and library files. It can include one or more words.</para>
704 <title>The %ifdef and %ifndef Instructions</title>
705 <para>The <computeroutput>%ifdef</computeroutput> instruction in a package configuration file specifies one or
706 more actions to perform if the indicated string has been declared by a
707 single-argument <computeroutput>%define</computeroutput> statement, or is a variable for which a value
708 has been defined by a two-argument <computeroutput>%define</computeroutput> statement.</para>
710 <para>Similarly, the <computeroutput>%ifndef</computeroutput> instruction specifies one or more actions to
711 perform if the indicated string has not been declared or is a variable
712 without a value, either because no <computeroutput>%define</computeroutput> statement has defined it or
713 an <computeroutput>%undef</computeroutput> statement has undefined it.</para>
715 <para>In both cases, the optional <computeroutput>%else</computeroutput> statement specifies one or more
716 alternate actions to perform if the first statement evaluates to
717 <computeroutput>false</computeroutput>. (For an <computeroutput>%ifdef</computeroutput> statement, the <computeroutput>%else</computeroutput> statement is executed
718 if the indicated string has never been declared or is a variable without a
719 value, or if an <computeroutput>%undef</computeroutput> statement has undefined either one; for an
720 <computeroutput>%ifndef</computeroutput> statement, it is executed if the string has been declared or is
721 a variable with a value.)</para>
723 <para>It is possible to nest any number of <computeroutput>%ifdef</computeroutput> and <computeroutput>%ifndef</computeroutput> statements.</para>
725 <para>The two types of statement share a common syntax:</para>
728 (%ifdef | %ifndef) &lt;declaration&gt;
729 &lt;action&gt;+
730 [%else [&lt;declaration&gt;]
731 &lt;alternate_action&gt;+]
732 %endif &lt;declaration&gt;
741 <para>Indicates that the statement evaluates as true if the string in the
742 <declaration> field is declared or is a variable with a defined value.</para>
749 <para>Indicates that the statement evaluates as true if the string in the
750 <declaration> field is not declared or is a variable without a defined
756 <term><declaration></term>
758 <para>Specifies the string that must be declared or the variable name that must
759 have a defined value for an <computeroutput>%ifdef</computeroutput> statement to evaluate as <computeroutput>true</computeroutput>,
760 which results in the specified action being performed. For an <computeroutput>%ifndef</computeroutput>
761 statement, the string must not be declared or the variable must have no
762 defined value for the statement to evaluate as <computeroutput>true</computeroutput>. The first and
763 third occurrences of <declaration> (the latter following the string
764 <computeroutput>%endif</computeroutput>) are required. The second occurrence (following the string
765 <computeroutput>%else</computeroutput>) is optional, serving only to clarify to which <computeroutput>%ifdef</computeroutput> or
766 <computeroutput>%ifndef</computeroutput> statement the <computeroutput>%else</computeroutput> statement belongs.</para>
771 <term><action></term>
773 <para>Specifies each action to perform if the <computeroutput>%ifdef</computeroutput> or <computeroutput>%ifndef</computeroutput> statement
774 evaluates as <computeroutput>true</computeroutput>. Each action must appear on a separate
775 line. Acceptable types of actions are other statements beginning with a
776 percent sign and definition instructions.</para>
781 <term><alternate_action></term>
783 <para>Specifies each action to perform if the <computeroutput>%ifdef</computeroutput> or <computeroutput>%ifndef</computeroutput> statement
784 evaluates to <computeroutput>false</computeroutput>. Each action must appear on a separate
785 line. Acceptable types of actions are other statements beginning with a
786 percent sign and definition instructions.</para>
793 <title>The %include Instruction for Including a Library File</title>
794 <para>The <computeroutput>%include</computeroutput> instruction in a package configuration file includes the
795 contents of the indicated library file in a configuration file that
796 results from the compilation of the prototype file in which the
797 <computeroutput>%include</computeroutput> instruction appears. It has the following syntax:</para>
800 %include &lt;pathname&gt;
807 <term>%include</term>
809 <para>Indicates a library file include statement.</para>
814 <term><pathname></term>
816 <para>Specifies the complete pathname of the library file to include. It can be
817 in AFS or on the local disk, and can include one or more variables.</para>
825 <title>Cautions</title>
826 <para>The configuration file must be completely correct. If there are any syntax
827 errors or incorrect values, the <emphasis role="bold">package</emphasis> command interpreter exits
828 without executing any instruction.</para>
832 <title>Examples</title>
833 <para>The following example <computeroutput>B</computeroutput> and <computeroutput>C</computeroutput> instructions define a disk
834 <replaceable>/dev/hd0a</replaceable> with major and minor device numbers <computeroutput>1</computeroutput> and <computeroutput>0</computeroutput> and mode
835 bits of <computeroutput>-rw-r--r--</computeroutput>, and a tty <replaceable>/dev/ttyp5</replaceable> with major and minor device
836 numbers <computeroutput>6</computeroutput> and <computeroutput>5</computeroutput> and mode bits of <computeroutput>-rw-rw-rw</computeroutput>. In both cases, the
837 owner is <computeroutput>root</computeroutput> and the owning group <computeroutput>wheel</computeroutput>.</para>
840 B /dev/hd0a 1 0 root wheel 644
841 C /dev/ttyp5 6 5 root wheel 666
844 <para>The following example <computeroutput>D</computeroutput> instruction creates the local <replaceable>/usr</replaceable> directory
845 with owner <computeroutput>root</computeroutput> and group <computeroutput>wheel</computeroutput> and mode bits of <computeroutput>drwxr-xr-x</computeroutput>. The
846 <computeroutput>R</computeroutput> update code removes any files and subdirectories that reside in the
847 <replaceable>/usr</replaceable> directory (if it already exists) but do not appear in the
848 configuration file.</para>
851 DR /usr root wheel 755
854 <para>The following example <computeroutput>F</computeroutput> instruction, appropriate for a machine running
855 AIX 4.2 in the ABC Corporation cell, creates or updates the local disk
856 file <replaceable>/bin/grep</replaceable>, using <replaceable>/afs/abc.com/rs_aix42/bin/grep</replaceable> as the source.</para>
859 F /bin/grep /afs/abc.com/rs_aix42 root wheel 755
862 <para>The next example <computeroutput>F</computeroutput> instruction creates the <replaceable>/usr/vice/etc/ThisCell</replaceable>
863 file and specifies an absolute pathname for the source file, as indicated
864 by the <computeroutput>A</computeroutput> update code. The <computeroutput>Q</computeroutput> code makes the <emphasis role="bold">package</emphasis> command return
865 status code 4 as it exits, prompting a reboot of the machine if the
866 standard <emphasis role="bold">package</emphasis>-related changes have been made to the machine's AFS
867 initialization file. No values are provided for the owner, group and mode
868 bits, so the file inherits them from the source file.</para>
871 FAQ /usr/vice/etc/ThisCell /afs/abc.com/common/etc/ThisCell
874 <para>The following example <computeroutput>L</computeroutput> instruction, appropriate for a machine running
875 AIX 4.2 in the ABC Corporation cell, creates a symbolic link from
876 <replaceable>/etc/ftpd</replaceable> on the local disk to the file
877 <replaceable>/afs/abc.com/rs_aix42/etc/ftpd</replaceable>.</para>
880 L /etc/ftpd /afs/abc.com/rs_aix42 root wheel 644
883 <para>The following example S instruction defines the socket <replaceable>/dev/printer</replaceable>.</para>
886 S /dev/printer root wheel 777
889 <para>The following example <computeroutput>%define</computeroutput> instruction defines the value for the
890 variable <computeroutput>${diskmode}</computeroutput>. This variable is used elsewhere in the template
891 to fill the <owner>, <group>, and <mode> fields in a <computeroutput>D</computeroutput>, <computeroutput>F</computeroutput>, or <computeroutput>L</computeroutput>
895 %define diskmode root wheel 644
898 <para>The following example <computeroutput>%undef</computeroutput> instruction declares the string <emphasis role="bold">afsd</emphasis>
899 not to be defined.</para>
905 <para>The following example <computeroutput>%ifdef</computeroutput> instruction specifies that if the string
906 <computeroutput>rs_aix42</computeroutput> is currently declared, then when the prototype file containing
907 the instruction is compiled the three indicated library files are
908 included. There is no alternate action defined. There must be <computeroutput>%define</computeroutput>
909 statements earlier in the prototype file to declare <computeroutput>rs_aix42</computeroutput> and to
910 assign a value to the <computeroutput>${wsadmin}</computeroutput> variable.</para>
914 %include ${wsadmin}/lib/rs_aix42.readonly
915 %include ${wsadmin}/lib/rs_aix42.generic
916 %include ${wsadmin}/lib/rs_aix42.generic.dev
920 <para>The following example <computeroutput>%ifndef</computeroutput> instruction, appropriate for the State
921 University cell, defines <computeroutput>stateu.edu</computeroutput> as the value of the <computeroutput>${cell}</computeroutput>
922 variable if it does not already have a value.</para>
926 %define cell stateu.edu
930 <para>The following example <computeroutput>%include</computeroutput> instruction includes the library file
931 <computeroutput>base.generic</computeroutput> from the <replaceable>lib</replaceable> subdirectory of the directory in which
932 <emphasis role="bold">package</emphasis>-related files reside. The <computeroutput>${wsadmin}</computeroutput> variable resolves to an
933 actual pathname (such as <replaceable>/afs/abc.com/wsadmin</replaceable>) during compilation.</para>
936 %include ${wsadmin}/lib/base.generic
941 <title>See Also</title>
942 <para><link linkend="package8">package(8)</link></para>
946 <title>Copyright</title>
947 <para>IBM Corporation 2000. <http://www.ibm.com/> All Rights Reserved.</para>
949 <para>This documentation is covered by the IBM Public License Version 1.0. It was
950 converted from HTML to POD by software written by Chas Williams and Russ
951 Allbery, based on work by Alf Wachsmann and Elizabeth Cassell.</para>