Lxroot - a (non-Gobo) tool for installing packages as a non-root user

Hello, Gobo Linux Community!

Many years ago, I used Gobo Rootless to install and manage packages, mostly from source code. I enjoyed being able to manage packages as a non-root user. At some point, Gobo Rootless was discontinued, but I continued to spectate on GoboLinux’s progress from time to time.

In 2018, I read about Gobo’s Runner program and learned about the existence of mount namespaces. I was unable to find Runner’s source code, but a few months later I happened to discover Void Linux. Void’s xbps package manager uses mount namespaces as part of its package build system via a program called xbps-uunshare. I was able to find the source code for xbps-uunshare. From that code, I learned how to work with namespaces as a non-root user.

From that knowledge, I have developed a small program called Lxroot. Lxroot allows non-root users to create and enter chroot-style virtual software environments (via namespaces). Inside these namespaces I can (as a non-root user) install and run packages from Alpine, Arch and Void Linux. (I can also install Debian and Ubuntu packages, but I have not published the apt and dpkg shims necessary to do so.)

Other than an inspirational connection with Gobo Rootless and Runner, Lxroot has no direct connection to GoboLinux. However, my impression is that many in the GoboLinux community are interested in package managers and related technologies. Therefore, I thought Lxroot might be of some interest.

Lxroot can be found on GitHub:

Cheers,

Parke

1 Like

That’s awesome, @Parke! Thanks for sharing.

As for Runner, the source code is shipped as part of the Scripts project. It depends on another file, FindDependencies.c, included in the same repository:

@parke Beautiful, thank you for that great piece of software. I am certainly gonna check it out as soon as I find the time and give you some feedback!

In the meantime, you might be interested in Runner’s whitepaper: https://lucasvr.gobolinux.org/etc/Runner.pdf

EDIT: You might also be interested in bedrock linux: Bedrock Linux presentation at Ohio Linuxfest 2012 - YouTube
It’s a meta distro which allows you to use several distros at once. IIRC they also use a sort of chroot (on steroids).

@nuc Glad you like Lxroot. I read the Runner whitepaper back in 2018. I seem to remember that the whitepaper lacked any indication of where the source code might be. I look forward to any feedback you may have.

@nuc Thanks for mentioning Bedrock Linux. According to my notes, I read about Bedrock Linux in April of 2018. Then three months later (in July of 2018), I learned about Gobo’s Runner. (Then, a few months later, about Void’s xbps-uunshare.) I don’t believe I was ever tempted to install or use Bedrock Linux (and I’m still not), but that probably says more about me than about Bedrock Linux. I doubt I would ever be willing to “hijack” my kernel. I highly value the stability of my kernels. (And, hey, hijack could be perfectly stable, but if I used it, I suspect I would then constantly worry that difficult-to-diagnose-and-solve problems might crop up at any point thereafter.)