So, there are multiple ways of installing things. For GUI apps the standard way is flatpaks. Some non-GUI things are installed that way, but it’s less common.
For CLI apps, homebrew is installed by default and it’s recommended as a way to install CLI things.
The method I like for apps that have a lot of interdependencies is to use a distrobox. If you want a development environment where multiple apps all talk to each-other, you can isolate them on their own distrobox and install them however you like there.
I currently have a distrobox running ubuntu that I use for a kubernetes project. In that distrobox I install anything I need with apt, or sometimes from source. Within that kubernetes project I use mise-en-place to manage tools just for that particular sub-project. What I like about doing things this way is that when I’m working on that project I have all the tools I need, and don’t have to worry about the tools for other projects. My base bazzite image is basically unchanged, but my k8s project is highly customized.
If you really want to, you can still install RPMs as overlays to the base system, it’s just not recommended because that slows down upgrades.
More details here:
docs.bazzite.gg/Installing_and_Managing_Software/
towerful@programming.dev 1 week ago
I moved to endeavouros. First time using a rolling release, and I was struggling with some webdev stuff cause node was on a recent non-lts build and a few other things.
Not a problem for building, cause I already have that containerised. But things like installing packages was refusing, and obviously couldn’t run dev workflows.
Until I realised I should just work inside a container.
I know vscode is still Microsoft (and I’m sure I could get it to work with vscodium), but the dev container workflow is fantastic.
Absolute game changer.
And I know I can easily work on a different platform, os whatever. And still have the same dev environment.
merc@sh.itjust.works 1 week ago
Yeah, it’s a game changer. Especially if you have different projects on the go. I’m used to having to deal with an ugly path with all kind of random things in it because I need them for one project. But, with containers / distroboxes / toolbx you can keep those changes isolated.