Harsh reality check for snap apps

I created an account so I could report back to you my experience of using snap apps. No lullabies or lies, just a documented experience with snap apps.

It came to my knowledge that foobar2000 was available to install in Linux via snap app, so I gave it a try.

First thing that I notice in the snap store: it does not inform of the size of the apps. We are in 2019 so that is kind of a major screw up.
After playing detective to try to find a way of knowing something as basic as the size of an app, I came across some post somewhere that mentioned that I had to use something called a command line and then type the following command:
"snap info "

So I did and the output was, among other things, what I was looking for:
ā€œstable: 1.4.4 2019-06-08 (248) 4MB -ā€

Awesome, it was only 4 MBs to install foobar2000 in Linux! And so I did.

Strangely it took what seemed like an eternity to install those 4 MBs and hundreds of MBs where downloaded. Not 4 MBs as announced, but hundreds of MBs instead.
Iā€™m not kidding, pure reality.

I proceeded to do some browsing and research to find out that those 4 Mbs turned out to be a HALF OF A GIGABYTE!!!
As I mentioned that this is a documented experience and not bs, hereā€™s a printscreen, I now have a snap folder hidden somewhere with 473.3 MB:
https://i.imgur.com/BDPRHES.png

I rushed to uninstall the app because, well, because it was more than one hundred times bigger than announcedā€¦
After uninstalling the app, there I go to check if everything was back to normal and if that insane waste of my precious disk space was taken care of.
But no, the heart attack got even bigger, just as the size of that snap hidden folder also got bigger. It was now BIGGER THAN HALF OF A GIGABYTE AFTER THE APP WAS UNINSTALLED!!!
The printscreen:
https://i.imgur.com/8HV1JE6.png

I repeat, after the app was uninstalled! I uninstalled the app and lost even more disk space!!!

Being this a surreal experience I thought that a reboot of the system was needed to get my precious hd space back, so I rebooted the operating system. But the nightmare was indeed real, now my hd had more than half of a gigabyte less thanks to having tried one single snap app. Another printscreen:
https://i.imgur.com/HQAMjXt.png

So the price to pay for testing a 4 MBs snap app was 523 MBs of trash in my hd for all eternity.

Straight question: do you realize what you are doing and that you are making this to peopleā€™s computers?

I wonā€™t even mention the long loading time the snap app took because I now realize that that is a known thing for snaps.

Concluding, Iā€™d love to be here writing that I had a wonderful experience but unfortunately I can not because it was the opposite, using snaps seemed more like something out of a Nightmare in Elm Street movie.

I use some apps in a format called appimage, in which you are perfectly aware of the size of the app, in which you just download a single file and make it executable. And run it. And thatā€™s all it takes, the apps run straight away and as fast as any installed deb package. And they do not require anything pre-installed in the operating system.
And that leads me to the final heartbreaking question: is it worth developing and pushing the snap app format when a way, way better (and user friendly) universal app format like appimage is available?

I apologize for such a negative feedback. But it is honest and true.

In the GUI apps that I have checked, the ā€˜disk usageā€™ that is reported for a package does not include the size of any dependencies. So for example if you donā€™t have Qt installed and you go to install a Qt app, it wonā€™t mention that youā€™ll use a bunch of disk space for that.

We can discuss whether it should, and what teams we need to talk to to address that, but I donā€™t think your expectation that the information screen for a package include the size of all dependencies is founded in reality.

It would be reasonable to have it mention the size of the package, and in GNOMEā€™s Software it does:
image
So, what GUI package manager did you try?

About the actual disk usage, note that the files in /var/lib/snapd/cache are created as hard inks to the ones in /var/lib/snapd/snaps, so when everything was installed the actual disk usage was exactly half of what you were counting, that is, it was a little over 236MB for all snaps, according ot your screenshot.

The slowness of apps packaged in some snaps is an issue we are aware of and weā€™re trying to work with the right teams to address it. Itā€™s not an issue inherent to snaps, but rather (oversimplifying) to the way some things are done to avoid recompiling parts of the stack. I hope we address this soon (weā€™ve addressed a bunch of it already).

4 Likes

Perhaps dial back the hyperbole a smidgen.

You have identified a couple of bugs. Congratulations! :champagne:

Iā€™m impressed youā€™ve never found any bugs in anything else ever, and this is the only issue youā€™ve ever seen in your life, which is why your post is so hyperbolic, I imagine? /s

Take a step back. This is software, we can fix it. We donā€™t need to throw the baby out with the bathwater and all switch to a completely different packaging format because @pemartins found a couple of bugs in June 2019, thanks :).

Reporting disk space a user can expect to be consumed is a reasonable ask, yes. That would be awesome if we reported that well. The https://snapcraft.io/foobar2000 page doesnā€™t report size, that seems like a bug. Scroll down on that pageā€¦

image

The ā€œon this siteā€ link takes you to https://github.com/canonical-web-and-design/snapcraft.io/issues which is where you can report issues such as these to our beautiful, knowledgeable and responsive developers!

For speed issues, this is a touch more complex, as @chipaca says. Thereā€™s a lot of moving parts here, and weā€™re actively doing what we can to improve things. I appreciate you letting us know of a use case which could be improved, Iā€™ll add that to my list of things to test!

For the issue of disk space being used ā€œfor all eternityā€ - firstly, youā€™re pretty optimistic how long that laptop of yours is going to last, who made it? I want one! Second, you can remove snaps pretty easily.

snap remove (snapname)

So snap remove wine-platform-runtime should work. However I think we make it a little too hard to remove core. Perhaps a bug which highlights this might be useful. Iā€™d certainly like to be able to revert back to factory state after testing a snap. So maybe file a bug at OpenID transaction in progress to suggest that as an improvement?

Have a nice day! :muscle:

4 Likes