16
Is linglong universal package format any good
(www.deepin.org)
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
Maybe. But they, and many others overestimate the amount of size flatpaks take up.
Flatpaks use a "runtime", a shared set of libraries and programs flatpak apps use. With one flatpak app, there is just one runtime. But with 2, 3, 10 flatpak apps, there are still only going to be 1 (to 3) runtimes on the system. This is not the same for something like appimage.
In the blog, they compare the size of deepin calculator across formats. But this is not a fair comparison. A more fair comparison would involve comparing the app size without the runtime, or comparing many apps installed.
In addition to this, if you are on btrfs, further deduplication and compression is done. This (and symlinks) won't show up in many disk and space usage analysis tools. To get a more accurate measure, use
compsizeinstead of traditional tools. It will show you how much transparent compression (when btrfs compresses files but you can stilll access them normally), symlimks and the like are saving space.Anyway, I am interested in more cross distro package managers though. Flatpak, docker, and nix cover a lot of things but have their annoying edge cases and paper cuts, especially in comparison to snap in some ways for some apps.
Edit: linglong appears to reuse system libraries, which would probably lead to significanr space savings at the cost of portability across distros
I'm still pretty new to
nix- I've only recently started experimenting within a NixOS-loaded VM. So, please pardon me for my ignorance. But would you be so kind to point me towards its "annoying edge cases and paper cuts especially in comparison to snap in some ways for some apps"? Thank you in advance :) !I use nix to get many cli apps (on arch/cachyos), but the flakes and non flakes split makes things very tough, and causes this annoying documentation split. And then certain things can only be done via flakes and vice versa.
I try to limit my use of nix to using home manager to ONLY install packages, but even then there are annoying things.
Like for example, many users may gravitate towards nix-env for installing packages, not understanding that oops, you aren't actually supposed to use nix-env. nix profile install is better and more supported, but it's flakes only. Flakes are off by default, and must explicitly be enabled because they are still "experimental" despite them being extremely popular. The official documentation is often hesitant to touch flakes because of this, so there is this horrific documentation split where a bunch of different unofficial docs cover flakes in varying manners.
Or, another thing is that nix apps on non nix distros have no gpu access/hardware acceleration. I have a home manager config to enable that: https://github.com/moonpiedumplings/home-manager/blob/main/home.nix#L32
And then I couldn't figure out how to make that work on aarch64 (asahi) so I just had to disable it,
But it is something that is insane to make someone learn how to do for just installing programs. But the latter issue doesn't affect nixos.
Anyway, I like nix. I use home manager, but for packages only, and I use it for my development environments.
Thank you very much for the elaborate answer!
If I'd have to distill your points, they mostly seem related to documention. Which is unfortunate. Would you say that's a fair take?
Yes. Nix is fine as long as you do "supported" things. But the moment you step outside of that, it's a nightmare and you have to be or consult an expert.
The lack of gpu acceleration is a dealbraker for making nix a flatpak alternative. And you can get it working but then it breaks the desktop integration unless you do more work and yeah.
1 runtime is ≈1gb
24.08 1gb
2xQt 250 mb
2xGNOME 250 mb
25.08 1 gb
2xQt 250 mb
2xGNOME 250
It gets big fast.
If you have one app with outdated runtime it is additional 1 gb for just runtime. If you rely mostly on system packages most packages you install from flatpak will have additional weight of 1 gb runtime. So you can get app which weights 4mb with runtime which weight 250 more than app itself.
And other flatpak repos use other runtimes for example fedora.
Appimages weight much less but lack sandboxing.
I hadn't tried nix but it also lacks sandboxing.
Were these numbers generated using compsize or a similar tool that asseses deduplication, symlinks, and compression properly?
I get much different numbers than I use one or the other.
gdu:
compsize:
Only 2 gb's are actually being used, even though some tools might be reporting 6.4 gb.
And this is with these runtimes installed:
Except for the fact that the runtime is reused across apps, meaning that another app which uses up that runtime won't be taking up any extra space.
You can sandbox them with something like firejail or bubblewrap.
Similar, you can sandbox with bubblewrap. But you gotta write nix code to do it because ofc:
https://github.com/fgaz/nix-bubblewrap , https://github.com/nixpak/nixpak , https://sr.ht/~alexdavid/jail.nix/
I've tried to use them before though, definitely not as easy as flatpak's flatseal sandboxing in comparison. Also, nix apps on non nix distros aren't GPU accelerated.