this post was submitted on 18 Sep 2023
50 points (96.3% liked)

Linux

48372 readers
1244 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
top 16 comments
sorted by: hot top controversial new old
[–] [email protected] 9 points 1 year ago* (last edited 1 year ago) (2 children)

This is a neat write up, but I'm curious what gaming inside a Distrobox container would be like. For starters, is there any performance impact or potential glitches like screen tearing, and second, could I say, install a more recent mesa package in the container (assuming this is Fedora Silverblue), and have the game use it?

[–] [email protected] 13 points 1 year ago (1 children)

Should work fine, bazzite even has a premade one, try it:

distrobox create --nvidia --image ghcr.io/ublue-os/bazzite-arch --name bazzite-arch

[–] [email protected] 10 points 1 year ago (1 children)

Out of curiosity what's the reason to run games in a distrobox container instead of just running them in the host os?

[–] [email protected] 11 points 1 year ago (1 children)

The immediate advantage is that you could get newer mesa in your distrobox but continue to use a stable one in the host so that it doesn't fuck up your more important work. I switched to using containers or flatpaks for everything on my system a while ago. I have a distrobox for running odd games I get off Itch and stuff like Steam/Bottles is from flatpak. I even run Silverblue now and haven't had any major issues for about 2 years at this point. Hell I was switching between GNOME 45 Beta and 44 Stable like it was no big deal.

[–] [email protected] 2 points 1 year ago

I'm using the proprietary drivers anyway, afaik Mesa still isn't as performant as Nvidia is it?

[–] hackeryarn 9 points 1 year ago (1 children)

That's a super interesting idea. I will have to give that a shot!

Right now I just use flatpak for all my gaming needs and shared things like browsers, slack, etc.

[–] [email protected] 4 points 1 year ago* (last edited 1 year ago) (3 children)

My issue with flatpaks is that having too many flatpaks becomes a chore to manage. I did not have a fun time with Steam in a flatpak (required some mucking around to get the DPI and cursor size right) and same with Chromium a while back (took me a long time to figure out how to pass on the flags to enable Wayland support). IMO, having a single container (or a container for a particular activity, like gaming) would be a much more cleaner approach, while offering the flexibility akin to a mutable OS (so no weird flatpak quirks to deal with.. in theory). This would also make things like backups easier, I could just save my "gaming" container to one tar and not worry about whether I missed any dependencies etc.

[–] [email protected] 6 points 1 year ago* (last edited 1 year ago)

If that is your ideal setup, then I think VanillaOS and its apx package manager might be of interest to you.

[–] hackeryarn 3 points 1 year ago

Yeah that's totally fair. It's definitely far from perfect. Although, I do like that it provides at least some level of isolation.

[–] [email protected] 3 points 1 year ago

That's pretty much what I do, spin up a container for anything I need to do and everything is within that.. once I've finished I blow the container away and all the dependencies go with it. Currently use proxmox as a frontend for that although I ran on the command line for ages before switching to a beefier server.

I do the same with docker - nest it in a container so everything is together (and also so it can't screw around with the host networking). eg. my lemmy container has the lemmy docker and its dependencies together.

[–] [email protected] 4 points 1 year ago (2 children)

Doesn't nix do all of this without containers?

[–] [email protected] 4 points 1 year ago* (last edited 1 year ago)

I think so but this method does remove the quite significant barrier of having to figure out nix's language and quirks, so I'd argue there's merit to the workflow. Still, you're trading it for containerization know-how, so not necessarily the best choice.

[–] hackeryarn 2 points 1 year ago

Yeah it does. I actually use nix as my base OS on one machine. But when I need to work on a project that will never be packaged with nix, and I need all the dependencies, it really becomes impossible to just use nix.

Nix makes an amazing bas OS, however.

[–] False 2 points 1 year ago (1 children)

I don't really get the comparison to vagrant. It doesn't seem like it feels the same role? Can distro box be used to share environments with other developers or used in CI/CD processes?

[–] hackeryarn 2 points 1 year ago

I use it to share environments with a small team. Just have distrobox specific Docker files and we can all spin up the same distrobox environment locally.

We end up having a different base docker file (e.g. our distrobox one has editors and stuff), but we all share the same project specific docker file. That same project specific file gets used in CI/CD and deployment, but with a minimal base. So all in all, I would say it's even better than Vagrant because we run the same system in production.

[–] [email protected] 1 points 1 year ago

Distrobox was unreliable, so I switched to using my own Podman scripts. Later, I found Bubblewrap's chroot setup simpler and more effective.

Try bubblewrap with Ansible, you won't look back.