this post was submitted on 25 Jun 2024
168 points (95.7% liked)
Linux
46819 readers
1089 users here now
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Flatpak is not the future
./configure && make && sudo make install
is not the futureWell... of course only time will tell, but the fact that we've been doing that for sooo long... (me for ~20 years?) would imply that it might just be around for longer than snap/flatpak/etc
Of course, sometimes it's disguised as
yay -S
...What is ?
I'd say flatpak isn't the future because it's already here and seems to be universally accepted as the cross-distro package manager.
I do like how the Nix package manager handles dependencies, but it's not suitable for app developers packaging their own apps because of its complexity.
If a better flatpak comes around I'd use it too, but at least for graphical apps I don't know what it'd have to do to be better. In my opinion, flatpak is a prime example of good enough, but not perfect and I'd be surprised if there was a different tool with the same momentum in 15 years (except snap, but they seem too Ubuntu specific).
For what it is worth you can install Snap on most distros. https://snapcraft.io/docs/installing-snapd
Snap is a cesspool for malware and shovel ware. The best apps are packaged by Canonical. Also, when people still cared about Snap, there were frequent reports of incompatibilities because it was developed with Ubuntu in mind.
but you shouldnt because snap's "strict confinement' sandbox feature does not work without the legacy patches to Apparmor that ubuntu uses.
Snap is shit. I started using flatpak because apt didn't support apps that I wanted and snap only supported ancient releases. .deb is annoying too and .appimage I don't like to have the files hanging there
Ubuntu may have convinced some proprietary developers, but Snaps are shit and devs know that I think
I left Ubuntu when apt wouldn't let me install a native package. It just would redirect to a broken snap.
Apt or distro package manager of choice.
No, APT is the past 20 years.
They lack packages
Use arch with AUR, and cross your fingers that at least someone checks the changes. I sure don't.
Those need root and don't isolate apps from the base system
Yet curiously they're far more secure. Huh.
No they aren't
It completely invalidates the Android security model if something can arbitrarily bypass restrictions.
Thankfully we don't have to follow the dumb Android security model on desktops.
on Qubes we still have security through compartmentalization, yet all systems have root access (even passwordless sudo)
No idea
it sure seems like it though
i mean, they'll never replace system package manager, but for desktop applications, flatpak is honestly quite good
(Not incredibly educated on Flatpaks, please educate me if I'm wrong) My main issue with Flatpak is the bundled dependancies. I really prefer packages to come bundled with the absolute bare minimum, as part of the main appeal of Linux for me is the shared system wide dependancies. Flatpak sort of seems to throw that ideology out the window.
Let me ask this (genuinely asking, I'm not a software developer and I'm curious why this isn't a common practice), why aren't "portable" builds of software more common? Ie, just a folder with the executable that you can run from anywhere? Would these in theory also need to come bundled with any needed dependancies? Or could they simply be told to seek out the ones already installed on the system? Or would this just depend on the software?
I ask this because in my mind, a portable build of a piece of software seems like the perfect middle ground between a native, distro specific build and a specialized universal packaging method like Flatpak.
well, the point of flatpak is to have bundled dependencies so they run predictably no matter the distro
if one of your software's dependency gets updated, and your software isn't, you may run into issues - like a function from the library you're using getting removed, or its behaviour changing slightly. and some distros may also apply patches to some of their library that breaks stuff too!
often, with complex libraries, even when you check the version number, you may have behavioural differences between distros depending on the compile flags used (i.e. some features being disabled, etc.)
so, while in theory portable builds work, for them to be practical, they most often are statically linked (all the dependencies get built into the executable - no relying on system libraries). and that comes with a huge size penalty, even when compared to flatpaks, as those do have some shared dependencies between flatpaks! you can for example request to depend on a specific version of the
freedesktop SDK
, which will provide you with a bunch of standard linux tools, and that'll only get installed once for every package you have that uses itwrong answer sound