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?
Even on Fedora the average user is presented with many flatpak results when they use the GUI software manager. Not everyone is technically adept enough to check the origin of the app. So it's kind of being forced on users.
Yes, that's why I stopped using it years ago (among other reasons).
Users are not out of options, they don't need to check the origin of the apps themselves, it's enough to ask other users what distros don't do the things they don't like and use those.
You can use bauh. it is a graphical app manager which can Install and update appimage, deb, flatpak, snap and web apps.
https://github.com/vinifmor/bauh
I'd like to add that it's even better than that!
You can install apt, flathub and snap (if you want to install it) packages from the same installer, complete with full package info, screenshots and reviews!
You can even compare them by switching quickly via the drop-down!
The updater also checks all three, allowing you to scrutinise every part you want, or just updating it all with one button!
The installer and updater are actually better than using the command line, in my opinion, and I am by no means a stranger to the command line!
I would really love gnome software to add update on background feature and set update interval (update only once a month, hold update indefinitely etc.)
But fedora software center behavior is the most intuitive and easy compare to other popular desktop OS/distros: Mac, Windows, or Ubuntu.
I love and use Fedora but I still think Mints update manager is the best GUI implementation I ever used for updating, it has all the essentials, is easy to use and looks nice.
As far as I know, Ubuntu is unique in its insistence on snaps. I can't really speak for any others but my system runs fine entirely on native or locally compiled packages known to my package manager.
This. And it usually is open source, if you don't want to install a flatpak or docker image, you can always compile it yourself, and if you feel generous, you package it up as an .rpm, .dep, or whatever your distro of choice wants and create a download for it. I also have not (yet) encountered a project i wanted to install that didn't either provide packages or at the very least detailed instructions if I want to just install that locally.
I mean, if I install something compiling from source, I would not expect anyone else to manage it, right? I mean why would anyone expect that flatpak snap etc. all get managed automatically, they even forget how they installed something, it is so ridiculous.
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?
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.
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 really hate the "we had it better before ${X} technology replaced ${Y}"; it almost never works in the Linux landscape.
It's most likely a one liner to fix the issue you're having, and if it isn't, then you can replace the problematic part of your system with whatever suites you.
You don't like Flatpaks? remove all of them and use packages from your distro's repos. Don't like GNU-utils? use Busybox. Don't like systemd? use Artix, Gentoo, or rip systemd out of your OS like a real man.
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.
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.
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.
There was a time when using the update button of Software Center was exactly equal to running "sup apt dist-upgrade". Everything was simple and straightforward.
And broke all the time, and was a nightmare for devs to create and maintain packages for multiple distros, and was hard to find packages outside the official repos, and could create a package version hell, and had only a very rudimentary permission system.
Everything was simple and straightforward except for updating an app after new release before the distro maintainers updated it in repos (which often took months).
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.
I don't bother with any of those and just use the AUR with a helper like yay.
Normally I do that too but recently wanted to install an app from AUR that ran out of memory during compile on 4 GB of RAM. So being able to use an appimage or flatpak was still useful.
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.
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?
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.
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
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.
We never lost any "ild system" and the rebooting is probably how your distro implements updates, I use Fedora so mine often wants a reboot but that's definitely not the norm on Linux as far as I know and I never had a device turn back on on it's own...
I think I first saw that on Fedora, years and years ago. I'm currently running Debian (testing) on my laptop. There was definitely some change at some point.
Well. It's more, I click shutdown and because Linux has been 500% reliable for me, immediately shut the lid and throw the thing into my backpack. And instead of a shutdown, it tries to reboot, apply the updates and then do the shut down. But that fails because I use full disk encryption and it just sits at the password prompt until I pull it out again. Just heating my backpack from the inside and depleating the battery. So technically it doesn't turn on on its own. It just doesn't turn off as expected.
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.
It's funny, I do almost the exact opposite--whenever there is a flatpak version, I prefer it over a built-in apt package. The flatpak is almost always more up-to-date and often has the features and bug fixes I need.
Examples:
Vorta (0.8.12 flatpak; 0.8.3 apt)
Pinta (2.1.1 flatpak; 1.6 apt)
Minder (1.15.6 flatpak; 1.13.1 apt)
Xournal++ (1.2.1 flatpak; 1.1.1 apt)
.
I don't think it's fair to expect the distro maintainers to be up to date with every software out there--the universe of software has grown and grown, and we just can't expect them to wrap/manage/test every new release and version bump.
I enjoy that extra stability and separation between system and apps, especially as I use a rolling distro as a gamer. Hearing talk about Flatpak I disliked it for the same reasons, but I decided to try it out after Steam Native bugged due to a system library update. I enjoy it now also because it feels good that installing apps don't get a root password and scatter files everywhere they please in the system.
On servers it's different ofcourse, Flatpak is basically for desktop apps. Snap is also designed for text mode stuff, servers and IoT devices but there's the problem with it being controlled by one company.
It depends on the distro I am on, if I use Debian or a derivative I usually prefer the Flatpak but on Fedora I only go with the Flatpak if I run into issues or the rare outdated package because I don't need them, I would certainly miss Flatpaks if they didn't exist tho!
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.
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.
Nope. Firefox does not, because either Firefox is running, or the PC is down or sleeping. So I have to close Firefox, open a shell, update that snap shit, and restart Firefox. Which pisses me off to no end, apart from the point that snaps are a waste of resources and a bad idea in general.
Honestly, I use Arch (btw) but after living on Fedora for a while, when I returned I started using podman over AUR for some stuff. If a package is going to pull a bunch of weird dependencies, or I want to easily migrate it later, it's just so much easier to keep it containerized.
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.
I think that this is above all else the reason that I use Arch. Arch Linux makes creating packages trivial, basically just wrapping build instructions into a shell script template. Arch handles the rest. The build systems for deb or rpm packages don't come close, and good luck rolling your own flatpak.
This allows me to use pacman for everything outside of my home directory. Pacman is practically the central feature of my computer, and it's wonderful. I'm sure those Nix people can relate, though I guess my method is a bit less robust.
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.
It does kinda suck for install and update to head toward more fracturing.
Install obs, oof the plugin I want is flatpack only, go to install flat pack version, yeah it's folder is buried. Go wedge the plugin out of it's folder to put it on my apt location, doesn't work. Screw with it for 15 minutes. No good. Ok uninstall apt version, install flatpack version. Now my 4fl won't trigger virtual cam. An about later I cobble it back together.
At least with source you place the binary. If you dpkg, it plays nice with apt with a fix broken install.
Shit used to be designed to play ni e together. Flatpack and appimage are like screw you, it's easier to develop/deliver.
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.
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.
Topgrade is not just for archlinux but will happily upgrade Debian-/RedHat-Derivatives, Gentoo, Void, some BSDs and I think even Mac and Windows,
though I'm not sure how those work.
The link you provided also goes to the unmaintained original version, while there is a community fork here: https://github.com/topgrade-rs/topgrade which sees more development (but is also looking for maintainers!)
I'm also using topgrade and it is wonderful to upgrade the system dependencies but even the content of unrelated package managers such as pipx, vim, zsh plugin-managers, cargo programs, R packages, npm/yarn packages, and importantly for this thread flatpaks and snaps with one command.
It really is lovely.
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.
I've seen the term "hooks" used all the time and have always wondered what the need for them is. I was a Windows user my entire life since childhood and recently rectified that a couple months ago.
Unlearning the Windows paradigm of operating systems has been annoying. So many functional aspects of my machine abstracted away made me have to create an entirely new scaffold for learning technology...
A hook is a mechanism for adding functionality at a certain point in a program's normal flow. As a simple example, imagine a program that works by doing three things in order. It could have hooks that allow the user to add actions before or after any individual steps. Each possible point in the flow is a separate hook. One way to implement it is with a directory for each hook in the program's configuration directory, where executables can be placed; the hook runs each executable in sorted order.
I didn't look up any of this, so it may not be the best explanation, but I hope it is helpful.
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.
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).
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 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.
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)
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 @[email protected] that Fedora does in fact officially support Flatpak, I do indeed think that they could do better in how they support that.
What you say is true when this is explicitly stated by the OS.
When the average user uses the Software app they are presented with many Flatpak results. Flatpaks are presented as offerings by the distro, not something "outside of the distro's package manager." Should the average user be supposed to check the origin of every app and know about Flatpaks?
Plus if you use the most popular distro it already comes with default snap apps.
Oh! I had no idea Fedora was officially supporting Flatpaks these days. I used Fedora from when it was Fedora Core 3 in 2004 until about 2015. Since it was the distro I cut my teeth on, I assumed I was familiar, but it's wild to think it's been nearly a decade since I've used it...
I completely agree that they should come up with a unified way for managing packages that they officially support. But also, a few years ago, if things weren't in the default package manager then we had to build them ourselves because they can't be expected to do everything for us.
So I don't think we killed the killer feature. I simply think people have more options these days (although I see how some might see this as more rope with which to hang themselves)
I'll update my original post to clarify that I was wrong
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.
I practically observed it. To me flatpaks were horribly slow due to my download speed. I don't know what sort of magic packages it was downloading, but I was waiting way longer than simply using pacman/AUR packages. 🤷
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
How is that a complicated alias? Seems pretty straightforward to me. But again, if you prefer a shell script which does the same thing but separated line by line, also fine
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.
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've only found one use case for balena: absolutely needing a gui to run a simple dd command. The other potential case, automagically handling bootability, never worked for me.
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.
Except it doesn't always work. I've seen it stuck and loading updates forever a few times, while a simple flatpak update command did the job with zero issues.
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
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.
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.
The official software manager on my Fedora system (Discover) presents me with Flatpaks.
If I use Discover for updating ,the Flatpaks will update too.
But when I use the official CLI tool to upgrade the system only RPM packages are updated.
The other package managers on the system are not affected (Flatpaks, Snap, Cargo, PIP).
I think there should be no discrepancy between CLI and GUI interfaces for system updates.
The fact that I should "remember" how to update stuff shows that something is wrong or is not perfect.
You have a point here indeed. But it is much easier to create a CLI tool that combines the updates of all systems rather than destroying the incredible things that flatpak and pip offer. A five-line bach script would do. Although, a reliable distro would probably want to rely on something much more elegant and harder to break. For Fedora specifically, the python-based dnf tool should be straightforward to be extended to do that. Perhaps the Debian apt tool has a lot of functionality to carry on and may be harder to do. In the essence of unix philosophy and modular approach, it should be a separate tool. I'm looking forward to that too.
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.
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...
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.
You don't really need much of a script, a relatively simple bash alias should do the trick and for new users the GUIs are a better solution anyway and those still update all apps.
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.
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.
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?