# glibcrun `glibcrun` is utility for launching glibc linked binaries in isolated namespaces in musl-libc Void Linux installations. It creates new private mount namespace for the running process, "replacing" `/usr` and `/var/db/xbps` with directories from your glibc basedir using bind mounts, and launches your glibc program. ## Creating glibc chroot I will use `/glibc` directory name for an example, you can use any other path you want. ``` # mkdir /glibc # XBPS_ARCH=x86_64 xbps-install --repository=http://alpha.de.repo.voidlinux.org/current -r /glibc -S base-voidstrap ``` When it's done you may want to chroot into it, e.g. to install some dependencies for your glibc software. ## Installing glibcrun Just clone the repo, and then: ``` $ make $ sudo make install ``` Note that installed binary must be owned as root and have suid bit. `make install` should handle it, but anyway. ## Usage `glibcrun` needs to know the path to your glibc base directory and it reads it from the `GLIBCRUN_DIR` environment variable. You may want to add something like this to your `~/.bashrc` or similar script: ``` export GLIBCRUN_DIR=/glibc ``` When `glibcrun` is run without arguments it will attempt to launch a shell from your `SHELL` variable, otherwise it will treat the first argument as a path to an executable and the rest as a list of arguments. Example: ``` glibcrun /opt/palemoon/palemoon -ProfileManager ``` will launch `/opt/palemoon/palemoon -ProfileManager`. ## License BSD-2c