Linux Packaging Formats explained: Flatpak vs Snaps vs DEB & RPM vs AppImage vs AUR

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hey everyone this is Nick and if you're confused by all the packaging formats available on Linux you've come to the right place with flat packs snaps app Images regular packages the Aur the source code Linux has more ways to install a program than any other operating system in the world and while it gives you complete Freedom it also means you can be completely lost so let's explain these packaging formats what they do what Their advantages are and what their drawbacks are and let's also unpack this segue to today's sponsor this video is sponsored by safing safeing makes the portmaster an open source tool to take back control of your internet connection it's free of charge and it lets you see every connection every application makes and it lets you act on these connections by blocking ads and trackers malware not safe for work stuff or scams with auto blocking capabilities and even the ability to use a DNS provider of your choice you can of course create your own rules globally or per application boardmaster is available as a Dev or an RPM package it's in the Aur or you can also install it on Windows using it is free of charge and they have paid tiers starting at 3 Euros per month to support the development or 9.9 Euros per month if you want the total package including the SPN which is a VPN on steroids that uses a different IP address for every connection so you're truly impossible to track so click the link in the description to download the boardmaster so let's start with the good old packages the dabs and the RPMs the main ones are Debian packages used by Debian Ubuntu and all Ubuntu derivatives and RPMs which originated in red hat but are now also used by Fedora Santos open Souza and others these packages aren't like exes or msis on windows they're meant to be installed from a package manager they're contained in repositories that your distribution has set up or that you can add yourself when you use your package manager or your app store it displays one element an application or library but what it will install is packages either just one or multiple ones that the application needs to run it is in short much more practical than the traditional Windows wizard with its 10 next buttons you have to click and the crap web that is pre-checked that you have to dodge before you install your program in terms of advantages these packages are all separate which means that each package contains either one application or one Library you only install what is needed nothing more this also means they tend to use less space as time goes on since the libraries are shared between applications you don't have to install yet another copy of the same Library when you install a new app second they are maintained and tested by your distribution which means they should all work well without any issues and they probably don't contain malware packages from third-party repos or that you install manually might not be as safe though third they are all based on a dependency system applications declare which other packages they need to run if these packages are already installed they will use them and if they are not they will be installed automatically but there are a bunch of disadvantages to using these packages the first one is security you install each package as a super user which means you grant the package all the rights to do whatever it wants to your system as it's being installed if it comes from an unknown source you might be installing malware without knowing it and giving it full access to your system second they can create dependency help since all libraries are shared on your system it means that all packages need to use the same version of a library there's only one on your system that every app uses so if you install an older package that depends on an older version or a newer package that depends on a newer version you might completely break your system by replacing the current Library by a version your other applications can't understand and can't use and third for developers these packages simply suck these packages need to be made for each architecture like x86 and arm and for 32-bit and 64-bit and for all the currently supported versions of a distribution and for all distributions which means you can end up having to create tens of packages for one application and that is why most packages that distributions provide are maintained and packaged by themselves because developers just could not be bothered to support all of that mess and that was the main reason why flat packs were invented this packaging format is different from the good old devs and RPMs in that it packaged the application and everything it needs to run in a single bundle if the application depends on a lot of libraries that are commonly used by other applications it can also not package that itself and install what is called a runtime instead for example installing a KDE app through flat pack will install the KD runtime and the next time you install another KD app it will reuse that KD runtime so it's not installed twice now flat packs are only meant for graphical applications they aren't a way to distribute libraries or command line apps flat packs are generally hosted on flat Hub which is the biggest repository of flat pack apps but there are others like Elementary's repo all the one Fedora uses for now you can install them graphically with gnome software or discover or Elementary's app center and more or you can use the command line to install them in terms of advantages flat packs are more secure than regular packages they're installed as a regular user which means the application doesn't have admin privileges over your system when it's being installed and it just can't install crap that will run at the system level or affect your system files they can also use a Sandbox which means the app is limited to its own environment and runtime and can't access everything it depends on a permission system that you can configure just like on your smartphone not all developers implement it well and it is not perfect but it's still better than the security level of good old Debian and RPM packages an imperfect sandbox is better than no sandbox at all another Advantage is for app developers flat packs run on any distribution that has flat pack installed which is basically all of them apart from Ubuntu and its various official flavors packaging once allows the developer to distribute to every distribution which is a huge Time Saver it also means as a user you're not dependent on your distro for updates you can get the new versions of your app as soon as the developer has published them well with packages distributions tend to never ship feature updates to the applications in their repos for a specific version and the last Advantage is no dependency hell if you want to install an old application it and it won't mess up your system or your other applications but it also comes with drawbacks of course because if not it would be way too easy to pick a packaging format and stick to it flat packs tend to use more space if you stick to recent applications from the same desktop environment for example all gnome apps or all KDE apps then it won't be a problem they will share the runtime and that's it you're just installing the app afterwards but if you mix and match applications a lot and you install older applications that depend on all the versions of libraries then you will install a lot of runtimes and these can add up over time using more space on your disk if you have a large SSD or hard drive this will never get to be a problem but if you're very constrained it could be another problem is that flat packs can't fully replace packages they are only for graphical programs you can't install just a library for your whole system or command line tool or Servo utility there are not designed for it and they don't plan on supporting that either and finally flat pack apps might not follow your custom theme you can install themes from Flat Hub that applications can follow and you can force apps to follow these themes but if the theme isn't installed through flat pack and enforced manually chances are your app will just look like what the developer intended and not like the rest of your system still even with these draw bags flat pack is being adopted by virtually every single distribution out there except for Ubuntu because Ubuntu has their own competitor to Flat pack and it's called Snap you can install them on Ubuntu and all of its derivatives and other distros also added support out of the box like Manjaro most distros will be able to install the snap D package that lets you install snaps afterwards snap packages follow the same model as flat packs there are build ones distribute everywhere thing that lets developers make only one package instead of making packages for every distro now snaps differ from Flat packs in a few key ways though first they are Auto updated they will automatically update to the latest version when it's available it can be a good thing or a bad thing depending on what you like Snaps are also containerized which means they have their own file system separated from the rest of your computer so they can't do anything too weird to your system and as with flat packs it's not perfect but it's still an added security layer over the base security of good old packages and RPMs basically anything is better in terms of security than these packages snaps also lets you test future releases in advance with channels you can for example install a snap from the beta Channel or an edge channel to test the very latest and greatest and of course they have issues as well while the packaging format is open source the server component isn't which means you cannot create your own repo of snap applications you have to use the Snap Store from canonical and you cannot see the code behind it to check if it doesn't do anything weird Snaps are also very slow to open at first start when you boot your computer and start a Snap app it will take noticeably longer to open than an application installed through other methods they also tend to clutter your disks because they will Mount their own file systems as a disk drive so if you regularly look at Mount points you will see a bunch of disks you don't know that are your snap applications snaps also generally don't support your custom themes some themes will be applied some won't it's a bit of a gamble snaps do have the advantage of supporting command line utilities and some server tools for example my own nexcloud server runs using the snap because instead of installing all the libraries that I needed a database configuring a user installing next Cloud putting the files in the right place I just typed sudo snap install nexcloud and everything was set up for me instantly and I could just use it now let's move on to app Images if you've ever used Mac OS you will be familiar with this format they are basically an all-in-one bundle that packages the application and all its libraries in a single file no shared runtimes here no dependencies the app is just one bundle that you run by double clicking on it these can be downloaded from various applications websites or from App image Hub which lists a lot of them not the biggest fan of the design of this website though it does not Inspire the greatest of confidence if you use the Windows store on early Windows phones you'll get the same Vibe here with a bunch of applications that look like also ran with weird icons and clearly unofficial packages in terms of advantages app Images are very portable you can just copy the app on a disk and paste it on another system and it will run as long as it has lib fuse installed on it which is most distributions they also won't create any dependency health because they're completely independent they do not share any component with any other application app Images can be sandboxed but not a lot of them are so they generally are less secure than flat packs and snaps they're also a package once run everywhere format which means developers can just make one app image and expect it to work everywhere unless it's Ubuntu because they broke app image support in their latest release you can fix that easily yourself but still with them preventing the installation of flat pack on their own official flavors and breaking app image is it a coincidence I think not now as always there are problems with app images as well app Images don't integrate with your system at all they have every chance to not follow your system theme and they will not create entries in your menu either unless you also install an app image helper that will scan specific folders for new app images and create these entries automatically they also use more space than any other packaging format since each application packages everything they will create duplicates of everything nothing is shared among them app Images also really depend on the trust you put in the person who packaged it they are not installed through a packet manager or through flat pack and snap you just run them as is if someone puts something Shady in the application you will run it and it has no additional protection layer now granted that's also true if you install a flat pack a snap or a package that been packaged by a third-party developer and not by the original developer of the application next is the Aur this is a term you might have seen a lot and it means Arch user repository it's available on Arch Linux and other arch-based distros like Manjaro although it might not be enabled out of the box the Aur is simply a big repository of applications and libraries packaged by individuals they are generally not official and not supported by the distro or the original developer although some can be its main advantage is that it has virtually everything any library or application commercial or not any theme icon theme you can find it in the air you are even drivers it will be a very rare occurrence when something isn't in there back when I use Manjaro I basically only use the Aur to install stuff on my system and if you're wondering why I don't use Manjaro anymore I have a video somewhere in the corner and in the link in the description below the Aur doesn't host packages as we discussed instead it hosts packaged builds which are scripts that will make the package these scripts will download the necessary components compile them into an archive and install that for you this means that installing something might take a bit longer than just installing a regular package a snap or a flat pack and it also means that unless you read the package build scripts yourself you completely trust an individual with the security of your system packages are checked by trusted users that have been part of the Aur project for a while but you still have to trust that they actually reviewed the package you install another issue is that these packages don't necessarily take into consideration other packages or stuff you might have installed from the original Arch Community repo which means you might very well break your system if you installed too many things from the Aur as you might end up with mismatched versions of libraries and apps that can't understand each other the Aur is a great very complete source of software for Arch and archbase districts but it expects you to be a bit more literate and a bit more careful with what you install you are supposed to go read the package below scripts to make sure that it doesn't do anything stupid to your system and you're supposed to know if what you install is compatible with what you already installed or not it basically expects you to know more you can just click install blindly and expect everything to work there is no one best package format yet on Linux they all have advantages and drawbacks depending on how you like to use your system personally I prefer a combination of the good old packages for all the systems libraries and command line utilities and all my graphical applications are installed through flat pack because I get all the updates and they just work there are also other ways to get software like compiling it on Gen 2 or downloading the source code and compiling it yourself and some apps will have a portable archive with a binary file you can run but mostly chances are you will interact with packages flat packs snaps app images or the Aur so I hope this made the topic less confusing but if you're still confused or if you still don't know what to use the general rule of thumb is use what your distro provides it doesn't matter in the end what matters is the application you installed so if your distro provides snaps install snaps if your distro provides flat X install flat packs what matters is the application not the package format but what really matters is this segue to today's sponsor if your computer is due for a replacement why not give a shot to a Linux manufacturer like today's sponsor tuxedo compared to buying a Windows device you just know that it will run Linux because the hardware has been specifically picked for it and you know that they contributed to linux's development to driver support and to making sure that more Hardware is supported they have a big big range of devices that should cover every need and every price point all the devices are upgradable repairable and openable and they have plenty of configuration options that purchase to make sure that it really suits your needs so if you need a new computer and you want to install Linux on it click the link in the description below and get yourself something from tuxedo they're really good so thanks everyone for watching this video I hope you enjoyed it if you did don't hesitate to like to subscribe to turn on notification chance to write a comment and if you dislike the video it's probably because you don't like flat packs but you can still tell me why in the comments and if you really enjoyed the channel and you want to help me make more of these videos you can click any of the links in the description below patreon YouTube membership super thanks PayPal it's all there so thank you all for watching and I guess you'll see me in the next one bye foreign [Music] [Music]
Info
Channel: The Linux Experiment
Views: 78,492
Rating: undefined out of 5
Keywords: linux, open source, linux help, linux tutorial, linux 2022, linux tips, linux for beginners 2022, linux tutorial 2022, flatpak vs snap, flatpak vs snap vs appimage, flatpak vs appimage, linux snap, flatpak ubuntu, linux snap vs flatpak, flatpak vs deb pacakges, flatpak vs rpm, flatpak advantages, flatpak is better, flatpak is worse, is flatpak heavier, linux packages, linux package manager explained, linux package managers comparison, linux package formats, aur arch linux
Id: 1lLZ-59xH3Y
Channel Id: undefined
Length: 19min 39sec (1179 seconds)
Published: Fri Mar 10 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.