Installing Required Packages¶
You can install the required packages (prerequisites) in the following ways:
- Use
tools/prerequisitesto install packages automatically. - Copy and paste the commands from this page into your console (for example, right-click in PuTTY).
Tested distributions¶
Problematic distributions¶
- Gentoo
- NixOS
- Ubuntu 25.10
- WSL/WSL2
All other distributions¶
... are untested and may or may not work. Results strongly depend on your Linux/admin experience.
Detect your distribution¶
If you do not remember which Linux version is installed, check it as follows:
-
Linux distribution:
-
Ubuntu/Debian version:
-
Machine type:
i686for 32-bit x86 andx86_64for 64-bit x86:
Fedora¶
-
Update the system:
-
Fedora 42/43 64-bit:
Text Onlysudo dnf -y install \ bc binutils bison bzip2 ccache cmake curl ecj elfutils-libelf-devel flex gcc gcc-c++ gettext \ git glib2-devel glibc-devel glibc-devel.i686 gnutls-devel ImageMagick inkscape \ javapackages-tools kmod libacl-devel libattr-devel libcap-devel libgcc libglade2-devel libstdc++-devel \ libtool libuuid-devel libxml2-devel libzstd-devel make ncurses ncurses-devel ncurses-term \ netcat net-tools openssl openssl-devel openssl-devel-engine patch patchutils perl \ perl-String-CRC32 pkgconfig pv qt5-qtbase-devel readline-devel rpcgen rsync sharutils sqlite sqlite-devel \ subversion texinfo unar util-linux wget which xz zlib-ng-devel -
Fedora 41 64-bit:
Text Onlysudo dnf -y install \ bc binutils bison bzip2 ccache cmake curl ecj elfutils-libelf-devel flex gcc gcc-c++ gettext \ git glib2-devel glibc-devel gnutls-devel ImageMagick inkscape javapackages-tools kmod \ libacl-devel libattr-devel libcap-devel libgcc libglade2-devel libstdc++-devel libtool \ libuuid-devel libxml2-devel libzstd-devel make ncurses ncurses-devel ncurses-term netcat net-tools \ openssl openssl-devel openssl-devel-engine patch patchutils perl perl-String-CRC32 pkgconfig pv \ qt5-qtbase-devel readline-devel rpcgen rsync sharutils sqlite sqlite-devel subversion texinfo unar \ util-linux wget which xz zlib-ng-devel -
Fedora 40 64-bit:
Text Onlysudo dnf -y install \ bc binutils bison bzip2 ccache cmake curl ecj elfutils-libelf-devel flex gcc gcc-c++ gettext \ git glib2-devel glibc-devel gnutls-devel ImageMagick inkscape javapackages-tools kmod \ libacl-devel libattr-devel libcap-devel libgcc libglade2-devel libstdc++-devel libtool \ libuuid-devel libxml2-devel libzstd-devel make ncurses ncurses-devel ncurses-term netcat net-tools \ openssl openssl-devel patch patchutils perl perl-String-CRC32 pkgconfig pv qt5-qtbase-devel \ readline-devel rpcgen rsync sharutils sqlite sqlite-devel subversion texinfo unar util-linux wget xz \ zlib-ng-devel -
Fedora 37/38/39 64-bit:
Text Onlysudo dnf -y install \ bc binutils bison bzip2 ccache cmake curl ecj elfutils-libelf-devel flex ftp gcc gcc-c++ \ gettext git glib2-devel glibc-devel.i686 gnutls-devel ImageMagick inkscape javapackages-tools \ kmod libacl-devel libattr-devel libcap-devel libgcc.i686 libglade2-devel \ libstdc++-devel.i686 libstdc++-devel.x86_64 libtool libuuid-devel libxml2-devel libzstd-devel.x86_64 make \ ncftp ncurses-devel ncurses-devel.i686 ncurses-term netcat net-tools openssl openssl-devel \ patch patchutils perl perl-String-CRC32 pkgconfig pv qt5-qtbase-devel readline-devel rpcgen \ rsync sharutils sqlite-devel sqlite.i686 subversion texinfo unar util-linux wget xz zlib-devel \ zlib-devel.i686 -
Fedora 36 64-bit:
Text Onlysudo dnf -y install \ autoconf automake bc binutils bison bzip2 ccache cmake curl ecj elfutils-libelf-devel flex \ gcc gcc-c++ gettext git glib2-devel glibc-devel.i686 gnutls-devel ImageMagick inkscape \ javapackages-tools kmod libacl-devel libattr-devel libcap-devel libgcc.i686 libglade2-devel \ libstdc++-devel.i686 libstdc++-devel.x86_64 libtool libuuid-devel libxml2-devel libzstd-devel.x86_64 make \ ncftp ncurses-devel ncurses-devel.i686 ncurses-term netcat net-tools openssl openssl-devel \ patch patchutils perl perl-String-CRC32 pkgconfig pv qt5-qtbase-devel readline-devel rpcgen \ rsync sharutils sqlite-devel sqlite.i686 subversion texinfo unar util-linux wget xz zlib-devel \ zlib-devel.i686 -
Fedora 35 64-bit:
Text Onlysudo dnf -y install \ autoconf automake bc binutils bison bzip2 ccache cmake curl ecj elfutils-libelf-devel flex \ gcc gcc-c++ gettext git glib2-devel glibc-devel.i686 gnutls-devel ImageMagick inkscape \ javapackages-tools kmod libacl-devel libattr-devel libcap-devel libgcc.i686 libglade2-devel \ libstdc++-devel.i686 libstdc++-devel.x86_64 libtool libuuid-devel libxml2-devel libzstd-devel.x86_64 make \ ncftp ncurses-devel ncurses-devel.i686 ncurses-term netcat net-tools openssl openssl-devel \ patch patchutils perl perl-String-CRC32 pkgconfig pv qt5-qtbase-devel readline-devel rpcgen \ rsync sharutils sqlite-devel sqlite.i686 subversion texinfo unar util-linux wget xz zlib-devel \ zlib-devel.i686 -
Fedora 33/34 64-bit:
Text Onlysudo dnf -y install \ autoconf automake bc binutils bison bzip2 ccache cmake ecj flex gcc gcc-c++ gettext git \ glib2-devel glibc-devel.i686 gnutls-devel ImageMagick inkscape kmod libacl-devel libattr-devel \ libcap-devel libgcc.i686 libglade2-devel libstdc++-devel.i686 libtool libuuid-devel libxml2-devel \ libzstd-devel.i686 make ncurses-devel ncurses-devel.i686 ncurses-term openssl openssl-devel patch perl \ perl-String-CRC32 pkgconfig pv qt5-qtbase-devel readline-devel rsync sqlite-devel sqlite.i686 subversion \ texinfo unar util-linux wget xz zlib-devel zlib-devel.i686 -
If the following system runs 64-bit Linux, install additionally:
-
Fedora ~20 32-bit:
Debian¶
-
Update the system:
-
Debian 13 64-bit:
Text Onlysudo apt -y install \ autopoint bc binutils bison bsdmainutils bzip2 ccache cmake curl ecj flex ftp g++ gawk gcc \ gcc-multilib gettext git graphicsmagick imagemagick inkscape intltool java-wrappers kmod \ lib32ncurses-dev lib32stdc++6 lib32z1-dev libacl1-dev libc6-dev-i386 libcap-dev libelf-dev \ libglib2.0-dev libgnutls28-dev libncurses5-dev libreadline-dev libsqlite3-dev libssl-dev \ libstring-crc32-perl libtool-bin libusb-dev libxml2-dev libzstd-dev make netcat-traditional patch patchutils \ perl pkg-config pv rsync sharutils sqlite3 subversion sudo texinfo tofrodos unar unzip uuid-dev \ wget zlib1g-dev -
Debian 12 64-bit:
Text Onlysudo apt -y install \ autopoint bc binutils bison bsdmainutils bzip2 ccache cmake curl ecj flex ftp g++ gawk gcc \ gcc-multilib gettext git graphicsmagick imagemagick inkscape intltool java-wrappers kmod \ lib32ncurses5-dev lib32stdc++6 lib32z1-dev libacl1-dev libc6-dev-i386 libcap-dev libelf-dev \ libglib2.0-dev libgnutls28-dev libncurses5-dev libreadline-dev libsqlite3-dev libssl-dev \ libstring-crc32-perl libtool-bin libusb-dev libxml2-dev libzstd-dev make netcat-traditional patch patchutils \ perl pkg-config pv rsync sharutils sqlite3 subversion sudo texinfo tofrodos unar unzip uuid-dev \ wget zlib1g-dev -
Debian 11 64-bit:
Text Onlysudo apt -y install \ autopoint bc binutils bison bsdmainutils bzip2 ccache cmake curl ecj flex ftp g++ gawk gcc \ gcc-multilib gettext git graphicsmagick imagemagick inkscape intltool java-wrappers kmod \ lib32ncurses5-dev lib32stdc++6 lib32z1-dev libacl1-dev libc6-dev-i386 libcap-dev libelf-dev \ libglib2.0-dev libgnutls28-dev libncurses5-dev libreadline-dev libsqlite3-dev libssl-dev \ libstring-crc32-perl libtool-bin libusb-dev libxml2-dev libzstd-dev make netcat patch patchutils perl \ pkg-config pv rsync sharutils sqlite3 subversion sudo texinfo tofrodos unar unzip uuid-dev wget \ zlib1g-dev
Devuan¶
Devuan has already been used successfully for builds. Install the same packages suggested for Debian.
LMDE¶
LMDE (Linux Mint Debian Edition) has already been used successfully for builds. Install the same packages suggested for Debian.
Ubuntu¶
-
German keyboard layout:
See ubuntu.com: LocaleConf
-
Enable 32-bit (multiarch):
See debian.org: Multiarch HOWTO and heise.de: install packages for multiple CPU architectures on Linux
-
Update the system:
-
uutils-coreutils issue starting with Ubuntu 25.10:
Canonical replaced GNU coreutils (GPL) with uutils coreutils (MIT/Rust/Code of Conduct), which causes several issues, including problems withpseudo-host.
See Carefully But Purposefully Oxidising Ubuntu and
Ubuntu 25.10's move to Rust coreutils causes major issues for some executables.
Typical error:couldn't allocate absolute path for 'null'.
In general, uutils-coreutils is currently not recommended for Freetz builds due to immaturity and known issues in multiple tools (date,cp,mv,base64,du,sort,tail,ls,md5sum,dd,sudo, ...).
Workaround: remove uutils-coreutils and install GNU coreutils with
-
Ubuntu 26 64-bit:
Text Onlysudo apt-get -y install \ autopoint bc binutils bison bsdmainutils bzip2 ccache cmake curl ecj flex ftp g++ gawk gcc \ gcc-multilib gettext git graphicsmagick imagemagick inkscape intltool java-wrappers kmod \ lib32ncurses-dev lib32stdc++6 lib32z1-dev libacl1-dev libc6-dev-i386 libcap-dev libelf-dev \ libglib2.0-dev libgnutls28-dev libncurses-dev libreadline-dev libsqlite3-dev libssl-dev \ libstring-crc32-perl libtool-bin libusb-dev libxml2-dev libzstd-dev make ncftp netcat-openbsd net-tools patch \ patchutils perl pkg-config pv rsync sharutils sqlite3 subversion sudo texinfo tofrodos unar unzip \ uuid-dev wget zip zlib1g-dev -
Ubuntu 23/24/25 64-bit:
Text Onlysudo apt-get -y install \ autopoint bc binutils bison bsdmainutils bzip2 ccache cmake curl ecj flex ftp g++ gawk gcc \ gcc-multilib gettext git graphicsmagick imagemagick inkscape intltool java-wrappers kmod \ lib32ncurses-dev lib32stdc++6 lib32z1-dev libacl1-dev libc6-dev-i386 libcap-dev libelf-dev \ libglib2.0-dev libgnutls28-dev libncurses-dev libreadline-dev libsqlite3-dev libssl-dev \ libstring-crc32-perl libtool-bin libusb-dev libxml2-dev libzstd-dev make ncftp netcat-openbsd net-tools patch \ patchutils perl pkg-config pv rsync sharutils sqlite3 subversion sudo texinfo tofrodos unar unzip \ uuid-dev wget zip zlib1g-dev -
Ubuntu 22 64-bit:
Text Onlysudo apt-get -y install \ autopoint bc binutils bison bsdmainutils bzip2 ccache cmake curl ecj flex ftp g++ gawk gcc \ gcc-multilib gettext git graphicsmagick imagemagick inkscape intltool java-wrappers kmod \ lib32ncurses5-dev lib32stdc++6 lib32z1-dev libacl1-dev libc6-dev-i386 libcap-dev libelf-dev \ libglib2.0-dev libgnutls28-dev libncurses5-dev libreadline-dev libsqlite3-dev libssl-dev \ libstring-crc32-perl libtool-bin libusb-dev libxml2-dev libzstd-dev make ncftp netcat-openbsd net-tools patch \ patchutils perl pkg-config pv rsync sharutils sqlite3 subversion sudo texinfo tofrodos unar unzip \ uuid-dev wget zip zlib1g-dev -
Ubuntu 20/21 64-bit:
Text Onlysudo apt-get -y install \ autopoint bc binutils bison bsdmainutils bzip2 ccache cmake curl ecj flex ftp g++ gawk gcc \ gcc-multilib gettext git graphicsmagick imagemagick inkscape intltool java-wrappers kmod \ lib32ncurses5-dev lib32stdc++6 lib32z1-dev libacl1-dev libc6-dev-i386 libcap-dev libelf-dev \ libglib2.0-dev libgnutls28-dev libncurses5-dev libreadline-dev libsqlite3-dev libssl-dev \ libstring-crc32-perl libtool-bin libusb-dev libxml2-dev libzstd-dev make ncftp netcat net-tools patch \ patchutils perl pkg-config pv rsync sharutils sqlite3 subversion sudo texinfo tofrodos unar unzip \ uuid-dev wget zip zlib1g-dev # sqlite 32-bit may fail with apt, but works with apt-get. See also: # https://developpaper.com/ubuntu-solves-the-problem-of-libsqlite3-0-dependency-recommended/ sudo apt -y install libzstd-dev:i386 sqlite3:i386 -
Ubuntu 18/19 64-bit:
Text Onlysudo apt-get -y install \ autopoint bc binutils bison bsdmainutils build-essential bzip2 ccache cmake curl ecj flex \ g++ gawk gcc gcc-multilib gettext git graphicsmagick imagemagick inkscape intltool kmod \ lib32ncurses5-dev lib32stdc++6 lib32z1-dev libacl1-dev libc6-dev-i386 libcap-dev libglib2.0-dev \ libgnutls28-dev libncurses5-dev libreadline-dev libsqlite3-dev libssl-dev libstring-crc32-perl \ libtool-bin libusb-dev libzstd-dev make ncftp netcat net-tools openssl patch patchutils perl \ pkg-config pv rsync sqlite3 subversion sudo texinfo tofrodos unar unzip uuid-dev wget zlib1g-dev -
Ubuntu 15/16/17 64-bit:
Text Onlysudo apt-get -y install \ autoconf automake autopoint bc binutils bison bsdmainutils bzip2 ecj flex g++ gawk gcc \ gcc-multilib gettext git graphicsmagick imagemagick inkscape intltool kmod lib32ncurses5-dev \ lib32stdc++6 libacl1-dev libc6-dev-i386 libcap-dev libglib2.0-dev libncurses5-dev libreadline-dev \ libstring-crc32-perl libtool-bin libusb-dev make patch perl pkg-config pv realpath rsync subversion sudo texinfo \ tofrodos unar unzip wget zlib1g-dev -
Ubuntu 14 64-bit:
Text Onlysudo apt-get -y install \ autoconf automake automake1.9 autopoint bc binutils bison bsdmainutils build-essential \ bzip2 ccache cmake curl ecj flex g++ gawk gcc gcc-multilib gettext git graphicsmagick imagemagick \ inkscape intltool kmod lib32ncurses5-dev lib32stdc++6 lib32z1-dev libacl1-dev libc6-dev-i386 \ libcap-dev libglib2.0-dev libncurses5-dev libreadline-dev libsqlite3-dev libstring-crc32-perl \ libtool libusb-dev make netcat openssl patch perl pkg-config pv realpath rsync sqlite3 subversion \ sudo texinfo tofrodos unar unzip wget zlib1g-dev
Additionally, install manually:
Text Onlycmake min v3.4.3 https://ftp.osuosl.org/pub/blfs/conglomeration/cmake/cmake-3.4.3.tar.gz cpio min v2.12 https://ftp.gnu.org/gnu/cpio/cpio-2.12.tar.bz2 make min v3.82 https://ftp.gnu.org/gnu/make/make-3.82.tar.bz2 libzstd min v0 https://github.com/facebook/zstd/releases/download/v1.4.9/zstd-1.4.9.tar.gz
Also, if you want to build ccache:
Text Onlycmake min v3.10 https://ftp.osuosl.org/pub/blfs/conglomeration/cmake/cmake-3.10.3.tar.gz gmp min v4.2 https://ftp.gnu.org/gnu/gmp/gmp-4.2.4.tar.bz2 mpfr min v2.4 https://ftp.gnu.org/gnu/mpfr/mpfr-2.4.2.tar.xz mpc min v0.8 https://gcc.gnu.org/pub/gcc/infrastructure/mpc-0.8.1.tar.gz gcc min v6 https://ftp.gnu.org/gnu/gcc/gcc-6.5.0/gcc-6.5.0.tar.xz # export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib:/usr/local/lib64:/usr/local/lib32" -
If the following systems run 64-bit Linux, install additionally:
-
Ubuntu 15 32-bit / Debian 8: in addition to Ubuntu 13/14 32-bit, install:
-
Ubuntu 13/14 32-bit:
Text Onlysudo apt-get -y install \ autoconf automake automake1.9 binutils bison bzip2 ecj fastjar flex g++ gawk gcc gettext \ graphicsmagick intltool libacl1-dev libcap-dev libncurses5-dev libreadline-dev libstring-crc32-perl \ libtool libusb-dev make patch perl pkg-config python realpath subversion texinfo tofrodos unzip \ zlib1g-dev -
Ubuntu 10/11/12 32-bit:
Text Onlysudo apt-get -y install \ autoconf automake binutils bison bzip2 ecj fastjar flex g++ gawk gcc gettext git-core \ imagemagick intltool libacl1-dev libattr1-dev libcap-dev libglib2.0-dev libncurses5-dev \ libreadline-dev libstring-crc32-perl libtool libusb-dev make patch perl pkg-config python realpath \ subversion texinfo tofrodos unzip xz-utils zlib1g-dev -
Ubuntu 9.04 32-bit (no automake 1.8, use "ecj" instead of "ecj-bootstrap"):
Text Onlysudo apt-get -y install \ autoconf automake automake1.9 binutils bison bzip2 ecj fastjar flex g++ gawk gcc gettext \ git-core imagemagick intltool jikes libacl1-dev libattr1-dev libcap-dev libglib2.0-dev \ libncurses5-dev libreadline-dev libstring-crc32-perl libtool libusb-dev make patch perl pkg-config \ python realpath subversion texinfo tofrodos unzip xz-utils zlib1g-dev
Mint¶
Mint has already been used successfully for builds. Install the same packages suggested for Ubuntu.
Kali¶
Kali rolling has already been used successfully for builds. Install the same packages suggested for Ubuntu.
Most requirements are usually already installed on Kali.
Arch¶
On Arch, the freetz-ng-toolsAUR meta-package has been used successfully for builds.