697
Fan of Flatpaks ...or Not?
(lemmy.ml)
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.
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
Certainly a fan, and I don't understand the hate towards it.
Flatpaks are my preferred way of installing Linux apps, unless it is a system package, or something that genuinely requires extensive permissions like a VPN client, or something many other apps depend on like Wine.
The commonly cited issues with Flatpaks are:
What you gain for it? Everything.
Alternatives?
AppImages don't need an installation, so they are nice to see what the program is about. But for other uses, they are garbage-tier. Somehow they manage both not to integrate with the system and not be sandboxed, you need manual intervention or additional tools to at least update them/add to application menu, and ultimately, they depend on one file somewhere. This is extremely unreliable and one should likely never use AppImages for anything but "use and delete".
Snaps...aside from all the controversy about Snap Store being proprietary and Ubuntu shoving snaps down people's throats, they were just never originally developed with desktop applications in mind. As a result, Snaps are commonly so much slower and bulkier that it actually starts getting very noticeable. Permissions are also way less detailed, meaning you can't set apps up with minimum permissions for your use case.
This all leaves us with one King:
And it is Flatpak.
I've been working on Linux for 15 years now and I perfectly remember the origin of many concepts. If you look at it through time, what would it be like:
Well, all I can say about this is just assemble a single binary for all applications, stop doing nonsense with a flatpack/snap/etc.
UPD: or if you really want to break all the conventions, just use nixos. You don't need snap/flatpack/etc.
Flatpak is not single binary, Flatpaks have shared runtime (For example Freedesktop, GNOME, KDE runtimes)
Provided that flatpack has a common parent container, which is not always the case. More precisely, it almost never does. Because someone updates flatpack to new versions of the parent containers, and someone else does not.
I don't know any flatpak in my system that don't use runtime (I have around 50 flatpak apps installed), or am I misunderstanding your point
runtime have versions too. If one runtime version use only one flatpack than exactly same as just static linking binary. Flatpack have just docker layeredfs and firejail in base.
id: org.gnome.Dictionary runtime: org.gnome.Platform runtime-version: '45' <- here sdk: org.gnome.Sdk command: gnome-dictionary
for some reason, i have both gnome platform 46 and gnome platform 47 installed in my system. that's probably it
I see problem in that only in unmaintained apps (like org.gnome.Dictionary), I have only GNOME 47 & 48 for example and both of them still updating
In the initial stage of shared library support, everything was exactly the same. Let's look at it in 5 years... When some soft will archived and die, some stop maintaining, some new crated and brakes old dependencies...
Old guy here too, used un*x before linux existed in the 90s. I still use a Debian based distro (MX) without systemd and no snap/flatpak/whatever. Just build/compile or install .deb and dependencies. Lastly unfortunately I had to install a flatpak to test "deskflow", the first time I installed one, I feel dirty now :-(
I don't mind other solutions, as long as they have the key features Flatpak offers, namely:
Times are changing, and memory constraints for most programs are generally not relevant anymore.
But there are gaps in the libraries that, unlike distributions with dependencies, can no longer be managed. And all the security of your system depends on a small flatpack access control, which 99% of users do not understand at all and, with any problems simply opens access to the entire home directory.
I'm not saying Flatpak is perfect, but it appears to be the best we have.
I absolutely agree more needs to be done to explain permissions and have sane defaults. Flatseal in particular could introduce more warnings, and this is where non-technical users set their permissions.
In my experience, most Flatpaks do not request full home folder access by default, and making Flatpak access everything everywhere typically requires user intervention.
Native apps, meanwhile, just run with full system-wide access; I get it that they're more vetted and more properly updated, but this is an unhealthy and insecure arrangement.
this is a system for work tasks. Of course, I understand what the developers are going for. that is Android. And it's really nice to read the Internet on android. But try to do something more complicated than that and you'll realize that it's hell. However, I don't mind if such distributions appear. Why not? I just don't understand people who voluntarily limit their abilities. And why you don't just install Android 64?
The flatpack approach automatically remove everything low-level from the equation. Do you want to write directly to the graphics card buffer? Read the input? Do I set the fan rotation parameters directly in the /proc? All these applications will never work in flat pack.
On the other hand, flatpack is superfluous and for convenience. You can simply build an executable file without dependencies and configure firejail for it yourself... That's all. Or run the file from another user. That is so popular exactly bacause RedHat pushed them. Literaly like Canonical pushed snap.
They don't have to! Flatpak doesn't remove all other ways to install software. But for 95% of use cases, it will do just fine.
Firejail is good, but it only solves sandboxing part of the equation, and there's so much more to Flatpaks than that. Also, it's more painful to configure and is more sysadmin-oriented.
Tell this to canonical, they even firefox put in the snap. You know that when choosing "quickly compile something for a flatpack" and "support 10+ distributions", the developers will choose a flatpack. Which in general looks fine, until you realize that everything is just scored on the mainline of libraries and molded on anything. The most striking example of this is Linphone. just try to compile it...
Snap is cancer, and what Canonical does is insane.
In any case, it is unlikely someone will make an exclusive Flatpak for what doesn't work inside Flatpak. But I understand it means a lot for user choice and ability to compile programs they way you want, so I fully support shipping Flatpaks alongside classical packages and source code.
The few things I don't like about flatpaks (which become a problem on atomic distros that use almost all flatpak by design):
Some types of embedded development is essentially impossible with flatpaks. Try getting the J-link software connected with nrftools and then everything linked to VScodium/codeoss
Digital signing simply doesn't work, won't work for the foreseeable future, and is not planned to get working,
Flatpaks sometimes have bugs for no reasons when their package-manager counterparts don't (e.g. in KiCAD 8.0, the upper 20% or so of dialog boxes were unclickable with the mouse, but I could select and modify them with the keyboard, only the flatpak version)
The status on whether it is still being actively developed or not (at least I hear a fair amount of drama surrounding it)
But besides those small things, it seem great to me.
Thanks for the input! Yes, there are still certain issues with Flatpaks (for me it was aforementioned VPNs which also don't work through Distrobox, and it would be quite odd anyway). But overall, they manage most apps well, just as you say.
Well a 10mb app could take 20 but what about a 1gb one?
It would take 1,01gb
Dependencies typically take 5-80 megabytes of space.
That's just not true. I used to use flatpak and it would download nvidia drivers for each one.
Huh?
Either it did something it shouldn't, or the system updated Nvidia drivers every time for no apparent reason. I have an Nvidia GPU, running proprietary drivers, and haven't ever witnessed anything of the kind.
Changed my mind. Thanks.
Gimp is a gigabyte larger as a flatpak
Wow that's actually big difference, thanks for bringing it up!
Good news, though, is that you are free to install Gimp as a native package, and use Flatpaks for the rest.
That's made up, GIMP is like 90MB you can see it listed on the website and confirm it by installing it: https://flathub.org/apps/org.gimp.GIMP
Flatpaks, appimages, snaps, etc: why download dependencies once when you can download them every time and bloat your system? Also, heaving to list installed flatpaks and run them is dumb too, why aren't they proper executables? "flatpak run com.thisIsDumb.fuckinEh" instead of just ./fuckinEh
No thanks. I'll stick to repos and manually compiling software before I seek out a flatpak or the like.
This shit is why hobbies and things should be gatekept. Just look at how shit PC design is these days. Now they're coming after the OS.
As I said, dependencies typically don't take that much space. We're not in the '80s, I can spare some megabytes to ensure my system runs smoothly and is managed well.
As per naming, I agree, but barely anyone uses command line to install Flatpaks, as they are primarily meant for desktop use. In GUI, Flatpaks are shown as any other package, and all it takes is to push "Install" button.
If you want to enjoy your chad geeky Linux, you still can. Go for CachyOS, or anything more obscure, never to use Flatpaks again. At the same time, let others use what is good and convenient to them.
And then it turns out that you have 18 libssl libraries in diffirent fpatpacks, and half of them contain a critical vulnerability that any website on the Internet can use to hack your PC. How much do you trust the limitations of flatpack apps? are you sure that a random hacker won't hack your OBS web plugin and encrypt your entire fpatpack partition (which some "very smart" distributions even stuff office into, and your work files will be hidden there). People have come up with external dependencies for a reason.
Fair criticism!
However, the extent of the damage is limited by flatpak and whatever permissions you have set, and, if I understand it correctly, you cannot attack one flatpak through the other unless they share access to some files.
Also, I haven't seen this kind of attack in the wild (maybe I'm not informed enough?) as opposed to rogue maintainers injecting malware into packages.
On an unrelated note: apparently, there is finally some Russian Lemmy instance? That's a welcome change.
there is a problem here that permissions are also set by the packages developers. User in most cases click accept all and alll done.
Well... Appeared 2 years ago. It's just that practically no one needs it. =)
True, and I don't think it is healthy not to let them to. But it would be nice to either have some vetting on the matter, or ask user about which permissions they agree for when they install Flatpak.
Ого, то есть примерно когда я сам здесь очутился. Никогда не слышал о ру инстансах, хоть и искал. Теперь, кажется, нашёл)
Берёте человечка на борт? Не обещаю сделать Рекабу главным инстансом, но всегда полезно быть по обе стороны Чебурнета, а то последнее время с забугорными беды бывают.
Do all laptops users have this option? Also you keep saying megabytes when it's never just a few megabytes. It downloads atleast a few gbs worth of data just for one gui app.
Please clarify, what option do you mean? Flatpaks are supported on any Linux system, it doesn't matter what distro or hardware. Or if you mean sparing some megabytes - typically yes as well. The smallest amount of memory I've seen on a laptop is 32gb, and typically it's no less than 250gb.
If it's not present in you distributions' app store, you can either enable it somewhere or download another app manager like Discover, GNOME Software, or pamac if you're on Arch.
If installation of some app incurs a few gbs of downloads, it is likely that your system updates packages alongside installing your app. Typical Flatpak app takes 10-150 megabytes.
Every gb matters on a 250gb laptop lol
Gigabyte - sure, but it's not typical for a flatpak to bring so many heavy dependencies.
Not true lmfao