Files
Jetson/scripts/install_deps.sh
T
AngePierreandClaude Opus 5 d9b32cd148 install_deps: tolerate a broken apt source (update best-effort)
A fresh Orin image carried a stale third-party apt source that made apt-get
update fail; with set -e that aborted the install. The packages come from the
main Ubuntu repos, so update is now best-effort and install proceeds.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-10 17:01:28 +02:00

39 lines
1.7 KiB
Bash
Executable File

#!/usr/bin/env bash
# Installs the build- and run-time packages the node needs. Idempotent: apt is a
# no-op for what is already there.
#
# The set is the same across Jetson generations — only the distro release behind
# it changes (18.04 -> 22.04), and apt resolves the right versions itself. No
# GStreamer: the direct preview route encodes no video.
set -euo pipefail
here=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
eval "$("$here/detect_platform.sh")"
echo ">> Dependances pour JetPack ${JETPACK} (L4T ${L4T}, ${SOC})"
# python3 is present on every JetPack image; websockets is the only bridge dep and
# is pure Python, so it works identically everywhere. Prefer apt's package, fall
# back to pip when the distro is too old to carry it.
# Best-effort: a broken third-party source (a stale packagecloud/VS Code repo has
# been seen on a fresh Orin image) must not abort the whole install — the packages
# below come from the main Ubuntu repos, which update fine on their own.
sudo apt-get update -qq || true
sudo apt-get install -y --no-install-recommends \
build-essential cmake pkg-config git \
libusb-1.0-0-dev libudev-dev liblz4-dev libjpeg-turbo8-dev \
libopencv-dev \
python3 python3-pip
# libopencv-dev: the MKV recorder links OpenCV (image handling). liblz4/libjpeg:
# the preview server. libusb/libudev: the SDK and the K4A wrapper.
if ! python3 -c 'import websockets' 2>/dev/null; then
echo ">> websockets absent — installation via pip"
# 8.1 is what the Nano runs and what bridge.py was written against; anything
# >=8 keeps the same asyncio API surface the bridge uses.
python3 -m pip install --user "websockets>=8,<13" || \
sudo apt-get install -y python3-websockets
fi
echo ">> Dependances OK"