mirror of
https://gitlab.nic.cz/knot/knot-dns.git
synced 2026-02-03 18:49:28 -05:00
126 lines
3.4 KiB
Text
126 lines
3.4 KiB
Text
Dependencies
|
|
============
|
|
|
|
Knot DNS has several dependencies:
|
|
* libtool
|
|
* autoconf > 2.65
|
|
* pkg-config
|
|
* liburcu >= 0.5.4
|
|
* gnutls >= 3.0
|
|
* jansson >= 2.3
|
|
* libedit
|
|
|
|
Embedded libraries:
|
|
* lmdb (system library is preferred)
|
|
|
|
Optional packages:
|
|
* libcap-ng >= 0.6.4 (for POSIX 1003.1e capabilities(7))
|
|
* libidn (for IDNA2003 support in Knot utilities)
|
|
* libsystemd (for systemd init system support)
|
|
|
|
Dependencies for building documentation:
|
|
* python-sphinx
|
|
|
|
Installation
|
|
============
|
|
|
|
Knot DNS may already be included in your operating system distribution and
|
|
therefore can be installed from packages (Linux), ports (BSD) or via
|
|
Homebrew (Mac). This is always preferred unless you want to test the latest
|
|
features, contribute to Knot development, or you just know what you are doing.
|
|
|
|
Following sections describe how to build Knot DNS from the source code.
|
|
|
|
1) Install prerequisites
|
|
|
|
Debian based distributions
|
|
--------------------------
|
|
Update the system:
|
|
$ sudo apt-get update
|
|
$ sudo apt-get upgrade
|
|
|
|
Install prerequisites:
|
|
$ sudo apt-get install \
|
|
libtool autoconf make pkg-config liburcu-dev libgnutls28-dev libjansson-dev libedit-dev
|
|
|
|
Install optional packages to override embedded libraries:
|
|
$ sudo apt-get install liblmdb-dev
|
|
|
|
Install optional packages:
|
|
$ sudo apt-get install libcap-ng-dev libsystemd-dev libidn11-dev protobuf-c-compiler libfstrm-dev
|
|
|
|
Fedora like distributions
|
|
-------------------------
|
|
Update the system:
|
|
# dnf upgrade
|
|
|
|
Install basic development tools:
|
|
# dnf install @buildsys-build
|
|
|
|
Install prerequisites:
|
|
# dnf install \
|
|
libtool autoconf pkgconfig automake userspace-rcu-devel gnutls-devel jansson-devel libedit-devel
|
|
|
|
Install optional packages to override embedded libraries:
|
|
# dnf install lmdb-devel
|
|
|
|
Install optional packages:
|
|
# dnf install libcap-ng-devel systemd-devel libidn-devel protobuf-c-devel fstrm-devel
|
|
|
|
When compiling on RHEL based system, the Fedora EPEL repository has to be
|
|
enabled. Also for RHEL 6, forward compatibility package gnutls30-devel
|
|
with newer GnuTLS is required instead of gnutls-devel.
|
|
|
|
2) Install Knot DNS
|
|
|
|
Knot DNS requires compiler to support atomic intrinsics.
|
|
GCC version at least 4.1 supports legacy atomic builtins, however 4.7
|
|
or newer is preferred. Clang supports atomics since version 2.9.
|
|
|
|
Get the source code:
|
|
$ git clone git://git.nic.cz/knot-dns.git
|
|
Or extract source package to knot-dns directory
|
|
|
|
Compile Knot
|
|
$ cd knot-dns
|
|
$ autoreconf -if
|
|
$ ./configure
|
|
$ make
|
|
|
|
Install Knot DNS into system:
|
|
$ sudo make install
|
|
$ sudo ldconfig
|
|
|
|
NOTE: If you want to reduce zscanner compile time, use configure option --disable-fastparser.
|
|
|
|
Running
|
|
=======
|
|
|
|
1) Each server needs configuration file. Please see samples/knot.sample.conf,
|
|
project documentation, or man 5 knot.conf for more details.
|
|
Configuration file has to specify:
|
|
- storage for PID files, journal files etc.
|
|
- network interfaces
|
|
- served zones
|
|
|
|
E.g. use the default config file:
|
|
$ cd /etc/knot
|
|
$ mv knot.sample.conf knot.conf
|
|
Modify the config:
|
|
$ editor knot.conf
|
|
|
|
2) Prepare working directory
|
|
$ mv example.com.zone /var/lib/knot/
|
|
|
|
3) Start the server. This can be done by running the 'knotd' command.
|
|
Alternatively, your distribution should have an init script available, if you've
|
|
installed Knot using a binary package.
|
|
|
|
Start Knot in the foreground to see if it runs:
|
|
$ knotd -c myserver.conf
|
|
|
|
For more information, refer to the user manual or:
|
|
$ knotc -h
|
|
$ knotd -h
|
|
|
|
Join the chat at https://gitter.im/CZ-NIC/knot
|