/etc
/etc
(and some other directories like
/dev
,
/root
and
/var
)
without having to manually check and modify every file.
The administrator should run this script after performing an operating
system update (e.g. after running
make
build
in
/usr/src
or after extracting new binary distribution files)
to update to the latest configuration and startup files.
etcupdate compares the new configuration files against the currently installed files. The user is given the option of installing, merging or deleting each modified or missing file. The user can also view the differences between the files. By default, it shows the differences in the unified diff format. The default format can be toggled to show the differences in unified, context, or side by side formats or an user-defined command may be used to view differences. (And if wdiff is installed, it can also show differences on a word by word basis.)
etcupdate also detects if the user installs certain special files and performs corresponding tasks like remaking device nodes or rebuilding a database from the aliases(5) file. Finally, etcupdate runs postinstall(8) to check the results.
etcupdate needs a clean set of new configuration files to compare the existing files against. These files, called the ``reference files'' in this manual, may be derived from either a source or binary distribution of NetBSD.
If the user is updating from sources (which is the default mode),
etcupdate
will first create a copy of the reference files
by running
make
distribution
in
/usr/src/etc
,
installing the files to a so-called
temproot
.
(See usage of the
-s srcdir
and
-t temproot
options later in this manual page.)
Although this is the default mode, it is not recommended
(see the
``BUGS''
section).
Instead of using sources, it is recommended that the user should extract one or more binary distribution sets in a special location and use those as the reference files (see usage of the -s tgzdir option later in this manual page), or specify one or more binary distribution sets directly (see usage of the -s tgzfile option later in this manual page).
The following options are available:
/var/etcupdate
and use these checksums to determine if there have been any
local modifications.
PAGER
variable.
/usr/src
but it can be changed either with this option
or the
SRCDIR
variable.
The reference files will be created by running
``make distribution''
in the
srcdir
/etc
directory.
Note that
srcdir
should refer to the top of the source directory tree;
earlier versions of
etcupdate
expected
srcdir
to refer to the
etc
subdirectory within the source tree.
etc.tgz
''
set file must be present.
The files that are distributed in the
``
xetc.tgz
''
set file are optional.
The reference files from the specified directory will be copied to the
temproot
directory.
etc.tgz
''
or
``
xetc.tgz
''
from a binary distribution of
NetBSD.
Each set file is a compressed archive containing reference files,
which will be extracted to the
temproot
directory.
Multiple
-s
options may be used to specify multiple set files.
The
``
etc.tgz
''
set file must be specified.
The
``
xetc.tgz
''
set file is optional.
temproot
directory.
This directory will be used for a temporary copy of
the reference files created by running
``make distribution''
in the source directory specified by
-s srcdir,
or a temporary copy of the reference files extracted from
the binary sets specified by
-s tgzfile,
or a temporary copy of the reference files from the directory specified by
-s tempdir.
By default this is
/tmp/temproot
but can be changed either with this option or the
TEMPROOT
environment variable.
WIDTH
variable.
This is useful for
xterm(1)
users with wider shell windows.
TEMPROOT
temproot
.
See
-t
above.
SRCDIR
PAGER
WIDTH
IGNOREFILES
/etc/etcupdate.conf
~/.etcupdaterc
/usr/src/etc
directory):
etcupdate
The default location of the source files is
/usr/src
but this may be overridden with the
-s srcdir
command line argument:
etcupdate
-s
/some/where/src
To update the configuration files from binary distribution sets do something like this:
etcupdate
-s
/some/where/etc.tgz
-s
/some/where/xetc.tgz
or like this:
mkdir
/tmp/temproot
cd
/tmp/temproot
tar
-xpzf
/some/where/etc.tgz
tar
-xpzf
/some/where/xetc.tgz
etcupdate
-s
/tmp/temproot
You have modified only few files in the
/etc
directory so you would like install most of the updates without being asked.
To automatically update the unmodified configuration files:
etcupdate
-a
To get a better idea what's going on, use the -v flag:
etcupdate
-v
In
NetBSD4.0,
the
-s tgzfile
option was added, the
-b tempdir
option was converted to
-s tgzdir,
and the
-s srcdir
option was changed to refer to the top of the
source directory tree rather than to the
etc
subdirectory.
In NetBSD5.0, the the ability to specify multiple colon-separated files with a single -s option was deprecated, and options deprecated in NetBSD4.0 were removed.
The idea for this script (including code fragments, variable names etc.) came from the FreeBSD mergemaster (by Douglas Barton). Unlike the FreeBSD mergemaster, this does not use CVS version tags by default to compare if the files need to be updated. Files are compared with cmp(1) as this is more reliable and the only way if the version numbers are the same even though the files are different.
/usr/src
directory is used by default), then
etcupdate
will run
``make distribution''
in the
etc
subdirectory of the source directory, but it will not use the same
options or environment variables that would be used during a full build
of the operating system.
For this reason, use of the
``-s srcdir''
option is not recommended, and use of the
``-s tgzdir''
or
``-s tgzfile''
options is recommended.