Search Results for

# Linux Dependencies

> Status — 1.3.0: The Linux x64 binary (`libfexcore.so`) is not shipped in 1.3.0 — it is deferred to a 1.3.x patch release. This document describes the runtime dependencies that the patch release will require; nothing in the 1.3.0 SDK package will load against these instructions today.

FEX Core (`libfexcore.so`) is compiled with Delphi for Linux and links against glibc. This document covers dependency requirements for native Linux and Docker deployments.

## Quick Install (Ubuntu 24.04)

    # Install all runtime dependencies
    sudo apt update
    sudo apt install -y \
        libsqlite3-0 \
        libsnappy1v5 \
        libarchive13 \
        libyara10 \
        libraptor2-0 \
        libicu74 \
        libpcre2-16-0

    # OpenSSL 1.1 requires manual installation (see below)

## Dependency Table

### Direct Dependencies

Library | APT Package | Version (Ubuntu 24.04) | Purpose
--- | --- | --- | ---
`libsqlite3.so.0` | `libsqlite3-0` | 3.45.1 | Database format parsing
`libsnappy.so.1` | `libsnappy1v5` | 1.1.10 | Fast compression/decompression
`libarchive.so.13` | `libarchive13` | 3.7.2 | Archive formats (TAR, GZIP, BZIP2, XZ)
`libyara.so.10` | `libyara10` | 4.5.0 | Pattern matching / file type detection
`libraptor2.so.0` | `libraptor2-0` | 2.0.16 | RDF/metadata parsing (AFF4 format)
`libicuuc.so.74` | `libicu74` | 74.2 | Unicode support (Delphi RTL)
`libpcre2-16.so.0` | `libpcre2-16-0` | 10.42 | Regular expressions
`libcrypto.so.1.1` | See below | 1.1.1f | OpenSSL cryptography

### Indirect Dependencies (auto-installed)

These are pulled in as dependencies of the packages above:

Library | Purpose
--- | ---
`libz.so.1` | GZIP compression
`liblzma.so.5` | LZMA/XZ compression
`libbz2.so.1.0` | BZIP2 compression
`libstdc++.so.6` | C++ standard library
`libc.so.6` | C standard library (glibc)
`libxml2.so.2` | XML parsing (via libraptor2)
`libicui18n.so.74` | ICU internationalization
`libicudata.so.74` | ICU data

## OpenSSL 1.1

Ubuntu 24.04 ships with OpenSSL 3.x, but FEX Core was compiled against OpenSSL 1.1. The `libcrypto.so.1.1` library is not available in Ubuntu 24.04 repositories.

### Solution: Install from Ubuntu 20.04 Package

    wget -q http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.24_amd64.deb
    dpkg-deb -x libssl1.1_1.1.1f-1ubuntu2.24_amd64.deb /tmp/openssl11
    sudo cp /tmp/openssl11/usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 /usr/local/lib/
    sudo cp /tmp/openssl11/usr/lib/x86_64-linux-gnu/libssl.so.1.1 /usr/local/lib/
    sudo ldconfig
    rm -rf /tmp/openssl11 libssl1.1_*.deb

### Security Note

OpenSSL 1.1 is end-of-life. The bundled library is used only for forensic image decryption (E01/EWF format). A future FEX Core release will migrate to OpenSSL 3.x.

## ICU and PCRE2 Symlinks

Delphi's runtime loads ICU and PCRE2 by unversioned names. Create symlinks:

    sudo ln -sf /usr/lib/x86_64-linux-gnu/libicuuc.so.74 /usr/local/lib/libicuuc.so
    sudo ln -sf /usr/lib/x86_64-linux-gnu/libicui18n.so.74 /usr/local/lib/libicui18n.so
    sudo ln -sf /usr/lib/x86_64-linux-gnu/libicudata.so.74 /usr/local/lib/libicudata.so
    sudo ln -sf /lib/x86_64-linux-gnu/libpcre2-8.so.0 /usr/local/lib/libpcre2-8.so
    sudo ln -sf /lib/x86_64-linux-gnu/libpcre2-16.so.0 /usr/local/lib/libpcre2-16.so
    sudo ldconfig

## Locale Configuration

FEX Core requires UTF-8 locale support:

    sudo apt install locales
    sudo sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen
    sudo locale-gen

    export LANG=en_US.UTF-8
    export LC_ALL=en_US.UTF-8

## Verification

After installing all dependencies:

    # Check all libraries resolve
    ldd /usr/local/lib/libfexcore.so | grep "not found"
    # Should produce no output

    # Quick load test with Python
    python3 -c "
    import ctypes
    lib = ctypes.CDLL('/usr/local/lib/libfexcore.so')
    print('Library loaded successfully')
    print(f'InitLibrary: {lib.InitLibrary}')
    "

## Docker (Recommended for Linux)

The simplest way to run FEX Core on Linux is via Docker. Pre-built images include all dependencies:

    docker pull getdataforensics/fexcore-slim:1.3.0
    docker run --rm -v /path/to/images:/data getdataforensics/fexcore-slim:1.3.0 \
        python3 /app/fex_viewer.py /data/evidence.E01 info

See the Docker Guide for full documentation.