Installation
This page describes how to download, compile, and install Frida on Linux. See also:
- macOS
- MS Windows
- Configuration — local setup via
frida.ini
Requirements
Operating system
Our standard environment is Debian Linux. Please report difficulties with other distributions.
Build tools
cmake≥ 3.20,make,pkg-configg++≥ 11 orclang++≥ 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
gnuplotorgnuplot-x11. Do not installgnuplot-nox; it fails with errors likeunrecognized 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 \
gnuplotkww and lmfit must be built from source (see below).
Download
Download source packages for the MLZ dependencies and for Frida itself:
- https://jugit.fz-juelich.de/mlz/kww/-/releases
- https://jugit.fz-juelich.de/mlz/lmfit/-/releases
- https://jugit.fz-juelich.de/mlz/frida/-/releases
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 ldconfigOn 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 outputThe 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 > quitTroubleshooting
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_PATHcmake 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 libyamlReporting 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