12
THE SUP SOFTWARE UPGRADE PROTOCOL
36
Carnegie Mellon University
37
School of Computer Science
52
The SUP system is a set of programs for maintaining a set of files in
53
identical versions across a network of cooperating machines. It runs under the
54
Mach operating system.
56
The SUP System is a set of programs that provide for collections of files to
57
be maintained in identical versions across a number of machines. These
60
SUP The "client" program, run by users or system maintainers, which
61
initiates the upgrade activity on a machine requesting the
62
latest version of a collection of files. SUP will normally be
63
run as a daemon, firing up once each night (week, etc.) to
64
upgrade the specified file collections.
66
SUPFILESRV The "file server" program, a daemon that is run by the system
67
maintainer to service requests for files initiated by client
68
SUP programs. The file server runs on every machine used as a
69
"repository" of distributable versions of files. It runs
70
continuously and listens for network connection requests by
71
individual client processes; for each individual client
72
request, a process is forked to service that request.
74
SUPSCAN The "file scanner" program, that may optionally be run
75
periodically to speed up execution of the file server. It
76
pre-compiles a list of files on the file system that match the
77
specifications for a given file collection so that the file
78
server need not do this during each upgrade of that collection.
79
The file scanner is normally used daily for very large file
80
collections that are upgraded by many clients each day; it is
81
not so useful for small file collections or for those that are
82
upgraded by only a few client machines per day.
84
When SUP is run, the user designates the names of certain "file collections",
85
sets of files, that should be upgraded. All pre-defined system collections
86
have entries in the coll.host file that gives the name of the host will act as
87
the repository for that software collection. The file server on that machine
88
provides a list of the files included in the collection and which ones have
89
been changed since the last time this collection was upgraded from that client
90
machine; the client decides which of these files it needs to receive; and the
91
files are sent from the file server. In this way, files can be installed on
92
the repository machine once, and they will propagate to all machines upgrading
93
from that repository as soon as the respective users execute SUP to perform the
94
upgrade. This allows groups of cooperating users to establish sets of files
95
that can be relied upon to be the same across a set of host machines.
97
SUP is intended to provide a broadcast facility for maintaining identical
98
versions of files across multiple machines. An alternative approach is to
99
provide a common file system; even when such a system is available, SUP is
100
useful for maintaining frequently used files on local disk storage, and for
101
maintaining files across the file server machines themselves.
103
The SUP system does not address the issues of version control, nor of
104
maintaining compatibility of pieces of a system that are being independently
105
changed by different users or on different machines; what SUP provides is a
106
broadcast mechanism for issuing stable, reliable versions of software or data
107
files, produced by a small number of maintainers and needed by a larger number
108
of users. SUP is intended specifically to address these situations:
110
- A large collection of system software prepared by a maintenance staff
111
for use by a large user community. For example, the CMU-CSD UNIX
112
software used by hundreds of workstations. In such situations, the
113
users know absolutely nothing about how to obtain such software, but
114
they need to keep it constantly upgraded on their machines.
115
Similarly, the maintainers cannot possibly maintain each user's
116
machine individually: they must rely on a broadcast mechanism such as
119
- A moderate collection of software and data files shared by the
120
members of a project. For example, the vision libraries used by
121
computer vision researchers at CMU. Again, a small number of
122
maintainers on a specific machine produce and maintain this software,
123
which is used by many users on many machines in the CMU environment.
124
However, SUP will not support the practice of some groups that have
125
large programs with different pieces being simultaneously modified
126
and tested in incompatible ways by various users.
128
- A user with accounts on more than one machine. Such a user can set
129
up SUP to automatically copy a collection of files from one machine
130
to one or more others whenever they are changed on the repository
133
If the system maintenance staff is involved on the repository machine a
134
"system" file collection can be set up for which client SUP programs need know
135
nothing but the name of the collection. Otherwise, the file collection will be
136
"private", and client SUP programs must be specifically told the name of the
137
repository host and the base directory name for the collection on that host.
139
SUP provides facilities for upgrading read-protected files (i.e. files that
140
are not readable by the general public), data encryption of transmitted files
141
and filenames, allowing access only to selected host machines not on the local
142
network, automatically creating backup copies of critical files, executing
143
command-files or programs after upgrading files that require special handling,
144
and mailing progress and error messages to designated users. SUP is also as
145
clever as can be about ensuring that upgraded files have the same accounting
146
information (mode, owner, links, etc.) on the client machine as on the
147
repository machine, and ensuring that upgrade problems don't wipe out existing
148
files when this is avoidable.
149
2. How to Use SUP to Upgrade a File Collection
150
You will normally want to run SUP periodically, say every day or every week,
151
using the at program, to upgrade important file collections such as UNIX system
152
software. You can also execute SUP directly at any time. The SUP command
155
$ sup [flags] [supfile]
157
These are the flags and arguments:
159
-a (all files) Normally, SUP only upgrades files if they are out-of-date or
160
missing on your machine. If you specify the -a flag, then all
161
files in the collection will be upgraded regardless of whether
162
they meet these conditions. This is useful for recovering from
163
catastrophic file deletions or disk crashes.
165
-b (backup) If this flag is given, or the backup supfile option is
166
specified, the contents of regular files on the local system
167
will be saved before they are overwritten with new data. The
168
file collection maintainer can designate specific files to be
169
worthy of backing up whenever they are upgraded. However, such
170
backup will only take place if you specify this flag or the
171
backup option to allow backups for a file collection on your
172
machine. The backup mechanism will create a copy of the
173
current version of a file immediately before a new copy is
174
received from the file server; the copy is given the same name
175
as the original file but is put into a directory called BACKUP
176
within the directory containing the original file. For
177
example, /usr/sas/src/foo.c would have a backup copy called
178
/usr/sas/src/BACKUP/foo.c. There is no provision for
179
automatically maintaining multiple old versions of files; you
180
would have to do this yourself.
182
-B overrides and disables the -b flag and the backup supfile
185
-d (delete) Files that are no longer in the collection on the repository
186
will be deleted if present on the local machine. This may also
187
be specified in a supfile with the deleteoption.
189
-D This flag overrides and disables the -d flag and the delete
192
-e (execute) Sup will execute commands sent from the repository that should
193
be run when a file is upgraded. If the -e flag is omitted,
194
Sup will print a message that specifies the command to execute.
195
This may also be specified in a supfile with the execute
198
-E overrides and disables the -e flag and the execute supfile
201
-f (file list) If you specify -f, then SUP will print a list of all the files
202
in the specified collections, indicating which ones need to be
203
upgraded, which are directories, and which require backup
204
copies to be created. The upgrade itself will not be
207
-l (local) Normally, SUP will not upgrade a collection if the repository
208
is on the same machine. This allows users to run upgrades on
209
all machines without having to make special checks for the
210
repository machine. If the -l flag is specified, collections
211
will be upgraded even if the repository is local.
213
-m (mail) Normally, SUP prints log messages on its standard output and
214
diagnostic output. With the -m flag, messages will be mailed
215
to you instead. This also allows the notify option to be
216
effective (see the discussion of supfiles below) to send mail
219
-N (network debugging)
220
The -N flag causes SUP to produce tons of output lines
221
describing the progress and status of the network
222
communications with the name server and file server.
225
The -P flag tells SUP to use an alternate set of TCP ports from
226
the normal ports. This is a debugging aid for system
229
-o (old files) This flag overrides the noold option if it appears in the
230
supfile. The -a flag also overrides the noold option. See
231
"Supfiles" below for details.
233
-O overrides and disables the -o flag and the old supfile option.
235
-s (system collections)
236
Normally, you will specify a specific supfile to describe the
237
file collections you want. If you use the -s flag, then a
238
specific supfile will be used that describes the system
239
software file collections. The supfile for system software is
240
/usr/cmu/lib/supfiles/coll.list.
242
-t (time) If you specify -t, then SUP will simply print out the last time
243
and date at which each specified file collection was
244
successfully upgraded; it will not perform any actual upgrade.
245
This is a diagnostic aid in case you suspect the upgrades
248
-v (verbose) Normally, SUP only produces messages to tell what's gone wrong
249
(if anything does go wrong). With the -v flag, messages will
250
be produced to tell what is happening when things are going
253
supfile You must specify the name of a supfile, unless you use the -s
254
flag to indicate the system software supfile. The supfile,
255
described below, specifies which file collections you want to
258
For example, to upgrade system software on your machine, type:
262
or, to have detailed log messages mailed to you:
266
Because SUP runs with your user-id, you will not be able to upgrade the system
267
software unless you are logged onto that account when you execute SUP.
269
Each file collection being upgraded must have a base directory on your
270
machine, which will normally contain all the files in the collection. Within
271
this directory there should be a subdirectory called sup that will be used by
272
the SUP program; it will be created automatically if you do not create it. SUP
273
will put files into this directory as needed.
275
If you want to find out what files need to be upgraded, type:
279
This will list all the files in the collection, indicating which need to be
280
upgraded (and why), which are directories, and which would have backup copies
281
created if the upgrade were performed. If you simply want to find out the date
282
and time of the last successful upgrades, type:
286
This will print the collection name and time of the last upgrade for each
287
collection described in the indicated supfile. For the system collections, you
293
When you execute SUP, you specify a supfile either by name or by using the -s
294
flag. This file is a list of the file collections you wish to upgrade.
296
The supfile is a text file, with each file collection described on a single
297
line. The line begins with the name of the collection, and may then have a
298
number of options separated by spaces. The options are:
300
base=directory The name of the base directory on this machine for this file
301
collection, when you don't want to use the default
304
host=hostname The name of the host machine acting as the repository for this
305
file collection, used for "private" file collections. For
306
"system" file collections, this is unnecessary because the this
307
information is kept in /usr/cs/lib/supfiles/coll.host.
310
The name of the base directory on the repository machine for
311
the file collection (see "How to Set Up a File Collection"
312
below). This is also used only for "private" file collections;
313
for "system" file collections, the information is obtained
314
automatically by the file server. The default name of the host
315
base directory is /usr/collection.
317
login=accountid The name of the account to be used by the file server, when the
318
default is not acceptable (i.e. it doesn't have the necessary
319
file access privileges to read the file collection). The
320
default at CMU is the "Anonymous FTP" account if no data
321
encryption is used, or the owner of the directory
322
sup/collection within the repository machine's base directory
323
if encryption is used.
326
The password used for the login account specified by the
327
"login" option. This password will be transmitted in encrypted
328
form over the network.
330
crypt=key An optional encryption key for filenames and file data for this
331
file collection. If used, the same key must be specified on
332
the repository machine or the upgrade will not take place.
333
This key is used for filenames and data only -- not for
334
transmission of the passsword in the "password" option. The
335
use of data encryption also implies an alternate default
336
account for the file server (see the "login" option above).
339
The account name to which mail is to be addressed for log
340
messages for this file collection, when the -m flag is given to
341
SUP. The account name can be a complete mail address, possibly
342
including a network host name such as sas@cmu-cs-ius.
344
noexec This option prevents the automatic execution of command files
345
on your machine with the upgrade is finished (see "What SUP
348
backup This option enables backup copies of critical files to be
349
created by SUP as specified in "What SUP Does" below.
351
nodelete This option prevents SUP from deleting files on your machine if
352
they are deleted from the file collection on the repository
355
noold This option tells SUP not to check on files in the collection
356
that have not been modified or created since the last upgrade.
357
This allows SUP to run much faster on large file collections,
358
but prevents it from deleting files on the client machine if
359
they are deleted from the repository, or from restoring files
360
that have been accidentally deleted from the client machine.
361
This option is normally useful only for very large file
362
collections. Its function subsumes that of the nodelete
363
option. The noold flag will be ignored when either the -a or
364
-o flag is specified to SUP; this allows a complete file check
365
to be performed with the -o flag when needed to recover from,
366
say, accidental deletion of critical files.
368
Here is an example of a supfile:
371
vision crypt=pupil backup notify=vision@cmu-cs-ius
372
sas host=ius hostbase=/usr/sas/sun login=sas password=foo crypt=bletch
374
This supfile specifies the following file collection upgrades:
376
cmu The "cmu" file collection, which is a "system" file collection,
377
with local base directory /usr/cmu (the default). Backup
378
copies of critical files will be created during upgrading.
380
vision The "vision" file collection, also a "system" file collection,
381
with local base directory /usr/vision. Backups will be
382
created. The data will be encrypted with key pupil, and log
383
messages will be sent to the vision account on cmu-cs-ius.
385
sas A "private" file collection will be upgraded from the
386
cmu-cs-ius machine. The remote base directory is /usr/sas/sun,
387
but the local base directory is /usr/sas. The file server will
388
login on account sas with password foo; the data will be
389
encrypted with key bletch.
391
An upgrade involves several steps:
393
1. SUP first reads the specified supfile, checking it for errors and
394
recording all the specifications and options.
396
2. If any collections do not specify a host name, SUP will look in
397
/usr/cs/supfiles/coll.host to find out the names of the hosts for
398
these collections. In the preceding example, the name server would
399
be asked to supply the host names for the cmu and vision file
402
3. For each collection on the list, SUP will connect to the file server
403
on the appropriate host and carry on the upgrade process. (If the
404
file server is on the same host machine as the client, and the base
405
directories are the same, then no upgrade is performed.)
407
a. The file server and SUP exchange setup information, including
408
the host base directory, login account name, password, and
409
encryption key. SUP also reports the time of the last
410
upgrade, by looking in the file sup/collection/when (e.g.
411
/usr/vision/sup/vision/when) on the client machine. The file
412
server gets the base directory name, if needed, by looking in
413
the file /usr/cs/lib/supservers/coll.dir, and gets the
414
encryption key from sup/collection/crypt on the repository
415
machine. The connection may be refused by the file server for
418
- incorrect login name or password
419
- base directory is protected against access by the
421
- incorrect data encryption key
422
- host not allowed access
424
b. Once the connection is established and access permission has
425
been granted as above, the file server builds a list of all
426
files and directories in the file collection. The list file
427
sup/collection/list (see "How to Set Up a File Collection"
428
below) is used to generate this list. The files indicated in
429
the list file are marked with a special flag if they are
430
indicated to have backup copies created in case of upgrade.
431
The last modification date of each file is checked against the
432
time of the last upgrade (reported by the client above), and
433
if it has been modified since the last upgrade, a flag is set
434
to indicate that the client's copy of this file is out of
435
date. The file list, along with the backup and out-of-date
436
flag for each file, is sent to the client. If a scan file
437
exists as created by SUPSCAN (sup/collection/scan), then the
438
file list is taken from the scan file instead of being
439
constructed from the list file by the file server. In this
440
case, the time of record for the upgrade will be the time at
441
which the scan file was created rather than the time at which
442
the upgrade actually occurs. If the noold option was
443
specified in the supfile (and not overridden by the -a or -o
444
flag to SUP), the list of filenames sent to the client process
445
will exclude those files that were not created or modified
446
since the last upgrade.
448
c. The client SUP process receives the list of files and
449
constructs a list of the files it needs. This will normally
450
be those files that are either (1) out-of-date as indicated by
451
the flag sent from the file server, or (2) missing from the
452
local machine. However, if the -a flag was specified to SUP,
453
then every file in the list will be selected by the client
454
process. The list of needed files is sent to the file server.
455
For each selected file, if the backup flag was marked and the
456
user specified the backup option in the supfile, then a backup
457
copy of the file will be created. This will be a copy of the
458
file with "backup/" inserted in the filename just after the
459
directory name, i.e. /usr/vision/lib/libvision.a would have a
460
backup copy named /usr/vision/lib/backup/libvision.a. (The
461
indicated directory, e.g. /usr/vision/lib/backup, will be
462
created if needed.) Also at this time, if the nodelete option
463
was not specified, the client reads its list of files in the
464
collection during the last successful upgrade,
465
sup/collection/last, and deletes any files appearing in that
466
list that are not in the current file list.
468
d. The file server receives the list of files requested by the
469
client. It checks to see that each file is on its list of
470
files for this collection, and that each file is accessible;
471
if a file fails either condition its name will be reported to
472
the client as being denied to that client. Each file will be
473
sent to the client machine, along with the owning account
474
name, the owning group name, the 12 low-order mode bits, and
475
the last modification time for that file. If a file has more
476
than one link (filename), both of which are requested by the
477
client, then the file will be sent once and the second (etc.)
478
filename will be accompanied only by a flag saying it's a link
479
and the name of the file actually sent. The client receives
480
each file and processes it as described under "File
481
Installation" below. Directories are treated similarly to
482
files; the mode, owning account and group, and modification
483
time are transmitted to the client machine whenever a
484
directory is upgraded.
486
e. When all files have been transmitted, the file server looks at
487
the list of command-files to be executed after upgrading for
488
this collection (see "How to Set Up a File Collection" below).
489
If any of the command-files or their trigger files have been
490
upgraded, then the client is sent the filename of the
491
command-file. The client SUP process will normally execute
492
these files; however, if the user has specified noexec in the
493
supfile, then the files will not be executed. In this case, a
494
log message will be created and printed or mailed, telling the
495
user to please execute these files. When creating command
496
files to be executed by SUP, you should bear in mind that the
497
command file might be executed several times on the same
498
version of the trigger files.
500
f. Finally, if the upgrade is successfully completed, the file
501
server reports the time (on its own clock) at which the
502
upgrade began; the client will record this time in the file
503
sup/collection/when to be reported as above at the start of
504
the next upgrade. If the nodelete option was not specified,
505
then the list of all files in the collection is written into
508
SUP and the server processes begin each connection by determining whether
509
byte-swapping is necessary for passing integers across the network. If so, the
510
server process performs byte-swapping on input or output of integers to the
511
network, while the client uses its natural representation for network I/O.
513
3.1 File Installation
514
When SUP receives an ordinary file (i.e. one that is not a link to a
515
previously sent file), it follows this procedure:
517
1. If the file doesn't already exist on the local machine, it's a new
518
file. It will be created and the data will be read directly into
521
2. Otherwise, the file already exists. An attempt will be made to read
522
the file contents from the network into a temporary file, which will
523
later be renamed to replace the destination file. SUP will try to
524
create a temporary file in the following directories, proceeding
525
down the list until one of the attempts succeeds:
527
a. destination-directory (the directory containing the file
529
b. sup (the sup subdirectory of the local base directory)
530
c. . (the local base directory)
534
If all these attempts fail, SUP will try to create the destination
535
file itself instead of using a temporary file. If that fails, SUP
536
will complain with a log message and go on to the next file.
538
3. The file data itself is read into the temporary or destination file.
539
Interrupts are disabled during this process.
541
4. If the file read was a temporary file, it is renamed to the
542
destination file. This is done via link/unlink, if possible, unless
543
the destination file has more than one link already on this machine.
544
If the link/unlink fails or if the destination file has multiple
545
links, then the temporary file is actually copied to the destination
546
and the temporary file is unlinked.
548
5. The owner, group, modification time, and low-order 12 mode bits of
549
the destination file are set to the values received from the file
550
server. The last-access time of the file is set to the current
553
6. If the -v flag was specified to SUP, a log message is printed
554
indicating the successful receipt of the file.
556
When SUP receives a new link to a file previously received, it simply tries
557
to unlink and link unless the two names are on different file systems on the
558
local machine. If this is the case, or if the link fails, then the previously
559
received file is actually copied to the new name (using exactly the same
560
process as described above for creating a temporary file if needed, etc.) The
561
file-system comparison checks the file system of the old file itself and the
562
directory containing the new name.
564
In all cases, if the directory containing a received file or link does not
565
exist on the local machine, SUP creates it with mkdir (recursively if needed)
566
before creating that file or link. The mode, owner, group, and modification
567
time of the newly created directory will then be set to be the same as the mode
568
of the corresponding directory on the repository machine. This accounting
569
information will be updated whenever the directory is modified on the
572
As can be seen from this description, SUP will work the most smoothly (i.e.
573
always using link/unlink for file name changing) if it has write permission in
574
the local base directory and in all subdirectories of that directory.
575
4. How to Set Up a File Collection
576
It takes only a little bit of effort to set up a file collection on a
577
repository machine to be upgraded by authorized clients.
579
First, the file collection must be given a name and a base directory. There
580
can be several collections with different names sharing the same base
581
directory; for example, there might be a file collection called cmulib for the
582
CMU C library, and one called cmumathlib for just the math routines in the CMU
583
C library, both using /usr/cmu as the base directory.
585
If it is a "private" file collection, client users must be told the name of
586
the repository host and the name of the host base directory for use in the host
587
and hostbase options in the supfile, described above. If it is a "system"
588
collection instead, the system maintainers must alert the name servers of the
589
host name (in /usr/cmu/lib/supservers/coll.host) and the appropriate file
590
server of the base directory name (if not the default, by putting it into
591
/usr/cmu/lib/supservers/coll.dir).
593
Within the base directory, a subdirectory must be created called sup. Within
594
this subdirectory will be a further subdirectory whose name is the name of the
595
collection (there may be several of these if several collections share the same
596
base directory). Each collection's subdirectory will contain any or all of
599
collection/list The list file, describing the files in the collection. The
600
format of this file is explained below.
602
collection/host Normally, the file server allows access to a collection by all
603
machines. If you wish to allow access only to specific remote
604
hosts, you can list their names, one per line, in this text
605
file. If a remote host has several alias names, it need only
606
be listed once in this file. The name LOCAL can be used to
607
allow access to all machines on the local network. This access
608
control is in addition to the other forms of authentication
609
provided by SUP (data encryption and UNIX file protection
613
If you wish to apply data encryption to the filenames and file
614
contents in this collection during upgrading, create this file
615
and place in it the encryption key. This should be on a single
616
line of text containing nothing else except an optional newline
617
character. The client must supply the same key via the crypt
618
option in the supfile for this file collection; the file server
619
checks that explicitly before authorizing the upgrade to take
622
collection/scan To speed up execution of the file server, you may wish to
623
create a scan file periodically. This is done by executing the
626
$ supscan [-v] collection [basedir]
628
This will construct a list of all files matching the
629
specifications in the list file, and record it in the scan
630
file. When an upgrade is performed on the collection, the file
631
server will notice that the scan file is present and use this
632
list instead of actually building the filename list by
633
analyzing the list file. The time of record for the upgrade
634
will then be the time at which the scan file was created rather
635
than the time at which the upgrade occurs. A scan file is only
636
useful for very large file collections that are upgraded many
637
times each day. The options for the SUPSCAN program are -v
638
("verbose") to produce messages as it scans the file list, and
639
basedir if the collection is a private collection whose base
640
directory name is not the default name.
642
This is all the preparation required for a file collection to be upgraded.
644
Note that the default user-id for the file server is "Anonymous FTP" if no
645
data encryption is used; if encryption is used, the default will be the owner
646
of the subdirectory sup/collection within the base directory.
649
The list file contains a description of the files to be upgraded. It
650
contains any number of commands, each on a separate line of text. Each line
651
contains a keyword and a number of operands separated by spaces. All filenames
652
in the list are evaluated relative to the collection's base directory on the
653
repository machine for the file server, and relative to the base directory on
654
the client machine for the client SUP process. All (except execfile) may be
655
file specifications containing the shell's meta-characters *, ?, [...], and
661
These files will be included in the list of files to be
662
upgraded. If a directory name is given, all the files in that
663
directory will be included and any subdirectories will be
664
recursively included as well.
667
These files will not be included in the list; if a directory is
668
specified, it will not be included nor will its contents be
669
included. For example, the specifications upgrade lib and omit
670
lib/test will include all files and subdirectories of lib
671
except lib/test (and any subdirectories or files within
675
The specified patterns are compared against the files in the
676
upgrade list. If a pattern matches, the file is omitted. The
677
omitany command currently supports all wild-card patterns
678
except {...}. Also, the pattern must match the entire
679
filename, so a leading */, or a trailing /*, may be necessary
683
The files will be marked for creating backup copies whenever
684
they are upgraded (as described above). Only files can be
685
included in this list -- not directories. As noted above,
686
actual backup copies will only be created by SUP when these
687
files are being upgraded, and then only if the user has
688
specified the backup option in the supfile.
690
execute execfile (triggerfile ...) ...
691
The listed execfiles are command files or programs to be
692
executed after an upgrade to perform routine installation of
693
the upgraded files. Each execfile will be executed only when
694
it is upgraded itself, or when any of its listed triggerfiles
695
have been upgraded. The installation tasks performed by such
696
files might be, for example, creating a table of contents for
697
manual entries or for a subroutine library, or modifying a host
698
name field within a data file.
701
The named listfiles will be read at this point. This allows a
702
collection to contain another collection in its entirety, by
703
simply specifying the name of the listfile for that other
707
The specified file(s) are marked for backup; if they are
708
upgraded and the client has specified the backup option in the
709
corresponding line of the supfile, then backup copies will be
710
created as described above. Directories may not be specified,
711
and no recursive filename construction is performed; you must
712
specify the names of the specific files to be backed up before
716
The specified file(s) are to be treated as symbolic links and
717
will be transfered as such and not followed. By default, SUP
718
will follow symbolic links.
721
All the symbolic links in the specified subdirectories are to
722
be transferred as such and not followed.
724
Blank lines may appear freely in the list file, and the order in which
725
command lines appear within the file does not matter. Filenames must generally
726
match as strings, e.g. with base directory /usr/vision, "lib" in the upgrade
727
command would not match "/usr/vision/lib" in the omit command; it would only
728
match "lib" in the omit command. However, one special exception exists: if
729
the base directory is specified via "dot" (.) in the upgrade command, the
730
filenames within that directory need not begin with "./" in other commands.
731
For example, with base directory /usr/vision, the commands "upgrade ." and
732
"omit exp" specify a file list including all files and directories within
733
/usr/vision except the subdirectory /usr/vision/exp and its subdirectories and
736
You need to add the following entries to /etc/services:
741
A supfilsrv daemon should be kept running on any machine that may act as a
742
repository for a collection. Since this includes private collections, it is
743
advisable to have supfilesrv running on all machines if SUP is to be widely
744
used. nanny can be used to start the supfilesrv.
746
The program modcoll.8 is used to set up the control files for the "system"
747
collections. See /usr/cs/man/man8/modcoll.8
752
2. How to Use SUP to Upgrade a File Collection 2
758
3.1 File Installation 4
760
4. How to Set Up a File Collection 5