Did we kill Linux's killer feature?

mFat@lemdro.id to Linux@lemmy.ml – 282 points –

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?

261

Alias update="sudo apt full-upgrade && flatpak update"

Fixed it for you

Since they’re using Fedora apt isn’t going to do anything, they would need to run sudo dnf upgrade -y && flatpak update

Nice. Your excellent suggestion probably belongs in a meta-package somewhere so that users get it for free when appropriate.

appimages though?

They don't update, they are standalone files

Appimages for in-dev programs usually have an auto-updater that runs when you run the program, too, which is accetapble by my factual and perfect standards. It would be nice if someone put together an appimage store to manage these, I guess.

Why not create a plug in to the AppStore of whatever your using

Thats it ... Thats how i do it in every distro inluding nix-env and i'm eine

No need to overengeneer

If you're an Obtainium/install from GitHub fan, then don't forget gam update.

There has always been the option of installing software from source. The package manager won't update anything installed from source.

You don't have to use Flatpak, Snap or AppImage if you don't want to. If you use the package manager to install everything, it will update everything.

Except doesn't ubumtu now force a snap on you even if you try installing a package app?

The solution is to use any of the other hundreds of readily available distributions.

Exactly. I dont have flatpak or snap integration installed so packages are packages. I think it was Ubuntu being delivered with snap as part of the OS. As well as CLI ads.

I'm confused by this. If I run apt install, am I getting stuff from flatpak?

Yes and no, you're getting stuff form Snap, not flatpak

Even when I'm running apt directly? That seems insane.

Yep, that's why some people are so upset about it. I guess there's a config to disable it but I wouldn't know, I use Arch btw

You have to check your distros info, but from popular Linux podcasts they were claiming certain distros used the apt get but once the package manager saw what you want it would throw in a snap or flatpak of the same. Not all distros. I think Ubuntu was one.

Yes. Some packages are just meta packages for their snap versions.

1 more...

If I use ubuntu I'm somehow forced to use them.

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.

If you use the Fedora software manager it updates everything at once? It even updates BIOS firmware.

If I use ubuntu I’m somehow forced to use them.

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.

so ditch this nonsense and use a better distro?

The package manager won’t update anything installed from source.

emerge lols

4 more...

In Mint you can install flatpaks from the software manager and those get updated by the update manager. So it's all still one click.

Same on Fedora. It'll even do firmware too.

We're nowhere near the absolute shitshow that is updating the system and and programs on windows.

The individual pop up for upgrades on windows is probably the single biggest bother.. (except the Microsoft bloatware/spyware of course)

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!

1 more...

If you use a graphical tool like gnome software, it will update everything with one click on a button

And sometimes it will even work!

Oh really. I should probably try that again sometime. Usually I just choose not to roll the dice on gnome, and update through the terminal instead.

8 more...

Don't generalize whatever distro you're running as "Linux", especially when we're talking package management.

Isn't this the case with all major distros at least?

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.

Nope the major distros use about 3 different package management systems.

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.

I’ve used Linux since the 90s and I’ve never installed a flat pack or snap or whatever. They’re not required.

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 yeah. I mean wtf.

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.

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.

IBM salivating in the corner

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.

alias upgrade="sudo pacman -Syu && yay -Syu && sudo flatpak upgrade"

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

&& 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.

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.

Change is sometimes not a bad thing, you know?!

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).

#! /bin/sh
#update_everything_in_one_command.sh
set -e
apt update
apt upgrade -y
flatpak update -y

$ sudo update_everything_in_one_command

Tada!

echo -e "\nalias upgrade='sudo update_everything_in_one_command.sh'" >> ~/.bashrc

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 could have just added a swap file

And I would die of old age waiting for the compile to finish.

Swap is not "disk RAM". It's used for storing pages that go unused for extended periods of time. It's an optimization system designed to be used during normal system operations.

