Skip to content
Installation

Installation

This page describes how to download, compile, and install Frida on Linux. See also:

Requirements

Operating system

Our standard environment is Debian Linux. Please report difficulties with other distributions.

Build tools

  • cmake ≥ 3.20, make, pkg-config
  • g++ ≥ 11 or clang++ ≥ 13 (C++20 required)
  • bison, flex

Libraries

The following libraries must be present before building Frida. Those marked build from source are MLZ packages not yet in standard distributions.

Library Debian package Notes
readline ≥ 4.3 libreadline-dev
GSL libgsl-dev GNU Scientific Library
FFTW3 libfftw3-dev fast Fourier transform
HDF5 (C + C++) libhdf5-dev
Boost libboost-dev modules: filesystem, regex, date_time
libyaml libyaml-dev C library for YAML
cerf ≥ 3.0 libcerf-dev complex error functions
kww build from source KWW stretched-exponential transforms
lmfit build from source Levenberg-Marquardt fitting

Runtime

  • gnuplot with X11 support — package gnuplot or gnuplot-x11. Do not install gnuplot-nox; it fails with errors like unrecognized option -title.

Debian / Ubuntu one-liner

sudo apt install \
  cmake make g++ bison flex \
  libreadline-dev libgsl-dev libfftw3-dev \
  libhdf5-dev libboost-dev \
  libyaml-dev libcerf-dev \
  gnuplot

kww and lmfit must be built from source (see below).

Download

Download source packages for the MLZ dependencies and for Frida itself:

On each releases page, go to the latest release and download the .tgz archive.

Build MLZ dependencies

Build kww and lmfit in order:

tar xzvf <source>.tgz
cd <source-directory>
mkdir build && cd build
cmake ..
make
ctest
sudo make install
sudo ldconfig

On openSUSE replace sudo ldconfig with sudo /sbin/ldconfig /usr/local/lib.

Build Frida

tar xzvf frida2-<version>.tgz
cd frida2
mkdir build && cd build
cmake ..
make -j$(nproc)

Run the test suite:

ctest -j$(nproc)

Only proceed if all tests pass. If any fail, run ctest -V for verbose output and report to the maintainer.

Install:

sudo make install
mkdir ~/gnew           # directory for PostScript graphics output

The command frida should now start a session.

First session

$ frida
? >  fm                    # create a small test file
0 >  oy x^2               # set y := x^2
1 >  p                    # plot
1 >  cc p0*t^p1           # create a fit curve
2 >  cwc                  # equal weights
2 >  cf                   # fit — should say "success"
2 >  a                    # add fit curve to plot
2 >  quit

Troubleshooting

Library not found at runtime

If Frida starts but immediately fails with a missing-library error, the dynamic linker cannot find a library installed in a non-standard path (e.g. /usr/local/lib). Fix:

sudo ldconfig                       # update linker cache
# or temporarily:
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

cmake cannot find a library

Run cmake with verbose output to see which find_package call failed:

cmake .. 2>&1 | grep -i "could not\|not found\|error"

Check that the -dev package is installed and that pkg-config can find it:

pkg-config --modversion yaml-0.1    # example for libyaml

Reporting bugs

Attach the output of uname -a and the cmake and make logs:

cmake .. 2>&1 | tee cmake.log
make 2>&1 | tee make.log