There are a number of open questions with regards to the best way to use system level dependencies. Specifically we need to decide how to handle Mujoco.
There are two sides to the issue: (1) how do we deal with it from a development perspective, and (2) how do we interface with it once Obelisk is installed.
In both cases the we must have the following installed:
Mujoco
GLFW (sudo apt-get install mesa-common-dev)
I think it is very reasonable to expect that the user (or dev) have Mujoco installed on their local machine. The next question is: should we install it for them, or should they install it? "Installing" Mujoco is very easy in the sense that you can download the pre-compiled binaries, and put them anywhere.
Once Mujoco is installed, we need to know where it is so we can link against it. On the dev side, in addition to this, we need to be able to volume mount Mujoco into the container. There are two ways to do this: (1) we can just set a standard where everyone installs Mujoco in a set location (i.e. ~/mujoco/mujoco-x.y.z), or we can somehow set a MUJOCO_DIR environment variable and use that.
Installing GLFW is a simple single command.
When in the dev container we currently get an error (that doesn't seem to effect the visuals...) : error: XDG_RUNTIME_DIR is invalid or not set in the environment. This can be solved with the command XDG_RUNTIME_DIR=/run/user/<uid> and should most likely be added to the Dockerfile.
Other system level deps (not related to Mujoco) that need to be installed:
libyaml (sudo apt-get install libyaml-dev)
TODOs:
[x] Deal with missing yaml library (currently solved with sudo apt-get install libyaml-dev)
[x] Handle the GLFW install (sudo apt-get install mesa-common-dev)
[x] Decide how to include Mujoco into the dev container (right now, I propose volume mounting)
[x] The following error relating to Mujoco: error: XDG_RUNTIME_DIR is invalid or not set in the environment.
[x] Decide how we want the end user to install Mujoco and how to point our libraries at Mujoco.
There are a number of open questions with regards to the best way to use system level dependencies. Specifically we need to decide how to handle Mujoco.
There are two sides to the issue: (1) how do we deal with it from a development perspective, and (2) how do we interface with it once Obelisk is installed.
In both cases the we must have the following installed:
sudo apt-get install mesa-common-dev
)I think it is very reasonable to expect that the user (or dev) have Mujoco installed on their local machine. The next question is: should we install it for them, or should they install it? "Installing" Mujoco is very easy in the sense that you can download the pre-compiled binaries, and put them anywhere.
Once Mujoco is installed, we need to know where it is so we can link against it. On the dev side, in addition to this, we need to be able to volume mount Mujoco into the container. There are two ways to do this: (1) we can just set a standard where everyone installs Mujoco in a set location (i.e.
~/mujoco/mujoco-x.y.z
), or we can somehow set aMUJOCO_DIR
environment variable and use that.Installing GLFW is a simple single command.
When in the dev container we currently get an error (that doesn't seem to effect the visuals...) :
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
This can be solved with the commandXDG_RUNTIME_DIR=/run/user/<uid>
and should most likely be added to the Dockerfile.Other system level deps (not related to Mujoco) that need to be installed:
sudo apt-get install libyaml-dev
)TODOs:
sudo apt-get install libyaml-dev
)sudo apt-get install mesa-common-dev
)error: XDG_RUNTIME_DIR is invalid or not set in the environment.