vcpkg/scripts/azure-pipelines/linux/provision-image.sh
Billy O'Neal 9cbab417e4
Patch Tuesday March 2024 (#37466)
This contains high priority active security things to adopt trusted
launch, and managed identity rather than SAS tokens when minting the
images, and 1ES Hosted Pools.

Some instructions are rough around the edges because I'm not sure
everything is repeatable yet while this is all in flux...
2024-03-18 13:26:24 -07:00

116 lines
3.8 KiB
Bash
Executable File

#!/bin/bash
# Copyright (c) Microsoft Corporation.
# SPDX-License-Identifier: MIT
#
export DEBIAN_FRONTEND=noninteractive
# Add apt repos
## CUDA
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/3bf863cc.pub
add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ /"
## PowerShell
wget -q https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb
dpkg -i packages-microsoft-prod.deb
rm -f packages-microsoft-prod.deb
add-apt-repository universe
apt-get -y update
apt-get -y dist-upgrade
# Add apt packages
## vcpkg prerequisites
APT_PACKAGES="git curl zip unzip tar"
## common build dependencies
APT_PACKAGES="$APT_PACKAGES at libxt-dev gperf libxaw7-dev cifs-utils \
build-essential g++ gfortran libx11-dev libxkbcommon-x11-dev libxi-dev \
libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev libxinerama-dev libxxf86vm-dev \
libxcursor-dev yasm libnuma1 libnuma-dev libtool-bin libltdl-dev \
flex bison libbison-dev autoconf libudev-dev libncurses5-dev libtool libxrandr-dev \
xutils-dev dh-autoreconf autoconf-archive libgles2-mesa-dev ruby-full \
pkg-config meson nasm cmake ninja-build"
## required by qt5-base
APT_PACKAGES="$APT_PACKAGES libxext-dev libxfixes-dev libxrender-dev \
libxcb1-dev libx11-xcb-dev libxcb-glx0-dev libxcb-util0-dev"
## required by qt5-base for qt5-x11extras
APT_PACKAGES="$APT_PACKAGES libxkbcommon-dev libxcb-keysyms1-dev \
libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev \
libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev \
libxcb-render-util0-dev libxcb-xinerama0-dev libxcb-xkb-dev libxcb-xinput-dev"
## required by xcb feature in qtbase
APT_PACKAGES="$APT_PACKAGES libxcb-cursor-dev"
## required by libhdfs3
APT_PACKAGES="$APT_PACKAGES libkrb5-dev"
## required by kf5windowsystem
APT_PACKAGES="$APT_PACKAGES libxcb-res0-dev"
## required by kf5globalaccel
APT_PACKAGES="$APT_PACKAGES libxcb-keysyms1-dev libxcb-xkb-dev libxcb-record0-dev"
## required by mesa
APT_PACKAGES="$APT_PACKAGES python3-setuptools python3-mako libxcb-dri3-dev libxcb-present-dev"
## required by some packages to install additional python packages
APT_PACKAGES="$APT_PACKAGES python3-pip python3-venv python3-jinja2"
## required by qtwebengine
APT_PACKAGES="$APT_PACKAGES nodejs"
## required by qtwayland
APT_PACKAGES="$APT_PACKAGES libwayland-dev"
## required by all GN projects
APT_PACKAGES="$APT_PACKAGES python-is-python3"
## required by libctl
APT_PACKAGES="$APT_PACKAGES guile-2.2-dev"
## required by gtk
APT_PACKAGES="$APT_PACKAGES libxdamage-dev"
## required by gtk3 and at-spi2-atk
APT_PACKAGES="$APT_PACKAGES libdbus-1-dev"
## required by at-spi2-atk
APT_PACKAGES="$APT_PACKAGES libxtst-dev"
## required by bond
APT_PACKAGES="$APT_PACKAGES haskell-stack"
## required by boringssl
APT_PACKAGES="$APT_PACKAGES golang-go"
## required by libdecor and mesa
APT_PACKAGES="$APT_PACKAGES wayland-protocols"
## required by robotraconteur
APT_PACKAGES="$APT_PACKAGES libbluetooth-dev"
## CUDA
APT_PACKAGES="$APT_PACKAGES cuda-compiler-12-1 cuda-libraries-dev-12-1 cuda-driver-dev-12-1 \
cuda-cudart-dev-12-1 libcublas-12-1 libcurand-dev-12-1 cuda-nvml-dev-12-1 libcudnn8-dev libnccl2 \
libnccl-dev"
## PowerShell
APT_PACKAGES="$APT_PACKAGES powershell"
## Additionally required/installed by Azure DevOps Scale Set Agents, skip on WSL
if [[ $(grep microsoft /proc/version) ]]; then
echo "Skipping install of ADO prerequisites on WSL."
else
APT_PACKAGES="$APT_PACKAGES libkrb5-3 zlib1g libicu70 debsums liblttng-ust1"
fi
apt-get -y --no-install-recommends install $APT_PACKAGES