A few years ago we were able to upgrade everything (OS and Apps) using a single command. I remember this was something we boasted about when talking to Windows and Mac fans. It was such an amazing feature. Something that users of proprietary systems hadn’t even heard about. We had this on desktops before things like Apple’s App Store and Play Store were a thing.
We can no longer do that thanks to Flatpaks and Snaps as well as AppImages.
Recently i upgraded my Fedora system. I few days later i found out i was runnig some older apps since they were Flatpaks (i had completely forgotten how I installed bitwarden for instance.)
Do you miss the old system too?
Is it possible to bring back that experience? A unified, reliable CLI solution to make sure EVERYTHING is up to date?
Well, doesn’t that depend on your package manager? With pacman I can add a custom hook after install to update all flatpaks. I’m sure it could also be done for all snaps and AppImages if I would use any of those.
Isn’t there a similar hooking mechanism in apt or yum?
Even if there are workarounds the old approach was superior.
For the average user, software updates should be seamless and require no interaction whatsoever. Fedora Silverblue does this fairly well, whether they are flatpak or system updates.
Flatpaks offer many benefits that, in my opinion, offset their potential inconveniences.
Check out Nix, which goes in the opposite direction. There isn’t really a distinction between the system and applications.
Yup, once I got into Arch I started meticulously documenting my setup and scripting as much as possible so I could quickly set up a new system to my liking.
Daily driving NixOS now, and I still have plenty to learn, but I’m getting very close to to having that whole setup fully declared in config.
It’s truly the best of all worlds.
Flatpak and Snap certainly go in the wrong direction, instead of being an upgrade and replacement for existing package managers, they are a crooked sidegrade, that solves some problems, while creating multiple new ones that used to be solved by older package managers. Flatpak making Gnome and KDE the only dependencies to exist is also pretty messed up.
I don’t mind AppImages in this, as they never set up to be a new package manager format, but instead are just a way to bundle executables and dependencies into a single file for easier redistribution. You certainly don’t want to use that for all your packages, but as a quick&dirty workaround to get some semblance of cross-distribution packaging, with close to zero impact on the user, it’s quite good. It’s also one of the few formats that gives the user full control over up- and downgrades, as it’s all just simple files you can run and archive as you wish, it’s not a service that forces you to always use the latest thing.
So yeah, Linux packaging is still a mess and it will probably take another decade or two before the dust has settled. Though I can’t shake the feeling that we have reached peak-Linux quite some years ago and it’s all downhill from here. Free Software principles aren’t exactly high priority for any company doing development in this space, and Free Software principles by itself aren’t even enough in a modern SAAS world to begin with.
Somebody needs to write the book on what it means to be Free Software in the modern world, especially when it comes to online-services, distribution and reproducibility, aspects that have been largely ignored so far.
I actually like Flatpaks… I use dpkg/apt-get for system packages that cannot be installed in userspace, and flatpaks for desktop apps / games. Many distro’s have unified ways to update them anyway (at least VanillaOS has)
alias upgrade=“sudo pacman -Syu && yay -Syu && sudo flatpak upgrade”
&& snap refresh
I think a lot of people just won’t endorse snap as long as it’s backend is proprietary
snaps are terribly, terribly slow, especially if you still have a mechanical drive.
What you suggest works for Arch distros only of course. Actually, yay -Syu will do the pacman stuff for you first anyway so you can skip that.
If you are using EndevourOS, check out eos-update. I just discovered it. It is basically the same thing but it will automatically handle keyring updates and db.lck issues if you have ever run into those. Basically, it is what yay should be.
Another EndevourOS gem is eos-shifttime. It will set your system to whatever pacman would have done on a specific date. You can use it to roll-back to a specific date. Or, if it has been forever since you upgraded, it lets you upgrade more incrementally than catching up all at once. Pretty cool. I guess you could also mimic the Manjaro experience by always upgrading to whatever was in the Arch repositories 3 weeks ago.
Of course those commands only work for arch-based distros, but it is completely possible to adapt them to fedora or debian-based distros
Use a distribution with a large package library that is kept up to date and there is noting to miss.
Ubuntu is starting to push Snaps. So, that is becoming an unavoidable reality for Ubuntu users. For the most part though, Flatpaks remain optional for most distros.
The problem that Flatpaks solve is that the distro provided packages are out-of-date. If they are not, there is no real reason to prefer Flatpak.
IDK I thought sandboxing is also something that comes with Flatpak, so security concernes could be a reason to use Flatpak as well.
I do hear that. Flatpaks do not seem to be very good sandboxes though.
Yeah, flatpaks are a pain in the ass. So glad that I don’t have to use them since switching to Arch.
alias update='sudo pacman -Syu && flatpak update'
or just use one of the trillion GUI app stores like pamac, discover, or gnome’s thing whatever they call it.deleted by creator
What I think the biggest problem with the traditional package managers is that (1) they don’t isolate packages from each other (when you install a program files are placed in many random places, like /usr/bin, /usr/lib etc) and (2) you can’t have multiple versions of the same package installed at the same time.
This creates a lot of work for package maintainers who need to constantly keep packages up to date as dependencies are updated.
Also, because of this, every distro is essentially an insane dependency tree where changing even one small core package could break everything.
Because of this, backwards compatibility on Linux is terrible. If you need to run an older application which depends on older packages, your only choice is to download an older distro.
This is what snap and flatpak try to solve. I think they are not great solutions, because they ended up being an extra package manager next to the traditional package managers. Until we see a distro that uses flatpak or something similar exclusively, the problem is not solved.
when you install a program files are placed in many random places, like /usr/bin, /usr/lib
That’s because back in the day those had some good logic. On mainframe systems you had to be able to split files by how crucial they are too keeping the system alive, so you’d mount something like /bin locally but you could mount /usr/bin remotely and still keep the machine running if the connection was lost. And so on and so forth.
Nowadays we really should revise the Filesystem Hierarchy Standard but it’s required by the UNIX compatibility and it’s baked into so many things that you wouldn’t believe.
I remember back in the 2000s the were distros like GoboLinux that tried to reorganize the files with criteria relevant to a modern machine but it didn’t catch on in the Linux world. However Apple did it for Mac OS.
Gobo Linux is still there https://gobolinux.org/
The primary init manager for Linux is removing support for separating them later this year
https://lists.freedesktop.org/archives/systemd-devel/2022-September/048352.html
nix overall is a much better solution to this problem.
What I think the biggest problem with the traditional package managers is that (1) they don’t isolate packages from each other (when you install a program files are placed in many random places, like /usr/bin, /usr/lib etc) and (2) you can’t have multiple versions of the same package installed at the same time.
Would you like to know about our Lord And Savior NixOS?
Wow, that’s exactly what I have been missing in my life. Amen, brother!
deleted by creator
I think I’ll look into NixOS once I’m done with the heavy games I’m playing. EndeavourOS is great, but I’m tired of files being hidden and programs therefore not removed correctly.
The solution is using a distro that has support for containers (flatpaks preferably) but doesn’t force them on you, so far I haven’t found a single use case in which they’re truly needed on desktop so apt update still does everything for me.
There’s some software that I compile myself (emulators), it cannot be upgraded with a packet manager but that has always been the case.
I use Linux MX but there are other distros with the same approach. It also makes it really easy to see if you’re installing them because flatpak is a separated repository from non-container apps (I think it’s also updated by the package manager but I haven’t tried so far).
Solution? We’re not here to find solutions! We’re here to yearn for the good old days!
Dunno about you, when I click Update in Discover, all my stuff updates
Only one of my Linux boxes even has a window manager, and I don’t use it.
is their some kind of TUI lemmy client you’re using then, or do you just do most of your web stuff on mobile or windows or something?
Lemmy is strictly a time waster on my phone. I already sit in front of a desk of screens all day for work, I’m not going to do the same thing for fun.
Perhaps a small bash script to iterate through all of the package delivery mechanisms’ for updating everything?
It doesn’t even need to be a script you could just alias the 2 commands on a single line to a command in bashrc
Silverblue here with automatic updates enabled, I do not care anymore, it just works.
Yes! The automatic updates are great for me and my family’s machines. System and Flatpak upgrades are done automatically, I never ever think of them.
Universal Blue has it too. They also have the “just” wrapper for not just system and flatpak, but containers as well.
This, super love that distro !!! Perfect for users that don’t have a lot of needs.
Personally, I never got used to the container workflow :(
🎶That’s why i don’t like and use flatpaks, snaps and appimages 🎶
They all have their use cases.
I may not want Steam games or Firefox to have access to my holidays pictures or bank extracts. I may prefer to install some KDE apps on my XFCE desktop but don’t want all the KDE dependencies all over my system.
Each tool has a purpose.