Flatpack, appimage, snaps..
Appimage for me ticks all the boxes for cross distro package as its very portable, simple to run, what are devs trying to do when creating snaps and flatpack?
Appimage for me ticks all the boxes for cross distro package as its very portable, simple to run, what are devs trying to do when creating snaps and flatpack?
helenslunch, (edited ) AppImages suck because I can’t pin them to my dashboard, can’t set them to open at startup and can’t set them as default apps for the appropriate filetypes.
bjwest, I think AppImages suck as well, but this is not a reason for my dislike. A simple script that you can run on startup will fix that problem.
helenslunch, (edited ) Okay well. I don’t have a script. I just use a computer.
If I need a script to make it work properly, it sucks.
bjwest, You realize your computer won’t work without scripts, don’t you? And if you want your computer to do something it doesn’t do on its own, a simple script will make it do what you want. If that is your definition of sucking, then you need to go back to Windows, which is also loaded with scripts, by the way, so that sucks too.
helenslunch, You realize your computer won’t work without scripts, don’t you?
No, I don’t. In fact every Windows, Android or Mac computer I’ve used in my entire life works perfectly fine without manually running any scripts at all.
Squid, (edited ) Use appimagelauncher Application that will add appimages to application menu
Fleppensteijn, I like appimages because I can install them where I want and you can just make a symlink in the bin folder.
helenslunch, You can’t install them at all
isVeryLoud, Use Gear Lever.
helenslunch, No.
isVeryLoud, Care to elaborate?
helenslunch, I don’t know what it is and don’t care. I’m tired of jumping through hoops just to install the software I need.
isVeryLoud, Good talk
Max_P, Distro packages and to some extent Flatpaks, use shared libraries which can be updated independently of your app.
So for example, if a vulnerability is discovered in say, curl, or imagemagick, ffmpeg or whatever library an app is using: for AppImages, this won’t be fixed until you update all of your AppImages. In Flatpak, it usually can be updated as part of a dependency, or distributed as a rebuild and update of the Flatpak. With distro packages, you can usually update the library itself and be done with it already.
AppImages are convenient for the user in that you can easily store them, move them, keep old versions around forever easily. It still doesn’t guarantee it’ll still run in distros a couple years for now, it guarantees that a given version will forever be vulnerable if any of its dependencies are because they’re bundled in, it makes packages that are much much bigger than they need to be, and you have to unpack/repack them if you need library shims.
Different kinds of tradeoffs and goals, essentially. Flatpak happens to be a compromise a lot of people agree on as it provides a set of distro-agnostic libraries while also not shifting the burden entirely onto the app developers. The AppImage developer is intentionally keeping Wayland broken on AppImage because he hates it and wants to fulfil his narrative that Wayland is a broken mess that won’t ever work, while Flatpak developers work hard on sandboxing and security and granular permission systems.
vikingtons, (edited ) I had no idea about Appimage’s stance on Wayland. That’s very unfortunate.
E: Here’s what I’ve come across so far: linuxgamingcentral.com/…/appimage-dev-rejects-way…
lemmyvore, Lol that reads like a squabble between 12yr olds. “He said there’s tearing in Intel but my friend told me that’s not true.”
Max_P, It is very unfortunate. It’s fine to point out problems, but then when you become part of the problem, that’s not amazing.
He’s had the same meltdown with fuse2 being deprecated in favor of fuse3 which, guess what, also broke AppImage and we had a huge rant for that too.
Flatpak has a better chance of being forward compatible for the foreseeable future. Linux generally isn’t a very ABI/API compatible platform because for the most part you’re expected to be able to patch and recompile whatever you might want.
isVeryLoud, AppImages are a good idea, but its dev is a top tier moron.
PerogiBoi, (edited ) Just download .exes for windows and run them with WINE. Don’t have a single snap or flatpack application. If it doesn’t run then u didn’t need it in the first place 👉😎👉
Edit: someone DMed me and took this comment seriously. Bless ur heart
lemmy_nightmare, 🤣
Squid, You should quit in “satire”
PerogiBoi, No
Squid, Calm down ok
PerogiBoi, My dude I have always been calm haha
brax, I hate all three. Why do we need to the same dependencies in a thousand different places? There’s gotta be something better between typical software repos and these stupid packed applications.
superbirra, debian repos are ok w/o using all this shit
subwoofer, Flatpaks work by using a shared runtime, you don’t have the same dependencies in a thousand different places
ExtremeDullard, Aah yes, appimage, flatpak, snaps, progressive web apps, electron apps… The cross-compatibility of the lazy 21st century developer, where a simple IRC-like chat client comes with an entire operating system or an entire browser (which itself is an entire operating system too nowadays), takes up half a gig of disk space, and starts up in over 10 seconds with a multi-gigahertz multicore CPU.
Just perfect…
jack, Ok boomer
Squid, Its a massive industry problem where code is so much more heavier where devs are reliant on brut hardware force rather than refining code to be light.
Not boomer sentiment at all
Joker, It’s been that way since the dawn of computing. Developers will push hardware to its limits and the hardware people will keep making a faster chip. A lot of software was laggy as hell back in the day. Not to mention, it didn’t have any features compared to the stuff now. Plus our shit would crash all the time and take down the whole PC. Sure, you run across some shockingly fast and good apps but those have always been few and far between.
TheAnonymouseJoker, Here is a revolutionising idea. Hear me out.
Use anything you want, because all of them are safe and speedy.
Flatpaks allow packaging together all dependencies with specific versions with the package. Snaps take it to the next level by allowing to run system integrated sandboxed programs, because Flatpaks cannot have system integration. Appimages are simply the equivalent of portable USB software on Windows.
helenslunch, Use anything you want
This is literally never helpful advice.
TheAnonymouseJoker, Far more helpful than creating religious cults around software tools.
helenslunch, There is no “religious cult”. Just users who want a better experience.
TheAnonymouseJoker, That is not how it works though, because I have been a part of these religious cults for basically forever. The hobbyist enthusiasm has a threshold, the cultism does not. It is animalistic nature to form and live as tribes. It does not become different just because the congregation tool is virtual instead of real.
liberatedGuy, It is in human nature to keep improving the state of things.
Squid, Hard disagree there. Look to capitalism
TheAnonymouseJoker, Capitalism is not human nature. It is formulated around abuse of human psychology. The documentary Century Of The Self by Adam Curtis will be something you love.
Squid, If software is influenced by human nature then its not a stretch to apply the same philosophy to political systems
TheAnonymouseJoker, Except Western imperialist countries have exploited hundreds of trillions of dollars from rest of the world, kept them subjugated for centuries, causing these luxurious software development cultures to not formulate in them. You are falsely equating software and politics being affected similarly and to a similar degree.
redd, But where to get the AppImages from? Who’s maintaining? How to do Security Vulnerality Tracking for them?
Squid, Usually projects on github. Personally I use Appimages for things like Mypaint a digital drawing application, krita and most other KDE applications as to avoid all the dependency’s KDE has in its eco system or at least to put them somewhere easier to manage
people_are_cute, The best of them all, αcτµαlly pδrταblε εxεcµταblε.
Build once, run natively on literally any PC OS including Windows and MacOS!
Squid, Interesting read, love stuff like this but it seems they’d be a lot of dev overhead to truly make something large and agnostic but still gotta commend it!
avidamoeba, (edited ) Software deployment that tackles dependency hell in a secure fashion while providing repeatable, atomic updates and rollback.
AppImage doesn’t even provide a proper update system.
MonkderZweite, There’s software for that. Honestly, i prefer that over the ‘whole package or nothing’ approach in Flatpack, which still has ~/.var for packages hardcoded btw.
rutrum, Can you elaborate on update system? AppImage is just a format, right? Whereas flatpak is a format and an entire toolkit for downloading and running flatpaks.
avidamoeba, (edited ) You already said it. Flatpak and Snap both include an entire system around updates and rollback which provide some pretty strong guarantees for update success. AppImage does not. It’s got some libs available that an individual developer could use to implement their own update mechanism but isn’t a built-in. And besides, without a system-level component that manages install/update/rollback, you can’t have any guarantees about the update process. You’re back to the Windows-world per-app
update.exe
paradigm (orupdate.sh
in Linux).
Limitless_screaming, Flatpaks have the concept of runtimes; instead of downloading the entire qt tooling for a qt app the app could just use the KDE runtime same goes for GTK with the Gnome runtime. Flatpaks also have dependencies which can be shared between multiple apps even when they are not part of their runtimes, they are called "baseapps". Flatpak apps still use double the space my normal apps take on a fresh install, so I assume using appimages to replace them will leave no space on my SSD.
Before deciding to settle on using Flatpak I tried to search for appimage permissions and how to set them, but it seems there is no such thing? If that's true then there's another advantage for Flatpaks and Snaps.
Also with all due respect: Flatpak and Snap tooling are not maintained by Probonodb.
djtech, (edited ) What do you mean by AppImage permissions? A sandboxing feature like “access only those directories, those /dev devices, …”
EDIT: obviously this isn’t just for AppImage, but I tested it with AppImage and it work well. Another tip: if you want a package manager for managing AppImage installations try zap (github.com/srevinsaju/zap)
In that case, take a look at bubblejail. (github.com/igo95862/bubblejail)
daq, My problem with appimage is that they never work. Every time I tried one, best case scenario it crashed with a random error message. All attempts to fix them were damn near impossible to debug.
It honestly felt like they were not universal enough and still relied on certain libraries being available on OS. Hopefully I’m wrong because that would completely defeat their purpose. I stopped wasting time on them after Plex and VLC both failed to run reliably and switched to flatpak that “just works” 100% of the time.
To be honest most of the time I look for an rpm anyway. Flatpaks are always a last resort. I’m on OpenSuse Tumbleweed.
pavunkissa, This was my experience as well as a developer trying to package an application as an appimage. Creating an appimage that works on your machine is easy. Creating one that actually works on other distros can be damn near impossible unless everything is statically linked and self contained in the first place. In contrast, flatpak’s developer experience is much easier and if it runs, you can be pretty sure it runs elsewhere as well.
Static_Rocket, This may be a little bias but this is my understanding:
Flatpaks were the solution for reducing the duplication in Appimages and providing an automated way to do security updates. Flatpak got a chance to learn from Snap.
Snaps are basically a proprietary approach to creating and distributing Appimages that were created prior to the current Appimage tooling. They got to learn from the first generation of Appimages and decided to deviate from them early on.
Appimages were a stupid simple approach to a complex issue. Initial tooling was rough though and a lot of people, while they liked the idea, hated the requirements. Basically setting up an Ubuntu 18.04 environment for packaging was the only way to guarantee a truly portable image.
It left room for improvement and so decisions were made to try and fill that room. They were never bad, and devs weren’t really trying to do anything other than simplify the creation and distribution of existing Appimage functionality.
I still think flatpaks are the closest to the ideal solution but again, I’m biased.
mp3, I suppose FlatHub is the primary repo for Flatpak and where the updates comes from?
And also the Steam Deck natively supports them, which is noce.
Carter, Flatpaks are a lot easier than appimages though I still default to my distros native packages if available.
IverCoder, IMO Flatpak is the best of them all. I don’t want to bother with repo packages that have complete and unnecessary access to my system. Flatpak neatly installs an app and isolates it, and if I no longer want it I can just easily click “Uninstall” on my Settings app without it leaving a mess or any trace behind, unlike repo packages that manage to screw something as simple as uninstalling itself.
mcepl, (edited ) youtu.be/4WuYGcs0t6I (Richard Brown (FOSDEM 2023): “I was wrong about Flatpak, AppImage, and Snap”)
Add comment