Files
dora-zed/scripts/install_linux_x64.sh
T
cristhian 647be61b7b fix ONNX Runtime install layout so CMake can find it
The release tarball ships its CMake package files under lib/, but
onnxruntimeTargets.cmake resolves the library as <prefix>/lib64. Ubuntu
is multiarch, so CMake does not search lib64 for packages and ld.so does
not search /usr/local/lib64 at all, leaving find_package(onnxruntime)
failing on a stock install. Keep the libraries in lib64, move only the
package files to lib/cmake, and add lib64 to the linker path.
2026-09-07 14:33:33 -03:00

66 lines
2.8 KiB
Bash
Executable File

#!/usr/bin/env bash
# Install build dependencies for dora-zed on Ubuntu 24.04 x86_64 (CUDA 12).
# Skips any component that is already installed.
# Uses aria2c for fast parallel downloads if available, otherwise falls back to wget.
# Downloads are placed in ./tmp relative to this script for inspection.
set -euo pipefail
ZED_VERSION="5.2"
ORT_VERSION="1.24.4"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
TMP_DIR="${SCRIPT_DIR}/../tmp"
mkdir -p "$TMP_DIR"
download() {
local url="$1" dest="$2"
if command -v aria2c &>/dev/null; then
aria2c -x 16 -s 16 -d "$(dirname "$dest")" -o "$(basename "$dest")" "$url"
else
wget -O "$dest" "$url"
fi
}
# --- ZED SDK ---
if [ -d /usr/local/zed ]; then
echo ">>> ZED SDK already installed at /usr/local/zed — skipping."
else
echo ">>> Downloading ZED SDK ${ZED_VERSION} for Ubuntu 24.04 (CUDA 12)..."
download \
"https://download.stereolabs.com/zedsdk/${ZED_VERSION}/cu12/ubuntu24" \
"${TMP_DIR}/ZED_SDK.run"
chmod +x "${TMP_DIR}/ZED_SDK.run"
echo ">>> Installing ZED SDK (silent)..."
sudo "${TMP_DIR}/ZED_SDK.run" -- silent skip_python skip_tools
fi
# --- ONNX Runtime (C++ GPU, installs to /usr/local) ---
if [ -f /usr/local/lib64/libonnxruntime.so ] && [ -d /usr/local/lib/cmake/onnxruntime ]; then
echo ">>> ONNX Runtime already installed — skipping."
else
echo ">>> Downloading ONNX Runtime ${ORT_VERSION} GPU..."
download \
"https://github.com/microsoft/onnxruntime/releases/download/v${ORT_VERSION}/onnxruntime-linux-x64-gpu-${ORT_VERSION}.tgz" \
"${TMP_DIR}/onnxruntime-linux-x64-gpu-${ORT_VERSION}.tgz"
echo ">>> Extracting..."
tar -xzf "${TMP_DIR}/onnxruntime-linux-x64-gpu-${ORT_VERSION}.tgz" -C "${TMP_DIR}"
echo ">>> Installing ONNX Runtime to /usr/local..."
sudo mkdir -p /usr/local/include/onnxruntime
sudo cp -r "${TMP_DIR}/onnxruntime-linux-x64-gpu-${ORT_VERSION}/include/"* /usr/local/include/onnxruntime/
sudo mkdir -p /usr/local/lib64
sudo cp -r "${TMP_DIR}/onnxruntime-linux-x64-gpu-${ORT_VERSION}/lib/"* /usr/local/lib64/
# onnxruntimeTargets.cmake resolves the library as <prefix>/lib64, but Ubuntu
# is multiarch: CMake does not search lib64 for packages and ld.so does not
# search /usr/local/lib64 at all. Move only the package files to lib/cmake
# and put lib64 on the linker path.
sudo mkdir -p /usr/local/lib/cmake
sudo rm -rf /usr/local/lib/cmake/onnxruntime
sudo mv /usr/local/lib64/cmake/onnxruntime /usr/local/lib/cmake/
sudo rmdir /usr/local/lib64/cmake
echo /usr/local/lib64 | sudo tee /etc/ld.so.conf.d/onnxruntime.conf > /dev/null
sudo ldconfig
fi
echo ">>> Done. You can now run: mkdir -p build && cd build && cmake .. && make install"
echo ">>> Downloaded files are in ${TMP_DIR}"