| 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 |
| an 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 ./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 POSIX threads library are available, chronyd will |
| be built with support for asynchronous resolving of hostnames specified in the |
| server, peer, and pool directives. This allows chronyd operating as a server to |
| respond to client requests when resolving a hostname. If you don't want to |
| enable the support, specify the --disable-asyncdns flag to configure. |
| |
| If development files for the Nettle, NSS, or libtomcrypt library are available, |
| chronyd will be built with support for other cryptographic hash functions than |
| MD5, which can be used for NTP authentication with a symmetric key. If you |
| don't want to enable the support, specify the --disable-sechash flag to |
| configure. |
| |
| 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 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. |
| |
| The --help option can be specified to configure to print all options supported |
| by the script. |
| |
| 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 system call filtering |
| |
| chronyd can be built with support for the Linux secure computing (seccomp) |
| facility. This requires development files for the libseccomp library and the |
| --enable-scfilter option specified to configure. The -F option of chronyd will |
| enable a system call filter, which should significantly reduce the kernel |
| attack surface and possibly prevent kernel exploits from chronyd if it is |
| compromised. |
| |
| 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 installation 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. |
| |
| Last updated 2018-04-04 09:18:44 CEST |