Skip to content

Commit 73fd6d1

Browse files
gregjhoganpull[bot]
authored andcommitted
script to install only ubuntu dependencies (commaai#29510)
* script to install only ubuntu dependencies * update Dockerfile * add shebang
1 parent bd59850 commit 73fd6d1

File tree

3 files changed

+136
-134
lines changed

3 files changed

+136
-134
lines changed

Dockerfile.openpilot_base

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ ENV PYENV_ROOT="/root/.pyenv"
1818
ENV PATH="$PYENV_ROOT/bin:$PYENV_ROOT/shims:$PATH"
1919

2020
COPY pyproject.toml poetry.lock .python-version /tmp/
21-
COPY tools/ubuntu_setup.sh tools/install_python_dependencies.sh /tmp/tools/
21+
COPY tools/ubuntu_setup.sh tools/install_ubuntu_dependencies.sh tools/install_python_dependencies.sh /tmp/tools/
2222
RUN cd /tmp && \
2323
tools/ubuntu_setup.sh && \
2424
rm -rf /var/lib/apt/lists/* && \

tools/install_ubuntu_dependencies.sh

+134
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
#!/usr/bin/env bash
2+
set -e
3+
4+
SUDO=""
5+
6+
# Use sudo if not root
7+
if [[ ! $(id -u) -eq 0 ]]; then
8+
if [[ -z $(which sudo) ]]; then
9+
echo "Please install sudo or run as root"
10+
exit 1
11+
fi
12+
SUDO="sudo"
13+
fi
14+
15+
# Install packages present in all supported versions of Ubuntu
16+
function install_ubuntu_common_requirements() {
17+
$SUDO apt-get update
18+
$SUDO apt-get install -y --no-install-recommends \
19+
autoconf \
20+
build-essential \
21+
ca-certificates \
22+
casync \
23+
clang \
24+
cmake \
25+
make \
26+
cppcheck \
27+
libtool \
28+
gcc-arm-none-eabi \
29+
bzip2 \
30+
liblzma-dev \
31+
libarchive-dev \
32+
libbz2-dev \
33+
capnproto \
34+
libcapnp-dev \
35+
curl \
36+
libcurl4-openssl-dev \
37+
git \
38+
git-lfs \
39+
ffmpeg \
40+
libavformat-dev \
41+
libavcodec-dev \
42+
libavdevice-dev \
43+
libavutil-dev \
44+
libavfilter-dev \
45+
libeigen3-dev \
46+
libffi-dev \
47+
libglew-dev \
48+
libgles2-mesa-dev \
49+
libglfw3-dev \
50+
libglib2.0-0 \
51+
libncurses5-dev \
52+
libncursesw5-dev \
53+
libomp-dev \
54+
libopencv-dev \
55+
libpng16-16 \
56+
libportaudio2 \
57+
libssl-dev \
58+
libsqlite3-dev \
59+
libusb-1.0-0-dev \
60+
libzmq3-dev \
61+
libsystemd-dev \
62+
locales \
63+
opencl-headers \
64+
ocl-icd-libopencl1 \
65+
ocl-icd-opencl-dev \
66+
clinfo \
67+
portaudio19-dev \
68+
qml-module-qtquick2 \
69+
qtmultimedia5-dev \
70+
qtlocation5-dev \
71+
qtpositioning5-dev \
72+
qttools5-dev-tools \
73+
libqt5sql5-sqlite \
74+
libqt5svg5-dev \
75+
libqt5charts5-dev \
76+
libqt5x11extras5-dev \
77+
libreadline-dev \
78+
libdw1 \
79+
valgrind
80+
}
81+
82+
# Install Ubuntu 22.04 LTS packages
83+
function install_ubuntu_lts_latest_requirements() {
84+
install_ubuntu_common_requirements
85+
86+
$SUDO apt-get install -y --no-install-recommends \
87+
g++-12 \
88+
qtbase5-dev \
89+
qtchooser \
90+
qt5-qmake \
91+
qtbase5-dev-tools \
92+
python3-dev
93+
}
94+
95+
# Install Ubuntu 20.04 packages
96+
function install_ubuntu_focal_requirements() {
97+
install_ubuntu_common_requirements
98+
99+
$SUDO apt-get install -y --no-install-recommends \
100+
libavresample-dev \
101+
qt5-default \
102+
python-dev
103+
}
104+
105+
# Detect OS using /etc/os-release file
106+
if [ -f "/etc/os-release" ]; then
107+
source /etc/os-release
108+
case "$VERSION_CODENAME" in
109+
"jammy")
110+
install_ubuntu_lts_latest_requirements
111+
;;
112+
"kinetic")
113+
install_ubuntu_lts_latest_requirements
114+
;;
115+
"focal")
116+
install_ubuntu_focal_requirements
117+
;;
118+
*)
119+
echo "$ID $VERSION_ID is unsupported. This setup script is written for Ubuntu 20.04."
120+
read -p "Would you like to attempt installation anyway? " -n 1 -r
121+
echo ""
122+
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
123+
exit 1
124+
fi
125+
if [ "$UBUNTU_CODENAME" = "jammy" ] || [ "$UBUNTU_CODENAME" = "kinetic" ]; then
126+
install_ubuntu_lts_latest_requirements
127+
else
128+
install_ubuntu_focal_requirements
129+
fi
130+
esac
131+
else
132+
echo "No /etc/os-release in the system"
133+
exit 1
134+
fi

tools/ubuntu_setup.sh

+1-133
Original file line numberDiff line numberDiff line change
@@ -3,142 +3,10 @@
33
set -e
44

55
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
6-
ROOT="$(cd $DIR/../ && pwd)"
7-
SUDO=""
86

97
# NOTE: this is used in a docker build, so do not run any scripts here.
108

11-
# Use sudo if not root
12-
if [[ ! $(id -u) -eq 0 ]]; then
13-
if [[ -z $(which sudo) ]]; then
14-
echo "Please install sudo or run as root"
15-
exit 1
16-
fi
17-
SUDO="sudo"
18-
fi
19-
20-
# Install packages present in all supported versions of Ubuntu
21-
function install_ubuntu_common_requirements() {
22-
$SUDO apt-get update
23-
$SUDO apt-get install -y --no-install-recommends \
24-
autoconf \
25-
build-essential \
26-
ca-certificates \
27-
casync \
28-
clang \
29-
cmake \
30-
make \
31-
cppcheck \
32-
libtool \
33-
gcc-arm-none-eabi \
34-
bzip2 \
35-
liblzma-dev \
36-
libarchive-dev \
37-
libbz2-dev \
38-
capnproto \
39-
libcapnp-dev \
40-
curl \
41-
libcurl4-openssl-dev \
42-
git \
43-
git-lfs \
44-
ffmpeg \
45-
libavformat-dev \
46-
libavcodec-dev \
47-
libavdevice-dev \
48-
libavutil-dev \
49-
libavfilter-dev \
50-
libeigen3-dev \
51-
libffi-dev \
52-
libglew-dev \
53-
libgles2-mesa-dev \
54-
libglfw3-dev \
55-
libglib2.0-0 \
56-
libncurses5-dev \
57-
libncursesw5-dev \
58-
libomp-dev \
59-
libopencv-dev \
60-
libpng16-16 \
61-
libportaudio2 \
62-
libssl-dev \
63-
libsqlite3-dev \
64-
libusb-1.0-0-dev \
65-
libzmq3-dev \
66-
libsystemd-dev \
67-
locales \
68-
opencl-headers \
69-
ocl-icd-libopencl1 \
70-
ocl-icd-opencl-dev \
71-
clinfo \
72-
portaudio19-dev \
73-
qml-module-qtquick2 \
74-
qtmultimedia5-dev \
75-
qtlocation5-dev \
76-
qtpositioning5-dev \
77-
qttools5-dev-tools \
78-
libqt5sql5-sqlite \
79-
libqt5svg5-dev \
80-
libqt5charts5-dev \
81-
libqt5x11extras5-dev \
82-
libreadline-dev \
83-
libdw1 \
84-
valgrind
85-
}
86-
87-
# Install Ubuntu 22.04 LTS packages
88-
function install_ubuntu_lts_latest_requirements() {
89-
install_ubuntu_common_requirements
90-
91-
$SUDO apt-get install -y --no-install-recommends \
92-
g++-12 \
93-
qtbase5-dev \
94-
qtchooser \
95-
qt5-qmake \
96-
qtbase5-dev-tools \
97-
python3-dev
98-
}
99-
100-
# Install Ubuntu 20.04 packages
101-
function install_ubuntu_focal_requirements() {
102-
install_ubuntu_common_requirements
103-
104-
$SUDO apt-get install -y --no-install-recommends \
105-
libavresample-dev \
106-
qt5-default \
107-
python-dev
108-
}
109-
110-
# Detect OS using /etc/os-release file
111-
if [ -f "/etc/os-release" ]; then
112-
source /etc/os-release
113-
case "$VERSION_CODENAME" in
114-
"jammy")
115-
install_ubuntu_lts_latest_requirements
116-
;;
117-
"kinetic")
118-
install_ubuntu_lts_latest_requirements
119-
;;
120-
"focal")
121-
install_ubuntu_focal_requirements
122-
;;
123-
*)
124-
echo "$ID $VERSION_ID is unsupported. This setup script is written for Ubuntu 20.04."
125-
read -p "Would you like to attempt installation anyway? " -n 1 -r
126-
echo ""
127-
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
128-
exit 1
129-
fi
130-
if [ "$UBUNTU_CODENAME" = "jammy" ] || [ "$UBUNTU_CODENAME" = "kinetic" ]; then
131-
install_ubuntu_lts_latest_requirements
132-
else
133-
install_ubuntu_focal_requirements
134-
fi
135-
esac
136-
else
137-
echo "No /etc/os-release in the system"
138-
exit 1
139-
fi
140-
141-
# python setup
9+
$DIR/install_ubuntu_dependencies.sh
14210
$DIR/install_python_dependencies.sh
14311

14412
echo

0 commit comments

Comments
 (0)