Dependencies Installation

Note

Recommended Approach: Use HEAR-CLI for automated installation (see Quick Start Guide). The manual instructions below are provided for reference and custom setups.

System Requirements

Operating System
  • Ubuntu 20.04 LTS or newer

  • Debian 11 or newer

  • Other Linux distributions (may require package name adjustments)

Hardware Requirements
  • Minimum 2GB RAM (4GB recommended for development)

  • 8GB available disk space

  • Internet connection for downloading dependencies

Architecture Support
  • x86_64 (Intel/AMD)

  • aarch64 (ARM64 - Raspberry Pi 4, NVIDIA Orin)

Python 3.11 Installation

Python 3.11 is installed via Miniforge to avoid conflicts with system Python:

Install Dependencies

sudo apt-get update
sudo apt-get install -y ca-certificates curl bzip2 wget

Download and Install Miniforge

# Detect architecture automatically
ARCH="$(uname -m)"
case "${ARCH}" in
    x86_64|amd64) MINIFORGE_ARCH="x86_64" ;;
    aarch64|arm64) MINIFORGE_ARCH="aarch64" ;;
esac

# Download installer
INSTALLER="Miniforge3-Linux-${MINIFORGE_ARCH}.sh"
curl -L "https://github.com/conda-forge/miniforge/releases/latest/download/${INSTALLER}" -o "${INSTALLER}"
chmod +x "${INSTALLER}"

# Install Miniforge
bash "${INSTALLER}" -b -p "${HOME}/miniforge3"

Create Python 3.11 Environment

# Update conda
~/miniforge3/bin/conda update -y -n base conda

# Create Python 3.11 environment
~/miniforge3/bin/conda create -y -n py311 python=3.11

# Create system-wide symlinks
sudo ln -sf "${HOME}/miniforge3/envs/py311/bin/python3.11" /usr/local/bin/python3.11
sudo ln -sf "${HOME}/miniforge3/envs/py311/bin/pip3.11" /usr/local/bin/pip3.11

Add to PATH

echo 'export PATH="$HOME/miniforge3/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

# Disable auto-activation of base environment
conda config --set auto_activate_base false

Verify Installation

python3.11 --version
# Should output: Python 3.11.x

PDM Installation

PDM (Python Development Master) is used for dependency management:

Install PDM

# Ensure Python 3.11 venv module is available
python3.11 -m venv --help

# Install PDM
curl -sSL https://pdm-project.org/install-pdm.py | python3.11 -

Configure PDM

# Add PDM to PATH
export PATH="$HOME/.local/bin:$PATH"
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc

# Configure PDM to allow pip within virtual environments
pdm config venv.with_pip True

Verify Installation

pdm --version
# Should output PDM version

Redis Installation and Configuration

Redis 7.2+ is required with UNIX socket support:

Add Redis Official Repository

# Install dependencies
sudo apt-get update
sudo apt-get install -y lsb-release curl gpg apt-transport-https ca-certificates gnupg

# Add Redis signing key
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
sudo chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg

# Add Redis repository
DISTRO="$(lsb_release -cs)"
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $DISTRO main" | \
    sudo tee /etc/apt/sources.list.d/redis.list

Install Redis

sudo apt-get update
sudo apt-get install -y redis

Configure Redis for UNIX Socket

# Backup original configuration
sudo cp /etc/redis/redis.conf /etc/redis/redis.conf.bak

# Enable UNIX socket
sudo sed -i 's|^# *unixsocket .*|unixsocket /var/run/redis/redis-server.sock|' /etc/redis/redis.conf
sudo sed -i 's|^# *unixsocketperm .*|unixsocketperm 777|' /etc/redis/redis.conf
sudo sed -i 's|^.*daemonize.*|daemonize no|' /etc/redis/redis.conf
sudo sed -i 's|^.*supervised.*|supervised systemd|' /etc/redis/redis.conf

# Restart and enable Redis
sudo systemctl daemon-reload
sudo systemctl restart redis-server
sudo systemctl enable redis-server

# Set socket permissions
sudo chmod 777 /var/run/redis/redis-server.sock

Verify Redis Installation

# Check version
redis-server --version

# Test connection
redis-cli -s /var/run/redis/redis-server.sock ping
# Should output: PONG

Redis Development Tools

Optional C++ development tools for Redis integration:

Install Development Libraries

sudo apt-get install -y libhiredis-dev cmake build-essential

Install redis-plus-plus (C++ Client)

# Create temporary directory
mkdir -p ~/.tmp/redis-build
cd ~/.tmp/redis-build

# Clone and build redis-plus-plus
git clone https://github.com/sewenew/redis-plus-plus.git
cd redis-plus-plus
mkdir build && cd build
cmake ..
make
sudo make install

# Cleanup
cd ~ && rm -rf ~/.tmp/redis-build

Controller Dashboard

Optional web-based controller dashboard:

hear-cli local_machine run_program --p controller_dashboard_prepare

Note

The controller dashboard requires HEAR-CLI to be installed and configured.