Enables `DPDK <https://www.dpdk.org/>`_ packet capture method.
-Dependencies
-^^^^^^^^^^^^
-
-For Suricata's compilation you'll need the following libraries and their development headers installed::
-
- libjansson, libpcap, libpcre2, libyaml, zlib
-
-The following tools are required::
-
- make gcc (or clang) pkg-config rustc cargo
-
-Rust support::
-
- rustc, cargo
-
- Some distros don't provide or provide outdated Rust packages.
- Rust can also be installed directly from the Rust project itself::
-
- 1) Install Rust https://www.rust-lang.org/en-US/install.html
- 2) Install cbindgen - if the cbindgen is not found in the repository
- or the cbindgen version is lower than required, it can be
- alternatively installed as: cargo install --force cbindgen
- 3) Make sure the cargo path is within your PATH environment
- e.g. echo 'export PATH=”${PATH}:~/.cargo/bin”' >> ~/.bashrc
- e.g. export PATH="${PATH}:/root/.cargo/bin"
+Dependencies and compilation
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Ubuntu/Debian
"""""""""""""
.. note:: The following instructions require ``sudo`` to be installed.
-Minimal::
-
- # Installed Rust and cargo as indicated above
- sudo apt-get install build-essential git libjansson-dev libpcap-dev \
- libpcre2-dev libtool libyaml-dev make pkg-config zlib1g-dev
- # On most distros installing cbindgen with package manager should be enough
- sudo apt-get install cbindgen # alternative: cargo install --force cbindgen
-
-Recommended::
-
- # Installed Rust and cargo as indicated above
- sudo apt-get install autoconf automake build-essential ccache clang curl git \
- gosu jq libbpf-dev libcap-ng0 libcap-ng-dev libelf-dev \
- libevent-dev libgeoip-dev libhiredis-dev libjansson-dev \
- liblua5.1-dev libmagic-dev libnet1-dev libpcap-dev \
- libpcre2-dev libtool libyaml-0-2 libyaml-dev m4 make \
- pkg-config python3 python3-dev python3-yaml sudo zlib1g \
- zlib1g-dev
- cargo install --force cbindgen
-
-Extra for iptables/nftables IPS integration::
-
- sudo apt-get install libnetfilter-queue-dev libnetfilter-queue1 \
- libnetfilter-log-dev libnetfilter-log1 \
- libnfnetlink-dev libnfnetlink0
+.. literalinclude:: ../../scripts/docs-ubuntu-debian-minimal-build.sh
+ :caption: Minimal dependencies for Ubuntu/Debian
+ :language: bash
+ :start-after: # install-guide-documentation tag start: Minimal dependencies
+ :end-before: # install-guide-documentation tag end: Minimal dependencies
CentOS, AlmaLinux, RockyLinux, Fedora, etc
""""""""""""""""""""""""""""""""""""""""""
one of the following ways::
sudo dnf -y update
- sudo dnf -y install dnf-plugins-core
- # AlmaLinux 8
+ sudo dnf -y install epel-release dnf-plugins-core
+ # AlmaLinux 8 / RockyLinux 8
sudo dnf config-manager --set-enabled powertools
- # AlmaLinux 9
+ # AlmaLinux 9 / RockyLinux 9
sudo dnf config-manager --set-enable crb
# Oracle Linux 8
sudo dnf config-manager --set-enable ol8_codeready_builder
# Oracle Linux 9
sudo dnf config-manager --set-enable ol9_codeready_builder
-Minimal::
-
- # Installed Rust and cargo as indicated above
- sudo dnf install -y gcc gcc-c++ git jansson-devel libpcap-devel libtool \
- libyaml-devel make pcre2-devel which zlib-devel
- cargo install --force cbindgen
-
-Recommended::
-
- # Installed Rust and cargo as indicated above
- sudo dnf install -y autoconf automake diffutils file-devel gcc gcc-c++ git \
- jansson-devel jq libcap-ng-devel libevent-devel \
- libmaxminddb-devel libnet-devel libnetfilter_queue-devel \
- libnfnetlink-devel libpcap-devel libtool libyaml-devel \
- lua-devel lz4-devel make nss-devel pcre2-devel pkgconfig \
- python3-devel python3-sphinx python3-yaml sudo which \
- zlib-devel
- cargo install --force cbindgen
+.. literalinclude:: ../../scripts/docs-almalinux9-minimal-build.sh
+ :caption: Minimal dependencies for RPM-based distributions
+ :language: bash
+ :start-after: # install-guide-documentation tag start: Minimal RPM-based dependencies
+ :end-before: # install-guide-documentation tag end: Minimal RPM-based dependencies
Compilation
-^^^^^^^^^^^
+"""""""""""
Follow these steps from your Suricata directory::
- ./scripts/bundle.sh
- ./autogen.sh
./configure # you may want to add additional parameters here
# ./configure --help to get all available parameters
- make -j8 # j is for paralleling, you may de/increase depending on your CPU
+ # j is for adding concurrency to make; the number indicates how much
+ # concurrency so choose a number that is suitable for your build system
+ make -j8
make install # to install your Suricata compiled binary
+ # make install-full - installs configuration and rulesets as well
+
+Rust support
+""""""""""""
+
+ Rust packages can be found in package managers but some distributions
+ don't provide Rust or provide outdated Rust packages.
+ In case of insufficient version you can install Rust directly
+ from the Rust project itself::
+
+ 1) Install Rust https://www.rust-lang.org/en-US/install.html
+ 2) Install cbindgen - if the cbindgen is not found in the repository
+ or the cbindgen version is lower than required, it can be
+ alternatively installed as: cargo install --force cbindgen
+ 3) Make sure the cargo path is within your PATH environment
+ echo 'export PATH="~/.cargo/bin:${PATH}"' >> ~/.bashrc
+ export PATH="~/.cargo/bin:${PATH}"
Auto-Setup
^^^^^^^^^^