Skip to content
This page was generated and translated with the assistance of AI. If you spot any inaccuracies, feel free to help improve it. Edit on GitHub

Installation

PRX-SD supports six installation methods. Choose the one that best fits your workflow.

Recommended

The install script is the fastest way to get started. It detects your platform, downloads the correct binary, and places it in your PATH.

Prerequisites

RequirementMinimumNotes
Operating SystemLinux (x86_64, aarch64), macOS (12+), Windows (WSL2)Native Windows is not supported
Disk Space200 MB~50 MB binary + ~150 MB signature database
RAM512 MB2 GB+ recommended for large directory scans
Rust (source build only)1.85.0Not needed for script or Docker install
Git (source build only)2.30+For cloning the repository
Docker (Docker only)20.10+Or Podman 3.0+

The install script downloads the latest release binary for your platform and places it in your PATH.

bash
curl -fsSL https://raw.githubusercontent.com/openprx/prx-sd/main/install.sh | bash

To install a specific version:

bash
curl -fsSL https://raw.githubusercontent.com/openprx/prx-sd/main/install.sh | bash -s -- --version v0.2.3

The script supports the following environment variables:

VariableDefaultDescription
PRX_SD_PREFIX/usr/local or ~/.localInstallation prefix directory
PRX_SD_DATA_DIR~/.prx-sdData directory for signatures and config
PRX_SD_VERSIONlatestSpecific release version

The script also supports CLI flags: --prefix DIR, --data-dir DIR, --version VER, --uninstall

Method 2: Homebrew (macOS/Linux)

If you have Homebrew installed, you can install PRX-SD from the OpenPRX tap:

bash
brew install openprx/tap/sd

Homebrew handles dependency resolution and places sd in your Homebrew prefix. Upgrades are managed with brew upgrade sd.

Method 3: Scoop (Windows)

On Windows, install via Scoop by adding the OpenPRX bucket first:

bash
scoop bucket add openprx https://github.com/openprx/scoop-bucket
scoop install sd

Method 4: Cargo Install

If you have Rust installed, you can install directly from crates.io:

bash
cargo install prx-sd

This compiles from source and places the sd binary in ~/.cargo/bin/.

Build Dependencies

Cargo install compiles native dependencies. On Debian/Ubuntu you may need:

bash
sudo apt install -y build-essential pkg-config libssl-dev

On macOS, Xcode Command Line Tools are required:

bash
xcode-select --install

Method 5: Build from Source

Clone the repository and build in release mode:

bash
git clone https://github.com/openprx/prx-sd.git
cd prx-sd
cargo build --release

The binary is located at target/release/sd. Copy it to your PATH:

bash
sudo cp target/release/sd /usr/local/bin/sd

Build Options

Feature FlagDefaultDescription
yaraenabledYARA-X rule engine
mldisabledONNX ML inference engine
guidisabledTauri + Vue 3 desktop GUI
virustotaldisabledVirusTotal API integration

To build with ML inference support:

bash
cargo build --release --features ml

To build the desktop GUI:

bash
cargo build --release --features gui

Method 6: Docker

Pull the official Docker image:

bash
docker pull ghcr.io/openprx/prx-sd:latest

Run a scan by mounting a target directory:

bash
docker run --rm -v /path/to/scan:/scan ghcr.io/openprx/prx-sd:latest scan /scan --recursive

For real-time monitoring, run as a daemon:

bash
docker run -d \
  --name prx-sd \
  --restart unless-stopped \
  -v /home:/watch/home:ro \
  -v /tmp:/watch/tmp:ro \
  ghcr.io/openprx/prx-sd:latest \
  monitor /watch/home /watch/tmp

Docker Compose

A docker-compose.yml is available in the repository root for production deployments with automatic signature updates.

Platform Notes

Linux

PRX-SD works on any modern Linux distribution. For real-time monitoring, the inotify subsystem is used. You may need to increase the watch limit for large directory trees:

bash
echo "fs.inotify.max_user_watches=524288" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Rootkit detection and memory scanning require root privileges.

PRX-SD includes several Linux-exclusive features that require root privileges:

  • Memory Scanning (sd scan-memory) — Scan running process memory via /proc/pid/mem
  • Rootkit Detection (sd check-rootkit) — Hidden process detection, kernel module verification, LD_PRELOAD checks
  • eBPF Monitoring — Kernel-level syscall tracing (requires --features ebpf build flag)
  • fanotify Blocking — Pre-execution blocking of malicious binaries (via sd config set monitor.block_mode true)

macOS

PRX-SD uses FSEvents for real-time monitoring on macOS. Both Apple Silicon (aarch64) and Intel (x86_64) are supported. The install script automatically detects your architecture.

macOS Gatekeeper

If macOS blocks the binary, remove the quarantine attribute:

bash
xattr -d com.apple.quarantine /usr/local/bin/sd

Windows (WSL2)

PRX-SD runs inside WSL2 using the Linux binary. Install WSL2 with a Linux distribution first, then follow the Linux installation steps. Native Windows support is planned for a future release.

Verify Installation

After installation, verify that sd is working:

bash
sd --version

Expected output:

prx-sd 0.2.3

Check the full system status including signature database:

bash
sd info

This displays the installed version, signature counts, YARA rule counts, and database paths.

Uninstalling

Via Install Script

bash
# Via install script (interactive - asks about data directory)
curl -fsSL https://raw.githubusercontent.com/openprx/prx-sd/main/install.sh | bash -s -- --uninstall

Via Homebrew

bash
brew uninstall sd

Via Scoop

bash
scoop uninstall sd

Via Cargo Install

bash
# Remove the binary
cargo uninstall prx-sd

# Remove signature database and configuration
rm -rf ~/.prx-sd

Docker

bash
docker stop prx-sd && docker rm prx-sd
docker rmi ghcr.io/openprx/prx-sd:latest

Next Steps

Released under the Apache-2.0 License.