Disclaimer

Flatpak uses OSTree, like Fedora Atomic Desktops (Silverblue, Kinoite etc) and similar to BTRFS snapshots.

So many files are deduplicated and linked, not actually there

https://gitlab.com/TheEvilSkeleton/flatpak-dedup-checker

50GB without
31GB with deduplication
21,4GB with BTRFS compression
  • Ananace@lemmy.ananace.dev
    link
    fedilink
    arrow-up
    43
    arrow-down
    2
    ·
    1 year ago

    A lot of that data doesn’t actually exist, ostree hardlinks data blobs internally, so the actual size on disk is much smaller than most disk usage tools will show.

    • Pantherina@feddit.deOP
      link
      fedilink
      arrow-up
      14
      arrow-down
      1
      ·
      1 year ago

      Thanks! The same goes for ostree system versions and BTRFS snapshots probably.

      I have a similar problem with virt-manager and I think that doesnt create dynamically allocated qcow2 containers?

      • Ananace@lemmy.ananace.dev
        link
        fedilink
        arrow-up
        16
        ·
        edit-2
        1 year ago

        Flatpak uses OSTree - a git-like system for storing and transferring binary data (commonly referred to as ‘blobs’), and that system works by addressing such blobs by hashes of their content, using Linux hardlinks (multiple inodes all referring to the same disk blocks) to refer to the same data everywhere it’s used.

        So basically, whenever Flatpak tells OSTree to download something, it will only ever store only copy of that same object (.so-file, binary, font, etc), regardless of how many times it’s used by applications across the install.
        Note that this only happens internally in the OSTree repo - i.e. /var/lib/flatpak or ~/.local/share/flatpak, so if you have multiple separate Flatpak installations on your system then they can’t automagically de-duplicate data between each other.

    • Pantherina@feddit.deOP
      link
      fedilink
      arrow-up
      15
      ·
      edit-2
      1 year ago

      Thanks!

      50GB without
      31GB with deduplication
      21,4GB with BTRFS compression
      

      And I have to say I have many apps. Not as many anymore, and no EOL runtimes apart Onionshare anymore.

  • Still@programming.dev
    link
    fedilink
    arrow-up
    17
    ·
    1 year ago

    I think at one point I had like 2.5 tb of stuff stored on my 2 tb drive in my laptop, deduplication and btrfs compression is fun

  • DangerousInternet@lemmy.world
    link
    fedilink
    arrow-up
    19
    arrow-down
    3
    ·
    edit-2
    1 year ago

    Do you know, that Silverblue installed is less than 6gb? Compare with other distros. Now 60 flatpak apps + os will make same 20gb, as other distros fresh install is about.

      • DangerousInternet@lemmy.world
        link
        fedilink
        arrow-up
        5
        ·
        edit-2
        1 year ago
        /flatpak-dedup-checker-main$ ./flatpak-dedup-checker  
        Directories:                /var/lib/flatpak/{runtime,app}  
        Size without deduplication: 17.52 GB  
        Size with deduplication:    11.18 GB (63% of 17.52 GB)  
        Size with compression:      7.23 GB (41% of 17.52 GB; 64% of 11.18 GB)  
        

        I guess btrfs is awesome…

        • Handles@leminal.space
          link
          fedilink
          English
          arrow-up
          4
          ·
          1 year ago

          Oh, my poor head! I’ve sworn off flatpak until now because it took up so much disc space, and now you’re telling me it uses extradimensional file storage like some kind of TARDIS system?

          • DangerousInternet@lemmy.world
            link
            fedilink
            arrow-up
            4
            ·
            1 year ago

            No, that is about file system, not Flatpaks. Sure Flatpaks also use shared dependencies, but btrfs pushes it even further. I also avoided Flatpaks until switched to atomic distro, where flatpaks are primary way of installing apps. Common distros do not need them really, until you run some old Debian lol and you want newer software.

            • Handles@leminal.space
              link
              fedilink
              English
              arrow-up
              1
              ·
              1 year ago

              Ah, I was confused because you used a flatpak deduplication command. Okay, got it. So BTRFS with flatpak is what will do my head in 🙂

    • bizdelnick@lemmy.ml
      link
      fedilink
      arrow-up
      5
      ·
      1 year ago

      What distros are you talking about? Even if install all available DEs, any distro will take ~10 GiB or a bit more. Default installation is much smaller.

      • DangerousInternet@lemmy.world
        link
        fedilink
        arrow-up
        3
        arrow-down
        3
        ·
        1 year ago

        I remember at the past my allready running distros were always 20-24gb. With allready most apps installed. Like Mint and Workstation. Maybe my memory is not that good and I am wrong… I actually can not say how much is my current Silverblue now, somewhere around 20gb.

        What I wanted to say, Flatpaks sure pull dependencies, but with lots of Flatpaks your next app will be small, like 2gb or maybe 800kb. With atomic distros Flatpaks make even more sense.

        • bizdelnick@lemmy.ml
          link
          fedilink
          arrow-up
          3
          ·
          1 year ago

          There’s no any magic that could reduce Silverblue size, it is based on the same packages as Workstation. Only the installed subset of packages can differ.

          • DangerousInternet@lemmy.world
            link
            fedilink
            arrow-up
            1
            ·
            1 year ago

            Like gnome-tweaks, if you install it in toolbox, it will pull 300mb of dependencies and once installed it is 900mb. Is it magick or 900mb less? Gparted is also missed in Silverblue and not available as flatpaks. Also some magick or anothe MB’s?

        • ExLisper@linux.community
          link
          fedilink
          English
          arrow-up
          2
          arrow-down
          1
          ·
          1 year ago

          I remember when I used to keep my fully configured distros below 700MB so I could just dump it all to a CD as a backup. Good days.

  • drwankingstein@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    9
    arrow-down
    2
    ·
    edit-2
    1 year ago

    Flatlack is weird. Sometimes it’s really good, but then other times depending on what you install it really bloons up.

    • Pantherina@feddit.deOP
      link
      fedilink
      arrow-up
      4
      arrow-down
      2
      ·
      1 year ago

      Those are unmaintained apps and you probably shouldnt use them. Poorly this is not as obvious and cant be enforced.

    • magikmw@lemm.ee
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      One gotcha is installing both as user and root, getting two sets of dependencies. I only found out after a year or so of consciously using flatpak.

      I’m now taking care to make sure I only use flatpak as root. Maybe not the most secure.

  • tanja@lemmy.blahaj.zone
    link
    fedilink
    arrow-up
    6
    ·
    1 year ago

    Removing /repo is not considered safe, but I just removed its contents anyways and then just ran a repair.

    That actually resulted in more available disk space than after running the garbage collection.

    And my flatpak apps still work 🤷‍♀️

    • Pantherina@feddit.deOP
      link
      fedilink
      arrow-up
      27
      ·
      1 year ago

      Because its a modern package system that is free, focused on making every app run, has isolation, sandboxing and a permission system

      • miss_brainfart@lemmy.ml
        link
        fedilink
        arrow-up
        18
        ·
        1 year ago

        And brings the most recent version of something to any system. I’m astounded sometimes by how much a native package can lag behind

    • MonkderZweite@feddit.ch
      link
      fedilink
      arrow-up
      4
      ·
      1 year ago

      Convenient libraries/frameworks are fat. Because they are fat, they need frequent updates/security fixes, breaking codebase more often. With flatpack, developers can freeze lib versions at a convenient point, without caring for system dependencies.

  • Diabolo96@lemmy.dbzer0.com
    link
    fedilink
    arrow-up
    13
    arrow-down
    11
    ·
    edit-2
    1 year ago

    That’s why I think AppImage is the best. Despite needing to pack everything it needs it’s always far more lightweight than flatpak. I’d rather download a 50mb appimage than several gigabytes of an entire OS libraries and then the updates requiring roughly the same size. That and I have a shitty internet

    • Random Dent@lemmy.ml
      link
      fedilink
      arrow-up
      13
      arrow-down
      1
      ·
      1 year ago

      TBH I dislike Appimage purely because I can’t be bothered to go and check them all individually for new versions all the time, it feels like being on Windows again. I don’t mind a little bloat for the sake of convenience. But that’s just personal preference of course.

    • Pantherina@feddit.deOP
      link
      fedilink
      arrow-up
      13
      arrow-down
      5
      ·
      1 year ago

      I dont think that is true at all. Appimages are slowest and have many disadvantages like

      • no repo (= virus danger)
      • no app desktop entry
      • no updates
      • no deduplication of libraries
      • Unmapped@lemmy.ml
        link
        fedilink
        arrow-up
        5
        ·
        edit-2
        1 year ago

        I always use the app image if they are available. As for being slow I never noticed.

        No app desktop entry is one on the reasons I like them. If its one I use a lot I make a hotkey to open it. But there are ways to add them. There is even a tool that makes its easy to do.

        No updates. I’m not sure how exactly, but everyone I use auto updates when I open them. I originally had a issue of it breaking my hotkey cause the file name would change because of the version number going up. Which I fixed by using a *.

        • Pantherina@feddit.deOP
          link
          fedilink
          arrow-up
          2
          arrow-down
          1
          ·
          edit-2
          1 year ago

          The appimages I used dont autoupdate. But even if, you are in some weird “windows is bad” state from years ago, before the MS Store, and even without desktop entries.

          There simply is no reason for appimages other than on systems like Tails that are not made to install apps. But I also think Tails is pretty annoying and should allow flatpak installs in the permanent storage partition.

      • Diabolo96@lemmy.dbzer0.com
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        There was an app that dealt with desktop entry and auto-update but it hasn’t bee updated since a few years already.

        no repo (= virus danger)

        Can be remedied with an official store/ being distrubuted by the devs themselves instead of random people. Appimage isn’t getting a tenth of the support flatpak is getting.

        no deduplication of libraries

        Might worth it if you have dozens of very heavy apps but it’s totally not the case if you only need a few simple programs.

      • cally [he/they]@pawb.social
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 year ago

        no app desktop entry

        they can be added manually but yeah i get how that’s inconvenient.

        just run ./appimage.appimage --appimage-extract and you have the .desktop file there, then just edit the path to the executable

        • Pantherina@feddit.deOP
          link
          fedilink
          arrow-up
          3
          ·
          1 year ago

          Yes but that is unimportant. This is not user friendly at all. I do that all the time for random stuff, but especially on GNOME the system hides stuff like that away from users and thats okay.

    • janAkali@lemmy.one
      link
      fedilink
      English
      arrow-up
      8
      arrow-down
      1
      ·
      1 year ago

      I have all apps I use daily in the appimage format. Yesterday I decided to try btrfs for my root partition and did my annual Linux reinstall. All my apps were already there and ready for work from the start.
      I also have a usb flashdrive always on me with the same appimages. Just in case I’d wipe a hard drive by accident and wouldn’t have an internet connection or something like that (in case of emergencies). You can’t do this with flatpaks or snaps.

    • Chewy@discuss.tchncs.de
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      In my experience updates aren’t that big. The flatpak cli ux is just confusing to read how much data actually has to be downloaded because of deduplication.

      • Diabolo96@lemmy.dbzer0.com
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        1 year ago

        I have like 4 gigs of flatpak updates I keep unchecking because at my horrible internet speed it would take the entire day if not more to download. Honestly, if you’re right then this is a horrendous design flaw.

  • Quack Doc@lemmy.world
    link
    fedilink
    arrow-up
    6
    arrow-down
    7
    ·
    1 year ago

    I fell for the lie of flatpak not being bloated, I just nuked flatpak from my PC since I just run arch anyways. Im not sure if repo is safe to remove. You might be able to run rmlint -g and see how much data can be deduplicated on an FS level, I never checked myself since I run f2fs, but if you run an FS with dedupe capabilities it may work for you.