Technically it could solve some mild out-of-memory situations if given enough time but in practice the disk access is so slow compared to RAM that for all intents and purposes your system appears to freeze so you get bored eventually and reboot it. An attempt to compile a large application under these circumstances would last a very long time indeed.

If anything, you should disable swap in such a situation. Without swap the compile process would crash instantly when growing out of memory, with swap your system freezes.

Swap space is also used for storing a compressed dump of RAM during hybernation but that's a special case.

Yeah, I know how swap works. I'm lazy and it would accomplish the task if needed, I've done it many times before in similar situations especially on low RAM Gentoo machines.

Agreed, it's slow as fuck. It also gets the job done without going outside the package manager.

There are lots of options. You can also setup a swap file in memory that uses compression. Since swap tends to compress really well, you can allocate more memory than you have RAM and still not use slower swap on a HDD or SSD.

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?

Wow, that's exactly what I have been missing in my life. Amen, brother!

2 more...

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.

2 more...

Silverblue here with automatic updates enabled, I do not care anymore, it just works.

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 :(

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.

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.

It's not really lost ether tho, just add a simple bash alias and you are ready!

GUI interfaces like discover or gnome software will update all

Honestly, at this point I'd like to get rid of all this sandboxing stuff altogether.

I think it's a great and necessary security feature. The fact that we haven't had proper sandboxing until very recently seems strange now.

You can just use Topgrade and it'll update your entire system, including everything from your oh-my-$shell, pip, flatpak, snap etc

Topgrade is great, one of the first things I install on a new system.

just installed topgrade and wow, it's amazing. wish i knew this existed before.

I just wrote a script to do all my updates in one go:

sudo dnf upgrade -y --refresh
sudo dnf check
sudo dnf autoremove

flatpak update -y --force-remove
flatpak remove --unused --delete-data -y

pip-review --user --auto --continue-on-fail

cargo install-update -a

sudo fwupdmgr get-devices
sudo fwupdmgr refresh --force
sudo fwupdmgr get-updates
sudo fwupdmgr update

#nano /etc/systemd/system/flatpak-update.service

[Unit]
Description=Update Flatpak
After=network-online.target
Wants=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/bin/flatpak update --noninteractive --assumeyes

[Install]
WantedBy=multi-user.target

#nano /etc/systemd/system/flatpak-update.timer

[Unit]
Description=Update Flatpak

[Timer]
OnBootSec=2m
OnActiveSec=2m
OnUnitInactiveSec=24h
OnUnitActiveSec=24h
AccuracySec=1h
RandomizedDelaySec=10m

[Install]
WantedBy=timers.target

#systemctl daemon-reload

#systemctl enable --now flatpak-update.timer

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.

arch repos + aur got you covered

This. AUR packages are easy to create too. Flatpaks are only useful if you want to use something temporarily.

Especially when you also use a aur helper like yay. Also I have to do is type yay and enter my password and then everything is updated

or paru. basically like yay but slightly faster (really noticable on crappy hardware, paru searches packages like 2-3 times faster on a 5200rpm hdd)

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.

Yes we did. I miss the old system.

Also I don't like my laptop rebooting in my backpack to install updates, after I've tried to shut it down.

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 feel you. At some point distro designers decided that shutdown/reboot were suggestions instead of commands. I too have had troubles with hot backpack syndrome and it's super annoying especially when traveling. You think you're going to turn on your laptop on a plane with 100% battery ready to do some offline work and now you've got a lava hot brick with 7% battery life left.

Damn, that sounds like a really annoying issue, good luck finding a solution!

Hehe, thanks. Fortunately linux is very customizable. I'm pretty sure I can just set it to 'false' somewhere. Will google that at some point. I just have to find out what it's called so I know which words to type into google ;)

1 more...

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.

Snaps and Flatpaks auto updates automatically

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.

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.

Is it true flatpaks take up a lot more space due to bundling in dependencies etc?

The short answer is "yes, but only as much as it needs to". Flatpak had to make a decision between "do we guarantee the app will work, even with system upgrades" or "do we minimize space" and they chose the former. The minimum necessary dependencies will be installed (and shared) amongst flatpaks.

