Skip to content

Environment Variables ​

Reference for all environment variables onelf reads or sets.

Set by the runtime (visible to the packed app) ​

VariableValue
ONELF_DIRAbsolute path to the package root (FUSE mount, tmpfs, runtime directory, or cache dir). Empty string in memfd mode.
ONELF_ACTIVE_MODEmemfd, fuse, tmpfs, rundir, cache, or dev (set by onelf run)
ONELF_INTERPSet only when the host's glibc is newer than the bundled one: the host loader every bootstrapped binary in the process tree runs under
ONELF_ARGV0Original argv[0] before multicall resolution
ONELF_EXECAbsolute path to the packed binary
ONELF_ENTRYPOINTResolved entrypoint name
ONELF_LAUNCH_DIROriginal cwd at launch time

Library and GPU paths (auto-set if applicable) ​

VariableSet whenPoints to
LD_LIBRARY_PATHlib/ contains .so filesthe resolver's link farm of chosen host libraries, then <pkg>/lib on explicit linker invocations
LIBGL_DRIVERS_PATHlib/dri/ exists<pkg>/lib/dri
LIBVA_DRIVERS_PATHlib/dri/ exists<pkg>/lib/dri
GBM_BACKENDS_PATHlib/gbm/ exists<pkg>/lib/gbm
__EGL_VENDOR_LIBRARY_DIRSshare/glvnd/egl_vendor.d/ exists or host has onemerged list of dirs
VK_DRIVER_FILESshare/vulkan/icd.d/ has ICD JSONscolon-joined list
LIBDRM_IDS_PATHshare/libdrm/ existsthat dir
LIBDECOR_PLUGIN_DIRshare/libdecor/plugins-1/ existsthat dir
DRIRC_CONFIGDIRshare/drirc.d/ existsthat dir
XKB_CONFIG_ROOTshare/X11/xkb/ existsthat dir
XDG_DATA_DIRSshare/ exists<pkg>/share (prepended)

LD_LIBRARY_PATH is set as a fallback for AT_EXECFN-bootstrapped binaries that do not drive an explicit linker invocation. The runtime also passes --library-path to the bundled linker on direct invocations. Both mechanisms cover the bundled lib search; the env var gets inherited by child processes the app spawns. No host directory appears in either: what the host supplies is chosen per library by the resolver and reached through its link farm.

Read by the runtime (user-settable) ​

VariableEffect
ONELF_MODEForce a specific execution mode. On failure the runtime errors instead of falling back. Read only; the mode chosen is reported as ONELF_ACTIVE_MODE, so a packed app that launches another does not force a mode on it.
ONELF_GC_MAX_AGECache GC threshold in days (default 30; 0 disables auto-GC)
ONELF_FUSE_NO_NAMESPACEForce the fusermount3 fallback path even when user namespaces are available. Useful for debugging mount visibility.
ONELF_CACHE1 allows the persistent cache as the last execution mode for this launch. Without it, or [package] cache = true at pack time, the runtime stops at the runtime directory and reports failure rather than leaving an extraction on disk.
ONELF_NO_RESOLVER1 launches with nothing taken from the host, as if the package were packed with host-libs = never. The way to tell whether a failure is the resolver's doing.
ONELF_LD_CACHEPath of the loader cache image the resolver reads instead of /etc/ld.so.cache, so a fixture can describe a host of its own.
ONELF_NO_PLATFORM_FETCH1 stops the runtime from fetching the pinned GL build on a host without one. A build already in the store is still used. The launch warns and continues.
ONELF_PLATFORM_URLFetch the pinned GL build from this URL instead of the package's. The pinned hash still has to match, so a mirror cannot substitute content.
ONELF_PLATFORM_STOREDirectory holding fetched GL builds instead of platform/ under the cache root.
XDG_RUNTIME_DIRWhere to create mountpoint dirs (falls back to /tmp)
XDG_CACHE_HOMEWhere the persistent cache mode stores packages (falls back to $HOME/.cache)
XDG_DATA_HOMEWhere onelf integrate installs .desktop files and icons (falls back to $HOME/.local/share)

Portable directory redirection ​

When the corresponding file exists next to the packed binary, the runtime points the variable at it and moves the original value to REAL_*:

Sibling fileRedirectsSaved as
<binary>.homeHOMEREAL_HOME
<binary>.configXDG_CONFIG_HOMEREAL_XDG_CONFIG_HOME
<binary>.shareXDG_DATA_HOMEREAL_XDG_DATA_HOME
<binary>.cacheXDG_CACHE_HOMEREAL_XDG_CACHE_HOME

See Portable Directories for the full story.

Read by onelf at pack time ​

VariableEffect
ONELF_PATCHELFPath to a patchelf binary, used by bundle-libs to add a fresh DT_RUNPATH to binaries without an existing slot and to inject the re-exec-safe onelf-env constructor as a DT_NEEDED on the entrypoint. Falls back to looking up patchelf in PATH.
SOURCE_DATE_EPOCHClamp file mtimes for reproducible output. See Reproducible Builds.

Released under the MIT License.