| Installation instructions for iptables | |
| ====================================== | |
| iptables uses the well-known configure(autotools) infrastructure. | |
| $ ./configure | |
| $ make | |
| # make install | |
| Prerequisites | |
| ============= | |
| * no kernel-source required | |
| * but obviously a compiler, glibc-devel and linux-kernel-headers | |
| (/usr/include/linux) | |
| Configuring and compiling | |
| ========================= | |
| ./configure [options] | |
| --prefix= | |
| The prefix to put all installed files under. It defaults to | |
| /usr/local, so the binaries will go into /usr/local/bin, sbin, | |
| manpages into /usr/local/share/man, etc. | |
| --with-xtlibdir= | |
| The path to where Xtables extensions should be installed to. It | |
| defaults to ${libdir}/xtables. | |
| --enable-devel (or --disable-devel) | |
| This option causes development files to be installed to | |
| ${includedir}, which is needed for building additional packages, | |
| such as Xtables-addons or other 3rd-party extensions. | |
| It is enabled by default. | |
| --enable-static | |
| Produce additional binaries, iptables-static/ip6tables-static, | |
| which have all shipped extensions compiled in. | |
| --disable-shared | |
| Produce binaries that have dynamic loading of extensions disabled. | |
| This implies --enable-static. | |
| (See some details below.) | |
| --enable-libipq | |
| This option causes libipq to be installed into ${libdir} and | |
| ${includedir}. | |
| --with-ksource= | |
| Xtables does not depend on kernel headers anymore, but you can | |
| optionally specify a search path to include anyway. This is | |
| probably only useful for development. | |
| If you want to enable debugging, use | |
| ./configure CFLAGS="-ggdb3 -O0" | |
| (-O0 is used to turn off instruction reordering, which makes debugging | |
| much easier.) | |
| To show debug traces you can add -DDEBUG to CFLAGS option | |
| Other notes | |
| =========== | |
| The make process will automatically build multipurpose binaries. | |
| These have the core (iptables), -save, -restore and -xml code | |
| compiled into one binary, but extensions remain as modules. | |
| Static and shared | |
| ================= | |
| Basically there are three configuration modes defined: | |
| --disable-static --enable-shared (this is the default) | |
| Build a binary that relies upon dynamic loading of extensions. | |
| --enable-static --enable-shared | |
| Build a binary that has the shipped extensions built-in, but | |
| is still capable of loading additional extensions. | |
| --enable-static --disable-shared | |
| Shipped extensions are built-in, and dynamic loading is | |
| deactivated. |