|
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