|
8 | 8 | set -e |
9 | 9 | set -v |
10 | 10 |
|
11 | | -this_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" |
12 | | - |
13 | | -apt-get update && apt-get upgrade -y |
14 | | -printf "* Installing vim - git - wget\n" |
15 | | -apt-get install -y vim git wget |
| 11 | +# Make apt-get non-interactive |
| 12 | +export DEBIAN_FRONTEND=noninteractive |
| 13 | +# Pre-configure timezone data |
| 14 | +ln -fs /usr/share/zoneinfo/UTC /etc/localtime |
| 15 | +echo "UTC" > /etc/timezone |
16 | 16 |
|
17 | | -printf "* Installing glfw - glew - osmesa part 1\n" |
18 | | -apt-get install -y libglvnd0 libgl1 libglx0 libegl1 libgles2 xvfb libx11-dev libegl-dev |
| 17 | +this_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" |
19 | 18 |
|
20 | | -#printf "* Installing glfw - glew - osmesa part 2\n" |
21 | | -#apt-get install -y libglfw3 libgl1-mesa-glx libosmesa6 libglew-dev libsdl2-dev libsdl2-2.0-0 |
| 19 | +# Add NVIDIA repository for drivers |
| 20 | +apt-get update && apt-get install -y --no-install-recommends \ |
| 21 | + software-properties-common \ |
| 22 | + wget \ |
| 23 | + ca-certificates |
| 24 | + |
| 25 | +# Install basic build tools first |
| 26 | +apt-get install -y vim git wget build-essential |
| 27 | + |
| 28 | +# Install system libraries to fix version conflicts |
| 29 | +apt-get install -y --no-install-recommends \ |
| 30 | + libffi7 \ |
| 31 | + libffi-dev \ |
| 32 | + libtinfo6 \ |
| 33 | + libtinfo-dev \ |
| 34 | + libncurses5-dev \ |
| 35 | + libncursesw5-dev |
| 36 | + |
| 37 | +# Install OpenGL packages with focus on OSMesa |
| 38 | +apt-get install -y --no-install-recommends \ |
| 39 | + libosmesa6-dev \ |
| 40 | + libgl1-mesa-dev \ |
| 41 | + libgl1-mesa-glx \ |
| 42 | + libglew-dev \ |
| 43 | + libglfw3-dev \ |
| 44 | + libglvnd0 \ |
| 45 | + libgl1 \ |
| 46 | + libglx0 \ |
| 47 | + libegl1 \ |
| 48 | + libgles2 \ |
| 49 | + xvfb \ |
| 50 | + mesa-utils \ |
| 51 | + mesa-common-dev \ |
| 52 | + libglu1-mesa-dev \ |
| 53 | + libsdl2-dev \ |
| 54 | + libsdl2-2.0-0 \ |
| 55 | + pkg-config |
22 | 56 |
|
23 | 57 | if [ "${CU_VERSION:-}" == cpu ] ; then |
24 | | - # solves version `GLIBCXX_3.4.29' not found for tensorboard |
25 | | -# apt-get install -y gcc-4.9 |
26 | 58 | apt-get upgrade -y libstdc++6 |
27 | 59 | apt-get dist-upgrade -y |
28 | 60 | else |
29 | 61 | apt-get install -y g++ gcc |
30 | 62 | fi |
31 | 63 |
|
| 64 | +# Remove conflicting libraries from conda environment if they exist |
| 65 | +rm -f "${env_dir}/lib/libtinfo.so"* || true |
| 66 | +rm -f "${env_dir}/lib/libffi.so"* || true |
| 67 | + |
32 | 68 | git config --global --add safe.directory '*' |
33 | 69 | root_dir="$(git rev-parse --show-toplevel)" |
34 | 70 | conda_dir="${root_dir}/conda" |
@@ -93,19 +129,20 @@ printf "* Installing dependencies (except PyTorch)\n" |
93 | 129 | echo " - python=${PYTHON_VERSION}" >> "${this_dir}/environment.yml" |
94 | 130 | cat "${this_dir}/environment.yml" |
95 | 131 |
|
96 | | -export MUJOCO_GL=egl |
| 132 | +# Use OSMesa for rendering |
| 133 | +export MUJOCO_GL=osmesa |
97 | 134 | conda env config vars set \ |
98 | 135 | MAX_IDLE_COUNT=1000 \ |
99 | | - MUJOCO_GL=egl \ |
| 136 | + MUJOCO_GL=osmesa \ |
100 | 137 | SDL_VIDEODRIVER=dummy \ |
101 | | - DISPLAY=unix:0.0 \ |
102 | | - PYOPENGL_PLATFORM=egl \ |
103 | | - LD_PRELOAD=$glew_path \ |
104 | | - NVIDIA_PATH=/usr/src/nvidia-470.63.01 \ |
| 138 | + DISPLAY=:99 \ |
| 139 | + PYOPENGL_PLATFORM=osmesa \ |
| 140 | + LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libOSMesa.so.6:/usr/lib/x86_64-linux-gnu/libGL.so \ |
105 | 141 | MUJOCO_PY_MJKEY_PATH=${root_dir}/mujoco-py/mujoco_py/binaries/mjkey.txt \ |
106 | 142 | MUJOCO_PY_MUJOCO_PATH=${root_dir}/mujoco-py/mujoco_py/binaries/linux/mujoco210 \ |
107 | | - LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/circleci/project/mujoco-py/mujoco_py/binaries/linux/mujoco210/bin \ |
108 | | - TOKENIZERS_PARALLELISM=true |
| 143 | + LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH:/home/circleci/project/mujoco-py/mujoco_py/binaries/linux/mujoco210/bin \ |
| 144 | + TOKENIZERS_PARALLELISM=true \ |
| 145 | + PYGLET_GRAPHICS=opengl3 |
109 | 146 |
|
110 | 147 | # make env variables apparent |
111 | 148 | conda deactivate && conda activate "${env_dir}" |
|
0 commit comments