Closed castrojo closed 4 months ago
What does a new terminal app need for the distrobox workflow?
Maybe its time i revive my old oci based package manager(never thought it could work real life but here we are)
What does a new terminal app need for the distrobox workflow?
Thinking out loud here, I like the idea of shipping a nice set of CLI tools by default in a fleek profile with a bunch of cool stuff. And I love that we can use a Brewfile
for this, but we're still missing a declarative way to do Flatpaks so I was thinking about a homebrew plugin:
brew "automake"
cask "blah"
I wonder if we could do a thing like:
flatpak "com.valvesoftware.Steam"
And then similarly on the CLI it's like with cask: brew install --flatpak steam
or whatever.
cc @osalbahr @bketelsen
I don’t know if Homebrew would officially support being a frontend to flatpak
(see the discussion in the linked issue). Either ways, the idea of having one file that can be generated (brew bundle dump
) or used (brew bundle
) for both CLI and GUI apps is interesting .
An alternative I can think of is to use a wrapper that is able to create and use a Brewfile
-like file and delegates to either brew
or flatpak
accordingly (for both creating and using).
Apparently Nix can be used to install Flatpak declaratively?
Could I ask why Homebrew is a better default than Nix?
Nix isn't a default and is already included (people can already use it if they want).
I have a nice start to a fleek+brew setup at https://getfleek.dev/docs/homebrew It needs more configuration and some good tool recommendations from the community.
I'm looking for a zero-maintenance Linux development system, and I've have been pleased with (non-immutable) Fedora Workstation for a while. But when off-the-clock I was trying to play games I have looked longingly at the rollback features of immutable/atomic distro features.
When I tried Atomic/Silverblue systems however, they've never stuck. Games worked great, and rollback was awesome :), but due to the mental overhead of "layering" CLI systems onto the core, or Toolbx/Distroboxing and then dealing with all the "specialities" of my Linux system vs. my coworkers' Mac systems it wasn't worth it. Desktop apps like VSCode have worked great as Flatpaks for a while, but CLI apps were an issue.
Today I discovered that on Ublue/Silverblue CLI packages like node, rails and psql install and run seamlessly with Homebrew, similarly easy to the DX I would have on macOS. No googling of fast-deprecated guides. I think this is the way.
Thank you everyone for all your efforts and recommendations!
Ok so let's scope this:
Right now we have just brew
and just brew-shell
and a fleek homebrew backend is here: https://github.com/bketelsen/fleekgenbrew
We can do this in two steps I think (more ideas welcome):
We add a banner telling people about the options available and then make just brew
and just brew-shell
one step: https://github.com/ublue-os/bluefin/issues/609
This is relatively easy and should be east to "backport" to gts/F38 once we shake things out.
We take the fleekbrew stuff and "import" it into this repo so it lives here. Then we default to a few profiles. Each profile lives in this repo for centralized maintenance and so that we can customize them based on what we already include in -dx. Some decent default profiles might be: vanilla/off, low, medium, high. Vanilla is Fedora defaults basically, with high being super bling.
We'd need to normalize what's in the profiles with what we have on the image. For example we don't need git in any profile because it's on the image, etc.
We'll also need a robust just
entry for uninstalling brew.
We'll also need a robust
just
entry for uninstalling brew.
Thoughts on using the official uninstall script or sudo rm -rf /home/linuxbrew
?
Yeah I think just (lol) having it aliased as a just command so people don't have to go look it up will be useful!
This would likely/ideally/eventually be support for both types.
This comment in the upstream bug report leads me to believe that a flatpak plugin might be possible?
Just an FYI for completeness, due to path issues we're going to recommend brew in a container and not on the host:
https://github.com/ublue-os/bluefin/issues/687 https://github.com/ublue-os/bluefin/issues/701
This is mostly complete in the bluefin-cli
container, which will be wolfi + brew, just waiting on them to merge brew in upstream wolfi:
https://github.com/ublue-os/bluefin/blob/main/toolboxes/packages.bluefin-cli
Brew is now on the host and available via bluefin-cli container. Brew has been integrated into config (https://github.com/ublue-os/config/pull/235)
Ok so the distrobox workflow isn't working out until we get a new terminal program. I'm continually seeing people struggling with containers so I'm thinking we should just declare this as our default:
This solves a few issues:
/home/linuxbrew/.linuxbrew
and can easily be blown away - doesn't interfere with the system@bketelsen's been prototyping a fleek backend so we could totally ship a default Brewfile with cool tools to supplement the starship setup, etc.
Also, getting Brew to work on silverblue was work started in this repo!
But more seriously, I switched all my machines over a month ago and this is going to be what people coming from normal Linux will want: get the latest cool thing they read about on HN without caring about distro delays.