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?
IMHO the killer feature of linux is that you aren't getting shit straight into your mouth every day by some corporation that decices to squeeze more cash money out of you.
And as others have pointed out most gui applications update all sources automatically.
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.
I can't really relate? At least on my desktop. The software manager integrates with Flatpaks and upgrades them at the same time.
For most apps I'm going to prefer the usual way of doing things. But there are some apps that I actually kinda prefer as Flatpaks. Like Calibre I'm happy to install as a Flatpak. The updates are faster and it doesn't add a whole host of dependencies that only it uses to my system.
Depends. Unless you're on Ubuntu or Elementary, Flatpak and Snap are optional. When I'm on Arch, btw, I don't bother with any of those and just use the AUR with a helper like yay.
But I find the convenience of Flathub too good to pass up on other distros. I have been using Linux long enough to remember when the only options if your distro didn't ship something were to compile from source or to use a sketchy installer script, because Flatpak didn't exist. And as others mentioned, if you're using a full desktop environment, it likely can update everything at once via the GUI.
You're using Linux. It took me about an hour to create a script that will upgrade all packages, Snaps, and flatpaks, complete with flavor text. The fact that I could do that, with total control over how and when to run those updates, is still a killer feature to me.
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.
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.
If this actually were Linux's killer feature, then Linux would have had a much higher market share by now.
Make no mistake, this is my favourite feature of Linux as well, and I have never used a snap/flatpack/appimage in my entire life. But it doesn't have the kind of broader public appeal that you seem to be suggesting.
The GUIs do that in a even easier way for new users and experienced people can always just add a simple bash alias, a universal command never existed anyway because we have various different package managers on different distros so I don't see any lost feature whatsoever tbh
I don't use flatpak. But if your distro does, I imagine it should be pretty easy for them to provide a higher level program that updates both types of packages at once. I think this isn't a big problem.
Well, one way to address this would be to have a little hook that triggers when you do a full system upgrade, and it updates your flatpaks.
also flatpaks are still centralized thanks to flatpak itself, same for snaps, nix, cargo and similar package managers. It's not like you have to update every single app by yourself, like for AppImages and apps on windows or macos for example.
Nowadays I don't even bother with upgrades anymore. Snaps and Flatpaks auto updates automatically, and for system updates Ubuntu notifies once a week.
For me the experience nowadays is better than before, where app updates are tied to system updates, meaning that older bases (like Ubuntu LTS) got behind on some softwares.
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.
I still run everything I can as .rpm through dnf on my Fedora and .deb through apt on my Debian servers.
I only install a flatpak as last resort.
From a dev viewpoint I can understand the gains of flatpak but from a user viewpoint I prefer a "real" install.
This is why I prefer native packages over Flatpak, AppImage, Snap, etc. I want my entire system managed under one roof. On Arch, that roof is pacman. I'd rather get stuff not in Arch repos from AUR so they stay under pacman's roof. I do like having the option to use Flatpak for stuff that isn't in my distro's repos (or third party ones like AUR), and on some distros with more limited selection it is very nice to have, though I'd still prefer native. The only places I really use Flatpak are on the Steam Deck (as SteamOS doesn't allow the use of pacman, and if you force it you break things) and on postmarketOS because the Alpine repos lack a lot of stuff I want on my phone.
Never used Flatpak or Snap in nearly 30 years of using Linux. I might one day but not yet.
I don't use Fedora these days but your package manager will probably have some hooks. Add one to update your Flatpaks when it has finished its main job.
If your problem is Flatpaks, Snaps and AppImages, just remember that manually installed software can't be updated with the same command either, and installing software manually is fortunately not a new thing.
Here's the solution, though: don't use flatpaks, snaps appimages, instead rely on your outdated distro packages only.
Personally I only use appimages, because I don't want the resource overhead of the other 2
For arch Linux, there's Topgrade. All there, in just one command. All. There. Official repos, AUR, even firmware upgrades.
Here's my alias to update the whole system. It includes fetching the fastest mirrors, topgrade, and cleaning the update's packages cache. Tailor it to your own needs.
This sucks, but on the flip side, before Flatpak and others, if the software wasn't in the repo then we're SOL and can't install it. Asking all developers everywhere to maintain a version of their software for every single package manager and ensure support for every distro is a bit unattainable. If Linux settled on one package manager or one distro then this would be solved, but such a statement is antithetical to the abundance of choice that Linux boasts.
Would you rather not be able to update an app or not be able to install an app?
Arch-based distro here, a lot of shit from AUR and such and it autoupdates from my package manager/aur helper.
The 2 or 3 flatpaks I installed I have to manually update... But to be honest I'm fairly sure that there's some config or change I could make to yay that would make it update flatpaks too. And even if not... Well. I could do what the (as of now) top comment said and make a lil' script. Though running two commands is really not a huge sacrifice :P
Also back when I used Debian, apt had some hook in it that would update Flatpaks there too.
No Appimages for me though. Don't care for the entire format.
Anyhow to me the killer feature of Linux was never the package manager so much as it was how much liberty it gives me to customize everything. Flatpaks and such are just another aspect of that.
The killer feature is getting applications from a central repo, not so much that there was only one repo. Unlike windows where you have each application self updating or not updating at all and forcing you to have to go to several webpages to update things. Having to update two different repos IMO is not a huge problem, you just need to be aware of it and there are frontends to these systems that can update both at once. The only exception to that I think are AppImages - but those you don't really need to use on most distros.
AppImages are horribly bloated, I personally would never use them on my machines. Snaps I'm also still biased against because Canonical's shady practices. So for me it's still just pacman -Syu && flatpak update.
Ultimately, you are the one that decided to install things outside of your distro's package manager. If you don't like what happens as a result... then don't do that.
You are completely able to use the built-in package manager to achieve what we had "a few years ago". If you want something that isn't available in the package manager you can do what we did "a few years ago" and install it separately yourself (from source, flatpaks, snaps, appimage). Or you could become a package maintainer for that package and get it added as a package for your distro. It's completely up to you and in no way different frmo what it was a few years ago.
Edit: after finding out from @mfat@lemdro.id that Fedora does in fact officially support Flatpak, I do indeed think that they could do better in how they support that.
Just create a script that calls all the update commands. That's how computers work. Your apt/dnf/whatever command also calls many other commands to do its job.
Your mileage may vary, but it's still possible to install some distros without those nonsensical containerised "package managers", or to at least remove them after installation. It unfortunately takes an increasing amount of effort, especially in distros that are actively trying to push their flavour of containerised package manager. (Totally not looking at Ubuntu and Snap)
What is working in our favour here is the fragmentation, which will prevent, or at least slow down a too widespread adoption of those systems.
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)
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).
I use fedora as well and I just update through the GUI. It's more stable that way and waiting until I turn off my computer for them to apply is not a big deal.
This is why I really like KDE Plasma's discover. It's got integrations with apt, snap, Flatpack, and rpm, and that's only the ones I've tried so far.
I don't really use discover itself to manage my packages, cause for some reason I prefer to do it with the cli tools, but it is a great update notifier.
flatpaks are all updated at once, just like distro packages, so yeah you might need to commands, but that's still very different to having each application update itself (and the security hell implied by that)
Also I think pkcon can manage your updates across various backends (unless you are on Arch, where I think there are both technical & ideological objections to having a simple tool that just works)
This is one of the reasons i don't use flatpaks, snaps etc. I get everything either from the official repos or from the aur. Except balena etcher as it is the only thing i was unable to install via my aur helper and i couldn't be bothered to look into why as balena is not that important to me.
It is the ONLY package that isn't updated with my update command as i installed it via appimage
I use BAUH as a GUI "update everything in one click" does repos, aur, flatpak, snaps, appimages. Paru is CLI option for repo, aur and flatpak. I dunno if it does snaps never checked.
I mostly stick to things in the repos, if theres something I want that's not yet packaged I package it myself because Gentoo packages are fancy bash scripts with libraries (eclasses) to handle the normal make && make install sort of things for most build systems
yeah like other people have rec'd, I just wrote a script for installing/removing/upgrading/searching all the package managers I have. this was used as a tongue in cheek jab and has never truly been a brag.
I know that a lot of people share the same thoughts with you but I respectfully disagree.
If you want your system to be updated only with your apt/yum/dnf program, then just don't install anything useing snap/flatpak/etc.
Sure, you will not have all the apps available in the repos, which was also the case in the past before these systems. Back then, your only option was to compile from source, which was more work-intensive than flatpaks/appimages/snaps. And updating was also much more complicated. Therefore, unless you wanted something really special, you'd stick to your repos.
Flatpaks allow developers to distribute their software (and users to install it) in a less labour-intensive manner for the developer. Compiling and testing your app for Debian, Fedora, Arch, SuSE, MX-Linux, Linux Mint, Linux Mint DE, Gentoo, and all the other popular distros is an impossible task for small developers. Flatpaks was a godsend for them and for the users who don't want to compile from source.
Now, you can argue that we shouldn't have all these systems (flatpak, snap, appimage, docker, etc...) but one would be OK. And again I will disagree. One of the most important aspects of FOSS is diversity. Embrace it even with its drawbacks. It would require a much longer post to explain this and others have done it already better than I would.
adjust accordingly for Fedora and/or snaps. Obviously doesn't work for appimages or manually compiled stuff which should be a last resort if there's no other sensible way to install stuff.
edit: voyager shat the bed with the code block but you get the point
What about pkcon? I haven't used it in particular, but packagekit based GUIs work pretty well in my experience, and then it supports flatpak/snap/apt/kde addons/etc in one interface, which is better than it was originally.
Nah, I don't miss them really, flatpaks are much more convenient and for me fedora kinda just updates itself automatically.
Also, pretty much all graphical app stores on linux support flatpaks and the distro's default package manager, so you can update everything from there...
I mostly stick to things in the repos, if theres something I want that's not yet packaged I package it myself because Gentoo packages are fancy bash scripts with libraries (eclasses) to handle the normal make && make install sort of things for most build systems
You can still do it if software is packaged properly for your system.
Nobody is forcing you to use containers. If something you want isn't available for your system, make a package yourself.
If it's not popular enough for someone else to package it, you don't want to do it, and you still don't want to use containers, then that's when a beggar tries to be a chooser.
I don't know what you're talking about, I just upgraded my Debian from 11 to 12 with just "apt upgrade" and it didn't even find anything for the following full-upgrade... seems upgrade will do all now? I should have probably read the upgrade guide ( https://www.debian.org/releases/bookworm/amd64/release-notes/ch-upgrading.en.html ) but it just worked, as usual.
What kinda bass-ackwards package manager are you using where you can't keep track of flatpak and appimage updates too? I have everything right here in Discover.
Which is kinda one of the main reasons I started to like and still like gentoo.
I do understand that it's not for everyone as a daily driver.
Maybe Arch could also fit?