Split and convert the manual into four AsciiDoc documents, a document about installation and three documents in the manpage type for chrony.conf, chronyd and chronyc. The minimal man pages that were maintained separately from the manual are replaced by full man pages generated from AsciiDoc. Info files will no longer be provided. Some parts of the manual are rewritten, updated or trimmed. The introduction chapter is partially merged with README. The chapter about typical operating scenarios is included in the chrony.conf man page.
189 lines
6.2 KiB
Text
189 lines
6.2 KiB
Text
// This file is part of chrony
|
|
//
|
|
// Copyright (C) Richard P. Curnow 1997-2003
|
|
// Copyright (C) Miroslav Lichvar 2009-2016
|
|
//
|
|
// This program is free software; you can redistribute it and/or modify
|
|
// it under the terms of version 2 of the GNU General Public License as
|
|
// published by the Free Software Foundation.
|
|
//
|
|
// This program is distributed in the hope that it will be useful, but
|
|
// WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
// General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU General Public License along
|
|
// with this program; if not, write to the Free Software Foundation, Inc.,
|
|
// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
|
|
= Installation
|
|
|
|
The software is distributed as source code which has to be compiled. The source
|
|
code is supplied in the form of a gzipped tar file, which unpacks to a
|
|
subdirectory identifying the name and version of the program.
|
|
|
|
After unpacking the source code, change directory into it, and type
|
|
|
|
----
|
|
./configure
|
|
----
|
|
|
|
This is a shell script that automatically determines the system type. There is
|
|
a single optional parameter, `--prefix` which indicates the directory tree
|
|
where the software should be installed. For example,
|
|
|
|
----
|
|
./configure --prefix=/opt/free
|
|
----
|
|
|
|
will install the `chronyd` daemon into `/opt/free/sbin` and the `chronyc`
|
|
control program into `/opt/free/bin`. The default value for the prefix is
|
|
`/usr/local`.
|
|
|
|
The configure script assumes you want to use gcc as your compiler. If you want
|
|
to use a different compiler, you can configure this way:
|
|
|
|
----
|
|
CC=cc CFLAGS=-O ./configure --prefix=/opt/free
|
|
----
|
|
|
|
for Bourne-family shells, or
|
|
|
|
----
|
|
setenv CC cc
|
|
setenv CFLAGS -O
|
|
./configure --prefix=/opt/free
|
|
----
|
|
|
|
for C-family shells.
|
|
|
|
If the software cannot (yet) be built on your system, an error message will be
|
|
shown. Otherwise, `Makefile` will be generated.
|
|
|
|
On Linux, if development files for the libcap library are available, `chronyd`
|
|
will be built with support for dropping root privileges. On other systems no
|
|
extra library is needed. The default user which `chronyd` should run as can be
|
|
specified with the `--with-user` option of the configure script.
|
|
|
|
If development files for the editline or readline library are available,
|
|
`chronyc` will be built with line editing support. If you don't want this,
|
|
specify the `--disable-readline` flag to configure.
|
|
|
|
If a `timepps.h` header is available (e.g. from the
|
|
http://linuxpps.org[LinuxPPS project]), `chronyd` will be built with PPS API
|
|
reference clock driver. If the header is installed in a location that isn't
|
|
normally searched by the compiler, you can add it to the searched locations by
|
|
setting the `CPPFLAGS` variable to `-I/path/to/timepps`.
|
|
|
|
Now type
|
|
|
|
----
|
|
make
|
|
----
|
|
|
|
to build the programs.
|
|
|
|
If you want to build the manual in HTML, type
|
|
|
|
----
|
|
make docs
|
|
----
|
|
|
|
Once the programs have been successfully compiled, they need to be installed in
|
|
their target locations. This step normally needs to be performed by the
|
|
superuser, and requires the following command to be entered.
|
|
|
|
----
|
|
make install
|
|
----
|
|
|
|
This will install the binaries and man pages.
|
|
|
|
To install the HTML version of the manual, enter the command
|
|
|
|
----
|
|
make install-docs
|
|
----
|
|
|
|
Now that the software is successfully installed, the next step is to set up a
|
|
configuration file. The default location of the file is _/etc/chrony.conf_.
|
|
Several examples of configuration with comments are included in the examples
|
|
directory. Suppose you want to use public NTP servers from the pool.ntp.org
|
|
project as your time reference. A minimal useful configuration file could be
|
|
|
|
----
|
|
pool pool.ntp.org iburst
|
|
makestep 1.0 3
|
|
rtcsync
|
|
----
|
|
|
|
Then, `chronyd` can be run. For security reasons, it's recommended to create an
|
|
unprivileged user for `chronyd` and specify it with the `-u` command-line
|
|
option or the `user` directive in the configuration file, or set the default
|
|
user with the `--with-user` configure option before building.
|
|
|
|
== Support for line editing libraries
|
|
|
|
`chronyc` can be built with support for line editing, this allows you to use
|
|
the cursor keys to replay and edit old commands. Two libraries are supported
|
|
which provide such functionality, editline and GNU readline.
|
|
|
|
Please note that readline since version 6.0 is licensed under GPLv3+ which is
|
|
incompatible with chrony's license GPLv2. You should use editline instead if
|
|
you don't want to use older readline versions.
|
|
|
|
The configure script will automatically enable the line editing support if one
|
|
of the supported libraries is available. If they are both available, the
|
|
editline library will be used.
|
|
|
|
If you don't want to use it (in which case chronyc will use a minimal command
|
|
line interface), invoke configure like this:
|
|
|
|
----
|
|
./configure --disable-readline other-options...
|
|
----
|
|
|
|
If you have editline, readline or ncurses installed in locations that aren't
|
|
normally searched by the compiler and linker, you need to use extra options:
|
|
|
|
`--with-readline-includes=directory_name`::
|
|
This defines the name of the directory above the one where `readline.h` is.
|
|
`readline.h` is assumed to be in `editline` or `readline` subdirectory of the
|
|
named directory.
|
|
|
|
`--with-readline-library=directory_name`::
|
|
This defines the directory containing the `libedit.a` or `libedit.so` file,
|
|
or `libreadline.a` or `libreadline.so` file.
|
|
|
|
`--with-ncurses-library=directory_name`::
|
|
This defines the directory containing the `libncurses.a` or `libncurses.so`
|
|
file.
|
|
|
|
== Extra options for package builders
|
|
|
|
The configure and make procedures have some extra options that may be useful if
|
|
you are building a distribution package for chrony.
|
|
|
|
The `--mandir=DIR` option to configure specifies an install directory for the
|
|
man pages. This overrides the `man` subdirectory of the argument to the
|
|
--prefix option.
|
|
|
|
----
|
|
./configure --prefix=/usr --mandir=/usr/share/man
|
|
----
|
|
|
|
to set both options together.
|
|
|
|
The final option is the `DESTDIR` option to the make command. For example, you
|
|
could use the commands
|
|
|
|
----
|
|
./configure --prefix=/usr --mandir=/usr/share/man
|
|
make all docs
|
|
make install DESTDIR=./tmp
|
|
cd tmp
|
|
tar cvf - . | gzip -9 > chrony.tar.gz
|
|
----
|
|
|
|
to build a package. When untarred within the root directory, this will install
|
|
the files to the intended final locations.
|