3 ms·
Homebrew is so good that I use it on Linux whenever possible. Most Linux package managers cannot separate user-installed packages from system packages. This ma
by maxloh 4mo ago
Homebrew is so good that I use it on Linux whenever possible.
Most Linux package managers cannot separate user-installed packages from system packages. This makes cleaning up your workstation nearly impossible and a pain in the ass, since you can't tell what should be removed, or more importantly, what can be removed.
Also, most native package managers update much slower than Homebrew, meaning you often only get outdated packages.
- pram 4mo agoYep homebrew on an LTS distro is pro.
- Washuu 4mo ago> Most Linux package managers cannot separate user-installed packages from system packages. And because of pinning versions to LTS releases on certain Linux distributions many times those packages stay out of date for years. Which is quite annoying.
- xenophonf 4mo ago> quite annoying It's also quite stable, which you'd think more people would prize given the recent and on-going supply chain attacks.
- happyopossum 4mo agoGiven the recent dramatic uptick in vulnerability discoveries, it's also prone to being quite insecure...
- xmprt 4mo agoLTS still typically get security updates. That's what the support in long term support means.
- moskimus 4mo agoThis gets thrown around a lot, but it's not entirely true. Depending on the particular distro, only certain core packages are likely to get updates on LTS releases. Non-core packages may just get left to rot until the next LTS release. Specifically Ubuntu follows this. A lot of their non-core packages just get imported from Debian and then just sit unmaintained until next release (this goes doubly if not using Ubuntu Pro).
- thewebguyd 4mo agoEspecially frightening when you look at how much everyday stuff is actually in the Universe repo in Ubuntu. Without Ubuntu Pro, your LTS system can sit in a very insecure state for a long time as patching Universe is "best effort" from the community. Most popular GUI stuff is from universe, as are quite a few dev tools. Some examples: Gimp, Inkscape, pip (and a ton of python packages), most of gnome, a big chunk of KDE, htop, mariadb, etc. See for yourself grep -h "^Package:" /var/lib/apt/lists/_universe__Packages | awk '{print $2}' | sort -u Or to see only what you have installed from Universe: comm -12 <(dpkg-query -f '${Package}\n' -W | sort) <(grep -h "^Package:" /var/lib/apt/lists/_universe__Packages | awk '{print $2}' | sort -u) A big repo isn't always better.
- Milpotel 4mo ago> Depending on the particular distro, only certain core packages are likely to get updates on LTS releases. All LTS distros fix only some core packages sporadically as no one is able to back port all the patches esp. since most packages do not use CVEs and just fix bugs on the go. "Stable" for non-rolling distributions simply means "horribly broken and outdated".
- manwe150 4mo agoIt’s not horribly broken any more than your toaster is for not needing constant updates. Though I do have such a longstanding love/hate relationship with Ubuntu because of this. It is why it runs everywhere and just works (even powers the WSL2 defaults), but everything it provides also always so very far behind I end up recompiling so much important stuff by hand.
- thewebguyd 4mo agoStable as in unchanging, sure. Stable can also mean "you get to keep all the bugs present in this version for the next 4+ years"
- jandrese 4mo agoOr worse, the kernel moves beyond the package in the repo so a year and a half later it doesn't even work anymore. VirtualBox is really bad about this.
- vondur 4mo agoHomebrew is the default on Bluefin Linux since most of the system is immutable. I like it since I’m so used to it on my Mac.
- colordrops 4mo agoBrew is probably serving your needs, but you might also want to look into Nix/NixOS, which takes what you are talking about to the next level.
- analog_daddy 4mo agoYeah I tried nix about 8 months ago. Not really as simple as homebrew. Even the detereminate nix tutorial though nice felt too much of a hassle. I feel homebrew really is a nice interface which is pretty close to conventional package manager, while nix even though the concept is revolutionary, felt lacking in user experience. Hope the documentation improves.
- dom96 4mo agoHuh, didn't know you can use Homebrew on Linux
- c-hendricks 4mo agoEven has Linux aarch64 bottles!
- iamcreasy 4mo ago> Most Linux package managers cannot separate user-installed packages from system packages. What is the use case when someone would want to differentiate system/user installed package? Isn't it good things that they are the same - meaning once something is install - it is there regardless of how it got here.
- selicos 4mo agoIn my current use case I'm setting up a new Ubuntu server for hosting LLMs. I didn't take notes when setting it up last time around but want to document exactly what was required to pass on to coworkers trying something similar. I don't know what packages I installed to get the minimalist setup working vs what is installed by default. I'm tempted to nuke and redo with notes but I'm sure there is a better method of tracking down what I deployed to get to the current state. ...or not, and this is why HomeBrew exists and I need to learn it or ansible/etc.
- michaelmrose 4mo agoNixOS seems ideal for this.
- maxloh 4mo agoYou can try this command. But I doubt it will work as intended if you have ever upgraded Ubuntu versions. comm -23 <(apt-mark showmanual | sort -u) <(gzip -dc /var/log/installer/initial-status.gz | sed -n 's/^Package: //p' | sort -u) https://askubuntu.com/a/492343/1056703 https://askubuntu.com/a/492343/1056703
- wolrah 4mo agoTwo reasons come to mind for me: 1. It's very common, especially in certain ecosystems like Python, for the system to depend on old versions of things in such a way that updating to modern versions will break your entire system, while at the same time you want to run something at the user level that depends on a newer version. The solutions to this are usually ecosystem specific and often annoying to use for someone who just wants to run a program (again a great example being Python venvs, which at this point have decades of tooling built up around trying to make it less annoying to deal with). 2. For "cattle" systems having everything installed at the system level is generally not too much of an issue, but for "pet" systems where the user might be experimenting with things it's really nice to be able to install stuff in a way that doesn't affect anything outside of your user account even if it's also available at the system level. The computers that I personally operate from on a daily basis tend to build up a lot of crap I used once over time and removing it without just backing up my stuff and nuking it all can be a major pain.
- mayama 4mo agoMy personal solution for this is to install a simpler distro in chroot, alpine, and install dev newer apps in to it. Additionally, I run chroot via bwrap sandbox and have been doing this for quite some time now before flatpak became famous.