 Hey everybody, welcome to the Linuxcast. I'm your host Matthew Weber. I'm joined by nobody. Yes, I'm all alone. Again, sad me. Today's topic. So lately I've been taking big grand overall you know kind of meta topics like why you should use art, why you should use Ubuntu, those kind of things. Today I'm going to do something a little different. Kind of not. So today's topic is snaps for good or evil. It's going to be the title of the episode. I talked a little bit about this when we talked about Ubuntu, but I thought it would be good to dive in because there's been a lot of discussion about the state of snaps and the state of package management and Linux and fragmentation and all that kind of thing going on lately and I thought I'd throw my two cents in for what it's worth, which is I guess would be two cents. So I thought I'd start this Linux podcast is primarily for new people. So if you don't know what a snap is, snaps are a universal app packages that can be shared across all Linux distros without needing to be repackaged. So if you don't know Linux applications come in packages, if you're using Ubuntu usually they or at least they used to these to come in devs. If you're if you come in, if you're using a Fedora based distro, you know, RPMs and so on. And then you'd use a package manager to install those things. So if you're on Arch, you use Pacman, Ubuntu or Debian, Apption, OpenSuzo, you use Zipper, things like that. And because there are so many distros and every distro has their own package management system and different way of packaging things, every developer would have to go through and package their application for each of these distros in order for them to be on there. No, normally it wasn't the developer themselves that it or perhaps it was, or it was a member of the community. But it still entails a lot of work. The idea behind snaps is that this developers can go through and package their application one time in a snap using snapcraft. And the their app would be available on any distro that supports snap, which is pretty much all Linux distros. Not all Linux distros support snap out of the box, but it's fairly easy to install snapd, depending on no matter what distro you're on. Another thing that snaps do is it contains all the dependencies that the application would need. So if say you were installing a window manager, for example, i3, i3 necessitates you install several dependencies in order to make it work properly. i3 bar, i3 lock, demenu, or some other kind of menu system needs to be installed, otherwise i3 just is pretty much useless. Same thing with a lot of every package. Every package has some kind of package dependencies, whether they're in your face, you know about them dependencies like, you know, demenu because you use that, or if they're behind the scenes like libraries and things like that. 32-bit libraries for a lot of games isn't necessary for dependencies. So by having snaps, you package all those things right in, and it also prevents breakages later on. So if you package a game necessitates a 32-bit binary of some kind, and that binary later on becomes unsupported, you still have that package available in your snap, and it keeps your application alive. One thing that Canonical does is it builds the snap store as the app store for Linux, and we're going to talk a little bit about that, whether or not that's a good thing or not in the third section of this podcast. So one of the questions I wanted to ask was why do we need snaps, and I've already alluded to it a little bit. It's easier for developers. It's probably the number one biggest grandest reason behind why snaps and alternatives to snap like Flatpak are a good idea. It allows developers to package their app one time, and then snap, well, the snap store will take care of distributing that through snapd. And that's a great thing for developers because, like I said, they don't have to go through and package it for the AUR. They don't have to package it for Debian distros. They don't have to do it for Fedora and OpenSUSA and, you know, Solus and all those different distros that use their own proprietary, basically, package management systems, which could be both a time waster and, you know, a pain in the ass. Another thing is it allows users to control versions of software. So I already talked about this a little bit. When you package the dependencies within a snap, it keeps those dependencies active inside the snap. They don't go away. It also prevents breakages from updates. So say somebody, you know, the developer of a certain 32-bit library or whatever library updates, and that update breaks your application, you still have the older version contained within your snap and your application still works. Again, saving developers both time and effort. So the idea behind why snaps are good and why we need snaps is to kind of dilute the travesty of fragmentation and it allows developers to spend more time developing. It allows users to know where applications are. So one of the things that probably is the biggest problem on Linux in terms of applications really isn't fragmentation so much as app discoverability. When you want an application for the Mac, you go to the Mac App Store. When you want an application for Windows kind of has the same problem as their applications are kind of all over the place. You just go to websites, Google is the Windows App Store, nobody uses the Windows App Store. The real Windows Store, nobody uses it. Those applications are horrible. But if you want to use Google Play on Android or the iOS App Store, other examples. On Linux, we don't really have that and that's what Snap is trying to do, is a single place where you can go and search for apps that make it easy for you to find new apps to discover categories of different apps like games and things like that. So the ideas behind it are trying to solve real true problems that Linux does have because fragmentation and app discoverability are problems that we face officially competing against the likes of Apple who does app stores really well. So that answers the next question which is are Snaps a good solution to the problem of fragmentation? I think the answer to this is an obvious yes. There are a lot of Linux distributions out there so one place to get all your software just makes sense. On the other hand, we're going to get into the downside so we might as well start here. What are the downsides of Snaps? It reduces the control the distro you use has over the software that is available on its platform. So if you listen to any other Linux podcast, you probably heard them talk about the kerfuffle between Linux Mint, the developers of Linux Mint and the Snap craft team. It all had to do with Chromium and not wanting to support Snaps. Snaps doesn't really give the distribution developers any control over what packages they use. A distribution could go through and give these a certain set of apps and they could give those in Snaps but they don't have control over what's packaged in with those dependencies, what version of those dependencies are or anything like that and that could be a big problem for distributions who are more controlling over what they allow on their system on their distros. Especially on that beginning ISO, why distributions really truly want tight fist control over what's on there. I really don't care what the users do after they install it. Although it does a lot of times if you include an application on your distro and especially for new users, the users of those applications don't go to those applications website for support. They go back to the distro. So say you get an arch distro and it comes with whatever an arch based distro and it comes with the chromium whatever you don't go to the chromium website for support you go to the arched space distros for support and well that's not necessarily the best way to go about it. That's the way new users most often work. So the biggest downside to Snap, and this is the one that sticks in a lot of people's craw, is that the sticks in a lot of people's, it pushes people in the wrong direction. It's owned and operated by one single company. And for the most part the Linux community has no control over that company and that company's canonical now. In the episode we talked about Ubuntu there's a lot of good things that canonical does for the Linux community. I think they do more net good for the Linux community than they do net bad I guess is the way I say it. But they are a company and in the end of the day some day they're going to file for an IPO and they're going to become a public company and at that moment their sole goal is to make money. And that's going to be a big problem because especially if Snap's become the primary way of getting applications across all of Linuxdom. By having one company in control that refuses to open source the Snap store. So that's another thing. The store itself is not open source. It's closed source, it's proprietary to canonical and nobody knows what goes on. Now Snaps themselves are open source. You can get in and audit those and things but you can't audit the store. It's controlled by canonical. Now if canonical decides to shut it down someday Snaps will still work because technically anybody can distribute a Snap but the Snaps store would be gone. Same thing if they instituted some crazy privacy policy sometime in the future. You'd have to put up with it if you were going to use the Snap store. Now I'm not one of those Linux people who say that all closed source things are evil. I don't think that's necessarily true. I do think that it is unusual for a company that proclaims itself to be the champion of open source software like canonical does to have a software system or a program that is not open source and now there's some threads out there that has Mark Shuttleworth explaining why it's closed source and some of that stuff does make sense. It's about security and blah blah blah blah. But the ideals behind open source and behind Ubuntu and Snaps as it should be and almost every package you use on Linux is that it allows the community to go in and see what's going on and that's not something you can do with the Snaps store and that's because it's controlled by canonical. It was done by canonical and it's probably not going to change. That's a big deal for a lot of people especially if for other distros who may or may not enjoy being reliant on a company or on a single company for software distribution. That's one of the reasons why Snap is just going to be an option for people. I think I was going to wait until the conclusion to say this but Snaps aren't going to you know you get on the internet and you see clickbait titles Snap versus Flatpak who's going to win. Nobody's going to win. They're just both going to be there. It's the same thing like the AUR is not going to go away. For most ARCH users I'd say the vast majority of ARCH users right now the AUR and the ARCH repositories are the primary means of getting software on ARCH. Some of people will probably use Snaps when they need to but most people on ARCH will probably use they are in the ARCH repositories. On Ubuntu, Snaps are much more attractive because of the mess that is the PPA system. It's really attractive on Ubuntu when you go want to find a program and you just have to go to the Snap store and Snap install whatever instead of hunting down a PPA, wearing that that PPA is out of date, wearing that the programs out of date is in the PPA, wearing that the program doesn't have the dependencies that it needs or the dependencies have security risks or whatever. The Snaps are much more attractive on Ubuntu than they are on anything that's based on ARCH. Now obviously you know I'm a big ARCH fanboy so AUR for the win but that's one of the you know if I had my way the AUR would be the future of Linux package management and distribution but that's never going to happen. Ubuntu is not going to adopt the AUR which is just you know it's just a crying shame. So this isn't so much a problem anymore than as it was maybe like a year ago but Snaps aren't always kept up to date so it's a much less of a problem than say like PPAs which I was just talking about but a lot of times the Snap stuff is a version behind which you'd get if you just package the thing yourself or maybe the company supplies of the app you're talking about supplies with the Snap and a you know regular package the package might be of a new version than what you'd get in a Snap and a lot of times Snaps don't play well with GTK themes which is a big you know sometimes problem so they look kind of janky. I mean that's not a huge problem for functionality but you know it can be annoying. I have a mark down here the AUR is better so I'm going to do an episode I think on why I think the AUR is so great but for the most part the AUR is kind of like the Snaps store only it's not universal cross Linux not every distro can use the AUR so that's the downside of the AUR but I think for ARCH users it's just superior superior to Snaps in almost every way outside of security. The AUR has some security problems but you know I've been using ARCH for since 2017 you know off and on and I've never single had a single time have it a problem with an AUR package being insecure or crashing my computer or anything like that so I think for the most part security problems in the AR is you know is kind of fud. Anyway so the last section that I want to talk about you know speaking of the AUR is alternatives to Snaps and you might ask well why do we want alternatives if Snaps is so good and it's good for Linux to have alternative ways of doing things that aren't controlled by Canonical or just one company. Now the biggest alternative is Flatpak now the downside of Flatpak of course is that it is also controlled basically by one company although Flatpak is I'm going to say this and I'm not sure if it's true but I'm pretty sure it's true that Flatpak gets completely open source whereas you know down Snaps are not and Snaps isn't but Flatpak. Flatpaks are controlled by Red Hat I believe maybe Fedora. I think it's Fedora it's definitely Fedora okay I know what I'm talking about I'm an expert not anyways it seems that Snaps have kind of taken the lead in the whole package management race but Flatpaks are still out there and they're going to remain to be out there as a feasible alternative they're not quite as easy to use as Snaps I think that's the reason why Snaps seems to have overtaken the Linux community as they have and Flatpak kind of has it is mostly because Flatpaks aren't quite as easy to use as Snaps now that's from a new user's perspective if you use Linux for you know a long time Flatpaks aren't hard to install they're just not quite as easy and it it's good that there's that alternative the problem is becoming is that there's is the age old Linux problem is now there's a to a different system of doing things for universal package management is that there's fragmentation so there's programs that are in Snap that aren't in Flatpak and there are flat programs that are in Flatpak that aren't made in Snap forms and that means you're going to have to have both installed if you're going to use these universal package management systems you're going to have to have both installed if you want to use them to their full extent because some programs will be in one some programs will be in the other and that's a that's an issue that is just going to plague Linux forever and ever and ever unless they all switch to the use the AUR again the AUR it's awesome if everybody used the AUR no fragmentation everybody would just have all the programs if they ever be right there I mean why doesn't everybody just use the AUR it'd be so much easier anyways the last one I want to talk about excuse me I needed a drink the last one I need want to talk about is elementary os now I have a lot of problems the way elementary os does their package management in terms of app stores the idea behind them creating an app center that allows people to pay developers is fantastic I think developers deserve to be paid I'm not one of those Linux users who thinks that free means you shouldn't have to pay anything the problem I have with elementary os is that it creates a situation where Linux applications aren't necessarily available on other distros it so you used to be for the most part if you created a Linux program or Linux application and you package it chances are you'd package for Ubuntu you'd package it for the AUR and you'd package it for you know for Red Hat or Fedora you'd package it three times and you know and then you keep updating it three times every time you did an update the elementary way of doing things is you might create an application for elementary which is that just single one distro and it may not be packaged even for Ubuntu or for for R or anything other things and that's because they have that incentive to be elementary exclusive so it creates even more fragmentation but that is one way to do it and like I'm a big fan of the way elementary does it but of all the Linux distros their app center is the best app store out there it does create problems like I said but it's still the best and it's also they have the only solution so far to the problem of getting developers paid and that's something that Apple has excelled at even though they get in trouble a lot for taking it cut developers deserve to be paid and right now like I said elementary's apps center is really the only cohesive way for multiple developers to come together and all get paid for their apps so that's just one way to do it whether or not like I said that's the best way to do it I don't know so that's it for this episode it's a little short mostly that mainly because I need to talk a little slower like I said I'm working on doing this by myself and it's a little annoying so I can't really pace myself anyway so if you want to get in contact with us I was gonna put this at the beginning but it didn't so if you want to get in contact with us or with me you can do so at the linux cast is the twitter handle for the podcast you can also follow me on twitter I'm at mtwv I'm looking for a co-host like I said Ricky who started this with me he's a busy guy I'm sure he will join me again once in a while but otherwise I'll be doing this solo until I find somebody to talk to I'm just a lonely, lonely loser here talking all about Linux all by myself if you want to follow us on facebook if you can do so at facebook.com slash the linux cast I don't use facebook that often on that page so pretty much all you'll get is notifications of new episodes which probably be better off getting on twitter I think that's all I have to say for this time so coming up next time I'm going to be talking I might as well just do my AUR is best I'm gonna talk about why the AUR is so good and I'll be next week so I'll see you next time