Have you had the unfortunate experience of a utility or program losing its packaged status? It's happened to me before--for example fslint. I don't think this can happen with flatpak.

Space usage under flatpak is highly overstated. It only takes a noticeable amount of storage if you only use a couple of flatpaks, cause all the dependencies are used for a single package, once you start using flatpaks as the main mean of installing "applications", the space required start to decrease because the dependencies are shared between multiple apps

Using EndeavourOS ( Arch ) and all four of those are the same versions in the regular repositories.

I agree that Flatpak is a solution to outdated packages. My preference is to use a distribution that does not have that problem to begin with.

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'm still updating the whole system with one command. Just avoid flatpaks. Repackage for your distro if you need to.

@mfat I don't have snap or flatpak installed in any of my systems, therefore my entire system is still all upgraded with a single command....

just stick to your distro packages man

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.

I guess my method is a bit less robust.

ime they just break in different ways. pacman's easier to hack around but nix is more portable

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.

Thanks for the explanation! I always wondered why would describe hooks so trivially. I'm still bleaching my brain of the Windows habits I developed from lifs-long usage.

I looked a little more into hooks, and am curious if a patch can kind of be like a hook? Where you create a config file that has symlinks to all the executables like you mentioned? Still a noob when it comes to software creation :D

[Can] a patch can kind of be like a hook?

In the free software world, a patch usually describes a file that lists lines to be added to or removed from another file (or multiple files). The most common use for this is probably with actual source code.

Binary (non-text) patches are also possible, and in Windows a software bug-fix "patch" would likely be mostly binary. In the free software world, it's uncommon to use binary patches for updates; instead the source is patched (either in the main upstream project or by a distribution) and a new binary package is built and published.

Where you create a config file that has symlinks to all the executables like you mentioned?

I don't really understand how those two questions relate, so I may not be able to give you a good answer. Often a configuration file has a variable=value structure, but it would certainly possible to have a list of file paths in a configuration. However, this might instead be implemented as an actual directory (like ~/.config/app/pre-hook.d/) where each executable file in that directory is executed by the "pre" hook in the app. (Configuration directories often work very similarly also.)

Whether the paths are symlinks is likely to be irrelevant, as this is more a filesystem level feature that would often be ignored entirely by the application.

I hope this is helpful.

Meanwhile Arch users are just using the AUR for everything.

I don't use Arch btw, but I'm thinking I should.

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.

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.

Just don't use Ubuntu and don't use flatpacks

I use Fedora and many of the apps featured on it's default app store have turned out to be flatpaks.

If you use its graphical software manager to install apps then why not just use it to update then with a single click.

You can definitely make an alias for this if all you want is a single command.

PS. I don't think what you describe is a killer feature.

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

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?

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.

alias update='sudo fetchmirrors -q -s 5 -v -c PT && yes | topgrade -c -y --no-retry --disable gem --disable vim --disable emacs --disable gem --disable sdkman --disable rustup --disable cargo --disable remotes && sudo paccache -rk 0'

Fully agreed with the usefulness of topgrade.

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.

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.

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.

I update all of my flatpaks, snaps, and dnfs(?) with the click of a button in GNOME Software.

Edit: apparently I stopped using snaps at some point. Still, GNOME Software does both my flatpaks and my regular stuff.

Same, on my Debian machines I barely even think about if packages are debs or flatpaks because it's so seamless.

We can no longer do that thanks to Flatpaks and Snaps as well as AppImages.

That is a you-problem to be honest. If updating the system needs more than one command, then something is wrong with the distribution.

If you install applications using something else thatn the system's package manager, you need to take care of them by yourself, too.

Also:

alias update='pacman -Syu && flatpak update && flatpak remove --unused --delete-data && snap refresh'

AppImages need to be updated individually, but AppImages suck anyways.

Flatpaks have crappy names and a crappy CLI. Snaps just suck, and AppImages need a package manager.

