Add openpilot tools
This commit is contained in:
135
tools/install_ubuntu_dependencies.sh
Normal file
135
tools/install_ubuntu_dependencies.sh
Normal file
@@ -0,0 +1,135 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
SUDO=""
|
||||
|
||||
# Use sudo if not root
|
||||
if [[ ! $(id -u) -eq 0 ]]; then
|
||||
if [[ -z $(which sudo) ]]; then
|
||||
echo "Please install sudo or run as root"
|
||||
exit 1
|
||||
fi
|
||||
SUDO="sudo"
|
||||
fi
|
||||
|
||||
# Install packages present in all supported versions of Ubuntu
|
||||
function install_ubuntu_common_requirements() {
|
||||
$SUDO apt-get update
|
||||
$SUDO apt-get install -y --no-install-recommends \
|
||||
autoconf \
|
||||
build-essential \
|
||||
ca-certificates \
|
||||
casync \
|
||||
clang \
|
||||
cmake \
|
||||
make \
|
||||
cppcheck \
|
||||
libtool \
|
||||
gcc-arm-none-eabi \
|
||||
bzip2 \
|
||||
liblzma-dev \
|
||||
libarchive-dev \
|
||||
libbz2-dev \
|
||||
capnproto \
|
||||
libcapnp-dev \
|
||||
curl \
|
||||
libcurl4-openssl-dev \
|
||||
git \
|
||||
git-lfs \
|
||||
ffmpeg \
|
||||
libavformat-dev \
|
||||
libavcodec-dev \
|
||||
libavdevice-dev \
|
||||
libavutil-dev \
|
||||
libavfilter-dev \
|
||||
libeigen3-dev \
|
||||
libffi-dev \
|
||||
libglew-dev \
|
||||
libgles2-mesa-dev \
|
||||
libglfw3-dev \
|
||||
libglib2.0-0 \
|
||||
libncurses5-dev \
|
||||
libncursesw5-dev \
|
||||
libomp-dev \
|
||||
libopencv-dev \
|
||||
libpng16-16 \
|
||||
libportaudio2 \
|
||||
libssl-dev \
|
||||
libsqlite3-dev \
|
||||
libusb-1.0-0-dev \
|
||||
libzmq3-dev \
|
||||
libsystemd-dev \
|
||||
locales \
|
||||
opencl-headers \
|
||||
ocl-icd-libopencl1 \
|
||||
ocl-icd-opencl-dev \
|
||||
clinfo \
|
||||
portaudio19-dev \
|
||||
qml-module-qtquick2 \
|
||||
qtmultimedia5-dev \
|
||||
qtlocation5-dev \
|
||||
qtpositioning5-dev \
|
||||
qttools5-dev-tools \
|
||||
libqt5sql5-sqlite \
|
||||
libqt5svg5-dev \
|
||||
libqt5charts5-dev \
|
||||
libqt5serialbus5-dev \
|
||||
libqt5x11extras5-dev \
|
||||
libreadline-dev \
|
||||
libdw1 \
|
||||
valgrind
|
||||
}
|
||||
|
||||
# Install Ubuntu 22.04 LTS packages
|
||||
function install_ubuntu_lts_latest_requirements() {
|
||||
install_ubuntu_common_requirements
|
||||
|
||||
$SUDO apt-get install -y --no-install-recommends \
|
||||
g++-12 \
|
||||
qtbase5-dev \
|
||||
qtchooser \
|
||||
qt5-qmake \
|
||||
qtbase5-dev-tools \
|
||||
python3-dev
|
||||
}
|
||||
|
||||
# Install Ubuntu 20.04 packages
|
||||
function install_ubuntu_focal_requirements() {
|
||||
install_ubuntu_common_requirements
|
||||
|
||||
$SUDO apt-get install -y --no-install-recommends \
|
||||
libavresample-dev \
|
||||
qt5-default \
|
||||
python-dev
|
||||
}
|
||||
|
||||
# Detect OS using /etc/os-release file
|
||||
if [ -f "/etc/os-release" ]; then
|
||||
source /etc/os-release
|
||||
case "$VERSION_CODENAME" in
|
||||
"jammy")
|
||||
install_ubuntu_lts_latest_requirements
|
||||
;;
|
||||
"kinetic")
|
||||
install_ubuntu_lts_latest_requirements
|
||||
;;
|
||||
"focal")
|
||||
install_ubuntu_focal_requirements
|
||||
;;
|
||||
*)
|
||||
echo "$ID $VERSION_ID is unsupported. This setup script is written for Ubuntu 20.04."
|
||||
read -p "Would you like to attempt installation anyway? " -n 1 -r
|
||||
echo ""
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||||
exit 1
|
||||
fi
|
||||
if [ "$UBUNTU_CODENAME" = "jammy" ] || [ "$UBUNTU_CODENAME" = "kinetic" ]; then
|
||||
install_ubuntu_lts_latest_requirements
|
||||
else
|
||||
install_ubuntu_focal_requirements
|
||||
fi
|
||||
esac
|
||||
else
|
||||
echo "No /etc/os-release in the system"
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user