New to Linux – Seeking Feedback on My Package Management Approach

Hi everyone, I’m new to Linux, coming from a Windows background, and I’ve recently started exploring different packaging systems like snaps, flatpaks, and appimages. I’ve watched a video where @jay, you explained snap packages, and I’ve been experimenting with them.

I’m not here to debate snap vs deb packages or to argue about the minor performance hit or increased space usage of snaps. I’ve been trying to use mostly snap packages for the last few days, but it’s become increasingly frustrating trying to get some of them to work properly.

For example, I installed VSCode, JetBrains Rider, and Docker as snaps. I ran into a lot of issues getting Rider to work with Docker. Installing Docker as a .deb package was much more straightforward, and it worked seamlessly with Rider and VSCode right from the start.

I also installed the .NET SDK 8 from snap. However, the latest .NET SDK 9 was missing, and even with SDK 8, I ran into permission issues when trying to install a workload (e.g., dotnet workload install maui), because /snap/dotnet/sdk was read-only. In contrast, installing .NET via .deb (to /usr/lib/dotnet) worked perfectly, with no issues and I was able to install all the workloads.

After these experiences, I’ve decided that for SDKs or anything that needs to be closely integrated with the system (like Docker, .NET SDK, Android SDK, Node.js, etc.), I’ll stick with .deb packages.

For other applications like Firefox, Rider, VSCode, Android Studio, Spotify, Discord, etc., I’m happy to use snap packages.

So, I’d like to get others’ opinions on this approach. Does it make sense to separate SDKs/frameworks/libraries from general applications in this way? Or would you recommend a different strategy based on your experience?

I’d really appreciate any feedback!

Welcome to the forum!

I’m a purist and I like the old fashioned package managers (sorry, not sorry Jay) and if a program is missing, I package it myself for my own use.

Whenever something is too complicated for me to package, I use the nix package manager. With nix, there’s no reason for any “universal” package managers.

Thanks for the response! I totally get where you’re coming from, and after using a few Snap-based applications myself, I’m starting to feel the same way. While Snap might offer some value for certain apps, it’s often more trouble than it’s worth for others.

For example, I do a lot of development using JetBrains IDEs, and I’ve had a really rough experience with the Snap versions. The debugger doesn’t work properly, I can’t connect to emulators, and debugging JavaScript is a nightmare. Sure, there might be workarounds for these issues, but why deal with the extra hassle when the native versions work just fine?

That said, for certain applications, I’m still open to using Snap (as long as they’re not available in .deb format). I’ve installed apps like Spotify, Discord, and Skype via Snap, as they don’t seem to cause any major problems. But for most development tools like VSCode, JetBrains IDEs, .NET, etc., I prefer sticking to native installations. Unless someone can really convince me that universal packages offer significant value, I’m not inclined to make the switch.