No. (Or maybe yes. See Edit)

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.

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

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.

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.

I can still do that, because I understood that problem when it arose.

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)

To still sorta replicate that, I just set up a script at /usr/local/bin/update for it:

#!/usr/bin/env bash

sudo emaint sync -a &&
sudo emerge -utDU @world &&
sudo emerge -c;
flatpak --user update;
doom upgrade &&
doom sync &&
doom purge

What?! No! How could this have been Linux's "killer feature"?

Am I taking crazy pills? It really matters to you that you can use a single command to upgrade your system?

To me the Linux killer feature is getting to be the true owner of the hardware. Any command you run can succeed if you know how to write it

Killer feature, no.

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.

1 more...

On Mint everything updates automatically for me, Flatpaks and all.

you could use topgrade to update, and it will generally update with every package manager available.

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.

On Arch Linux I've migrated away from Flatpaks, so I only use AUR and official repos.

Oh boy my updates speed increased like 3 to 5 times. Flatpak is slow as fuck.

Also my ISP is slow as fuck.

Guess what, Flatpaks have delta updates (a criminally underrated feature) so all things equal, updates are technically faster than pacman.

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. 🤷

Arch has more mirrors for sure. But my point was on delta updates which technically make updating flatpaks faster and less bandwidth consuming, runtimes aside.

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.

Well, are you in pro of flatpaks or against flatpaks?

Why compare what OP described to flatpaks, instead of the "killer features" you so miss?

Yeah that's why I don't use discover to do the actual updating. I just manually run my flatpak updates when discover tells me there are some.

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.

I will never use dd unless absolutely necessary. People call it disk destroyer for a reason

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 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.

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)

I'm using MX Linux and don't use any flatpak or snaps, only good old debs

No need to overcomplicate things, just write a small shell script or even just an alias. I use this daily:

alias get-rekt="sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y && flatpak update -y && flatpak remove --unused --delete-data -y"

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

"no need to overcomplicate things, just write a complicated alias"

This is the way of the system administrator. You do a boring task once, even if it takes longer. The time saved accumulates over time.

Aliases are your friends.

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

Fedora updates flatpaks automatically, system updates too, but you need to reboot. Which Fedora version do you use?

I think a script with apt/pacman/dnf etc., flatpak update can do the job as well?

IMO its against the unix vision to extend apt to manage flatpak as well.

I use one command to upgrade the whole system: paru one one system and yay on the other laptop.

Yeah, flatpaks are a pain in the ass. So glad that I don't have to use them since switching to Arch.

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.

If you want a single command, consider topgrade. Not sure if it supports Flatpak and Snaps yet, as I do not use those (yet).

It's wild what can be done with some clever aliases. Linux is better now than ever before.

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...

Snap forces updates, and you cannot disable them. So if you use snaps, I guess you can stop worrying and keep going with your usual apt routine.

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

I get 99% of my packages via nix and the other 1% through appimages which I can put anywhere I like on my disk

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.

🎶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.

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 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

I use Fedora for work, but ArchLinux at home. If you really want to skip flatpak then you need the AUR.

Is it possible to bring back that experience? A unified, reliable CLI solution to make sure EVERYTHING is up to date?

Yes. Use a Linux distro that doesn't use flatpacks and you're good to go.

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?

What a weird question, also that was never the case in the first place. You can still accomplish this with a simple bash script too.

Huh, I stopped using Linux long ago, and I hardly understand any of the issues you are facing... can someone ELI5?

Packages are native to the distribution you are using.

All the other are apps packaged as all in one mini containers.

Your software manager should be capable of handling all this in a fairly reasonable way.

You may want to research this topic a bit, but use whatever works and don't read too much into these nerd discussions.

Recently there's been a push on Linux for containerized "apps" that come bundled with their dependencies windows style. Ubuntu has been the one really pushing this with their implementation called "snaps" which has made a lot of people very angry and is widely regarded as a bad idea.