By mounting the binary over, I mean something like a bind mount. But in your case of a wrapper script, it doesn’t apply indeed. Though in this case I would simply name the script steam-launcher
and call it a day 🙂
Having multiple executables with the same name and relying on $PATH
and absolute paths feels hackish to me, but that’s only a matter of preference at this point.
Right now overlays requires elevated privilèges, but ideally it shouldn’t. Rewriting the Linux kernel to implement per user namespaces like plan9 does would allow unprivileged actions from any user (just like if any user was sitting in a container, overlayed from the base system).
I know we’re not there, and that’s not the direction development is going, but this thread is about dreams, right ? 😉
About the XDG specs, they serve a totally different purpose so they’re out of the discussion IMO. I’m not advocating against env variables. Just
$PATH
which is a workaround as I see it, but your mileage may vary. As for your “issue” with steam, of course this is the best way to solve it. Because of today’s OS limitation. My point is that with a better designed namespacing implementation, there would be more elegant solutions to solve it (and would get rid of the need to useLD_LIBRARY_PATH
too, or literally any*_PATH
env variable)