github.com/containers/libpod@v1.9.4-0.20220419124438-4284fd425507/contrib/cirrus/packer/ubuntu_setup.sh (about) 1 #!/bin/bash 2 3 # This script is called by packer on the subject Ubuntu VM, to setup the podman 4 # build/test environment. It's not intended to be used outside of this context. 5 6 set -e 7 8 # Load in library (copied by packer, before this script was run) 9 source $GOSRC/$SCRIPT_BASE/lib.sh 10 11 req_env_var SCRIPT_BASE 12 13 install_ooe 14 15 export GOPATH="$(mktemp -d)" 16 trap "sudo rm -rf $GOPATH" EXIT 17 18 # Stop disruption upon boot ASAP after booting 19 echo "Disabling all packaging activity on boot" 20 # Don't let sed process sed's temporary files 21 _FILEPATHS=$(sudo ls -1 /etc/apt/apt.conf.d) 22 for filename in $_FILEPATHS; do \ 23 echo "Checking/Patching $filename" 24 sudo sed -i -r -e "s/$PERIODIC_APT_RE/"'\10"\;/' "/etc/apt/apt.conf.d/$filename"; done 25 26 echo "Updating/configuring package repositories." 27 $BIGTO $SUDOAPTGET update 28 29 echo "Upgrading all packages" 30 $BIGTO $SUDOAPTGET upgrade 31 32 echo "Adding third-party repositories and PPAs" 33 $LILTO $SUDOAPTGET install software-properties-common 34 $LILTO $SUDOAPTADD ppa:criu/ppa 35 if [[ "$OS_RELEASE_VER" -eq "18" ]] 36 then 37 $LILTO $SUDOAPTADD ppa:longsleep/golang-backports 38 fi 39 40 echo "Configuring/Instaling deps from Open build server" 41 VERSION_ID=$(source /etc/os-release; echo $VERSION_ID) 42 echo "deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_$VERSION_ID/ /" \ 43 | ooe.sh sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list 44 ooe.sh curl -L -o /tmp/Release.key "https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/xUbuntu_${VERSION_ID}/Release.key" 45 ooe.sh sudo apt-key add - < /tmp/Release.key 46 47 INSTALL_PACKAGES=(\ 48 apparmor 49 aufs-tools 50 autoconf 51 automake 52 bash-completion 53 bison 54 build-essential 55 bzip2 56 conmon 57 containernetworking-plugins 58 containers-common 59 coreutils 60 cri-o-runc 61 criu 62 curl 63 dnsmasq 64 e2fslibs-dev 65 emacs-nox 66 file 67 gawk 68 gcc 69 gettext 70 git 71 go-md2man 72 golang 73 iproute2 74 iptables 75 jq 76 libaio-dev 77 libapparmor-dev 78 libcap-dev 79 libdevmapper-dev 80 libdevmapper1.02.1 81 libfuse-dev 82 libfuse2 83 libglib2.0-dev 84 libgpgme11-dev 85 liblzma-dev 86 libnet1 87 libnet1-dev 88 libnl-3-dev 89 libprotobuf-c-dev 90 libprotobuf-dev 91 libseccomp-dev 92 libseccomp2 93 libselinux-dev 94 libsystemd-dev 95 libtool 96 libudev-dev 97 libvarlink 98 lsof 99 make 100 netcat 101 openssl 102 pkg-config 103 podman 104 protobuf-c-compiler 105 protobuf-compiler 106 python-future 107 python-minimal 108 python-protobuf 109 python3-dateutil 110 python3-pip 111 python3-psutil 112 python3-pytoml 113 python3-setuptools 114 rsync 115 runc 116 scons 117 skopeo 118 slirp4netns 119 socat 120 unzip 121 vim 122 wget 123 xz-utils 124 yum-utils 125 zip 126 zlib1g-dev 127 ) 128 129 if [[ "$OS_RELEASE_VER" -ge "19" ]] 130 then 131 INSTALL_PACKAGES+=(\ 132 bats 133 btrfs-progs 134 fuse3 135 libbtrfs-dev 136 libfuse3-dev 137 ) 138 else 139 echo "Downloading version of bats with fix for a \$IFS related bug in 'run' command" 140 cd /tmp 141 BATS_URL='http://launchpadlibrarian.net/438140887/bats_1.1.0+git104-g1c83a1b-1_all.deb' 142 curl -L -O "$BATS_URL" 143 cd - 144 INSTALL_PACKAGES+=(\ 145 /tmp/$(basename $BATS_URL) 146 btrfs-tools 147 ) 148 149 echo "Forced Ubuntu 18 kernel to enable cgroup swap accounting." 150 SEDCMD='s/^GRUB_CMDLINE_LINUX="(.*)"/GRUB_CMDLINE_LINUX="\1 cgroup_enable=memory swapaccount=1"/g' 151 ooe.sh sudo sed -re "$SEDCMD" -i /etc/default/grub.d/* 152 ooe.sh sudo sed -re "$SEDCMD" -i /etc/default/grub 153 ooe.sh sudo update-grub 154 fi 155 156 echo "Installing general testing and system dependencies" 157 # Necessary to update cache of newly added repos 158 $LILTO $SUDOAPTGET update 159 $BIGTO $SUDOAPTGET install ${INSTALL_PACKAGES[@]} 160 161 install_buildah_packages 162 163 echo "Installing cataonit and libseccomp.sudo" 164 ooe.sh sudo /tmp/libpod/hack/install_catatonit.sh 165 ooe.sh sudo make -C /tmp/libpod install.libseccomp.sudo 166 167 # Ensure there are no disruptive periodic services enabled by default in image 168 systemd_banish 169 170 CRIO_RUNC_PATH="/usr/lib/cri-o-runc/sbin/runc" 171 if sudo dpkg -L cri-o-runc | grep -m 1 -q "$CRIO_RUNC_PATH" 172 then 173 echo "Linking $CRIO_RUNC_PATH to /usr/bin/runc for ease of testing." 174 sudo ln -f "$CRIO_RUNC_PATH" "/usr/bin/runc" 175 fi 176 177 ubuntu_finalize 178 179 echo "SUCCESS!"