AppImage: Universal Linux Apps, Overview and Thoughts

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello again everyone and welcome back to my channel in these uncertain times i hope that all of you are safe happy and most importantly healthy in today's video i want to talk to you guys about the concept of universal applications and this is a concept that has some people extremely happy and other people extremely heated depending on your stance specifically we're going to talk about app images which is one of the technologies that are competing or kind of competing for the dominant spot here and app images are actually my favorite but i like all three but i wanted to make a dedicated video about app images to show you guys what this concept is and why you might want to consider it and why i like it so much but i'm going to be fair i'm going to give you the cons as well so this is going to be an overview of app images and i think it's going to be fun so let's go ahead and get started [Music] to understand app images we first have to understand what the problem is that they're trying to solve so let's rewind a little bit let's rewind back in time before we even had the concept of universal apps and even though we're taking a look back at the way things were technically we're taking a look at the way things are because not much has actually changed as you probably already know all linux distributions or at least most of them actually they all have the concept of repositories you have a package manager and then you have the ability to download packages from repositories that are centralized places to get libraries applications and the like when it comes to software repositories and distributions there's actually several challenges that we face as linux users and the biggest pain point for me is that repositories are often out of date now let's think of libreoffice for example that's just a random example you could use this example with any of the applications that you can typically download if a windows or mac os 10 soon-to-be mac os 11 user wants to download and install the latest version of libreoffice well they simply go to the libreoffice website download the installer run it and they're good to go it's just that easy for us linux people it's actually a little bit easier than that we don't have to go to the libreoffice website or the website for whatever the application happens to be we just run apt install libreoffice whatever the package name is and that's it we don't even have to open a web browser that's pretty cool so actually if it was a race i think us linux people we would actually get that application installed much faster than a windows or mac os 10 user would be able to do so repositories do have their benefit but often the problem is is that these applications that are in the repositories are often extremely out of date now if you are using a rolling distribution let's just say arch linux for example then this isn't really so much of a problem because as soon as that application is available it generally is available in the arch linux repositories very quickly so you can actually get that application installed and get the latest version of that application installed with no problem if you are using something like debian unstable and even debian testing if it's not in the current frozen state you can also do the same thing you can get the latest version of that application pretty much right away and you could stay up to date on all of your packages now the problem with that though is that there's a lot of distributions that are not rolling and for those you are locked to that version of that application for the entire life cycle of that distribution so if you are running let's just say ubuntu 1804 then if you are just sticking to repository packages then many of your applications and their versions will be locked to an older version until you eventually upgrade the entire distribution because generally non-rolling distributions they don't really like to include new versions of applications they pretty much lock everything and then only update when there's a security update now there's actually some exceptions to this for example in ubuntu they do ship the latest firefox as soon as that's available so they do make exceptions but they don't make enough exceptions so typically on non-rolling distributions you are locked to very old versions of all of your applications now when i was first starting out with linux this was a major annoyance for me i would get some sort of announcement that a new version of one of my favorite applications has just been released and then i go to try to install it you know basically apt install or something like that or just run my updates and then get disappointed because that application is not being updated meanwhile windows users and mac users they could just go download that new version right now no problem and i just thought that was really annoying and we also have ways that we can work around that too because we can install a you know third-party repository that might have a newer version of that application but we're taking some risks there because you know what if that repository goes stale and the application is no longer updated and no longer receives security updates if it's not from the official vendor that's a real problem then we have ppas for ubuntu for example which are like smaller repositories but the problem with those is pretty much the same problem with any other repository even though ppas are smaller repositories they still suffer the same problems they might go stale or worse go offline and then none of your packages will install because anytime you run apt update to refresh your index then it's just going to bomb because it hits a 404 and then you can't even install anything until you remove that repository it's just a mess nowadays if i put on my linux administrator hat then one of the annoyances i run into is shared libraries for example let's just say we want to run a newer version of apache so maybe somebody compiles apache and they compile it against the system libraries that are on the system and then maybe they want to run another application that application is actually going to maybe depend on different libraries there's all kinds of scenarios where installing applications on servers can fall down because maybe an application requires newer libraries so while repositories is a major benefit to us linux users i mean like i mentioned we can get things faster it's also a major downside as well and also the linux ecosystem can be a challenge for developers as well so hypothetically let's just pretend you are a developer and you have developed an awesome application that everybody wants to run it's just so cool so you do what pretty much all developers do you release it for mac and windows and then you decide to go ahead and target the linux desktop as well in that scope you have to go ahead and basically create packages for debian so you want to create a deb package but not just one you know there's debian ubuntu is different enough so you're going to have to probably target that too there may be multiple versions of debian supported depending on if there's overlap or extended support so you might want to consider two versions of debian with ubuntu you will have an lts version a non-lts version at any one time that has support so there's two and you have to basically develop a bunch of deb packages and then you need to create an rpm package so there's centos and that should work with red hat so we'll just consider that one in the same but then you need to target basically opensuse as well it's just a mess to target the linux desktop you have to compile that app in all kinds of different versions it's just a testing nightmare and that's one of the reasons why developers don't target the linux desktop because they have to basically compile a bunch of different package types for one platform and that's essentially where universal packages come in because the idea is to have a package that you can run on any distribution it doesn't need dependencies because they're all baked in so you don't have to worry about your system libraries and you don't have to worry about corrupting your package database since they're standalone and as a user you get to download the latest versions of your applications without installing additional repositories that might go stale and as a developer you could create one package and it just runs pretty much everywhere and app images are one method that this can be achieved the other technologies are flat packs and snap packages as well but what makes app images in my opinion special is that they're completely portable so you could just simply download it mark it executable if it's not already and then you can just go ahead and basically run it so i'm going to switch the camera over to my laptop and i'm going to basically show you how i use app images and then i'm going to also walk you through downloading one and running it as well so that you can see basically if this is something you might want to consider running but i'm also going to talk about the disadvantages as well we'll get back to the video shortly but i wanted to take a moment to mention my sponsor lynode lynn node has been my infrastructure provider for well over a year now and has just recently announced their own managed kubernetes service now you can combine lino's ease of use and simple pricing with the infrastructure efficiency of kubernetes with the lynnode kubernetes engine you can get your infrastructure and workloads up and running in minutes instead of days and scale resources in real time to meet your infrastructure needs with lynnode's managed kubernetes engine pricing is simple only pay for what you use and with lino's 99.9 uptime sla and bundle transfer you can significantly cut costs when compared to aws gcp and azure designed with the open source ecosystem of kubernetes the linode kubernetes engine supports integration with tools like helm operators and more to help you get started with kubernetes linode gives you access to in-depth documentation video tutorials and webinars go ahead and sign up at leno.com learn linux tv to get a 60 60 day credit to test out lke or any other of lynnote's products i really appreciate lino's continued support of learn linux tv so go ahead and check them out you won't regret it now let's get back to the video so here on my laptop i have the bin folder open right here this is in my home directory this is not basically the only way you can use app images but it's the way that i use them i put them all in this one folder and having a bin directory is a very common thing for linux users you'll probably see this on other people's computers as well if you don't already do this yourself it's basically a place to put scripts and applications that you just want to run from your home directory and you can see that i have quite a few here now we're going to ignore the cht.sh for example that is not an app image and neither is pi shrink i keep all of my binaries and scripts in this folder but basically all of these that end in dot app these are app images and this is not the standard extension or file name extension generally speaking dot app image is the extension and that's a best practice i rename mine because i like to keep it simple but you have to know though if you do rename the extension some of the tools that you can use with app images won't recognize them so it's probably a good idea not to change the extension but you know i don't always make good decisions but i basically wanted to keep it simple and i thought dot app would be a good file name so right here we have libreoffice.app if i right click on that and go to properties we can see that this box right here allow executing file as a program that is checked that's the same as running chmod plus x on the command line it basically marks it executable if that requirement is met then basically that's all you need to do this app image the one i have highlighted or any of the others are completely standalone if they're marked executable you can just double click on it and it opens and there's libreoffice and it actually opened pretty quick too so i could just click on writer document for example and i'm using libreoffice now this isn't very surprising to many of you because libreoffice comes basically default with every distribution or just about every distribution but this is not actually installed via deb this is like i mentioned an app image so it's completely standalone and i can have a newer version of libreoffice than the system would normally ship with so for example let's just go ahead and look at that here so if i go to help and then about we can see that i have installed currently 6.4.3 and there could even be a newer version i just haven't checked in a while but the point is this does not rely on the system packages at all if a newer version is available i just go get it it's just that simple and that's not actually specific to app images that's the whole point of universal apps in general regardless of whether you are using snap packages app images flat packs basically you're most likely going to get a newer version than you would get via the package repositories and it also doesn't matter which libraries you have installed the system libraries there's not going to be like package dependency hell or anything like that it's just going to work and this actually makes applications in user space on linux work pretty much the same as they would work on mac or windows and i think at the end of the day that's a great thing now there are a few downsides as well now the first disadvantage i want to mention might actually be considered an advantage depending on your opinion and that is there is no central store for app images now some people like that because they don't want a walled garden they don't want one store to rule them all or one source to have complete control the downside there is that with app images there is no one site you go to to find a curated list of app images there is something that comes close but there's no rules that when you make an app image you have to put it on the site so i think a lot of developers do but some don't so you might have to do some searching to go and find an app image if it's not on the main site i'll show you that site in just a moment another downside though is the update technology that is here now they do provide with app image a technology that developers can use to basically allow users to easily update the app in my experience most of the applications that i have used they don't use that meaning i have to go and find the updated version manually and replace it that could be a big deal if you are using something that could have a security vulnerability and it doesn't automatically get updated or at least it doesn't give you an alert that an update is available you might assume that you have the latest version and you don't and then a hacker can use that against you so with app images there is a bit of responsibility on the part of the user to keep the system up to date because nothing is consistent because the you know the developers of app images they the technology itself they don't mandate that you have to do a b and c in order to make an app image they make suggestions strong suggestions but it's up to the developer whether or not they will follow those suggestions and oftentimes they don't so depending on the application it may or may not have an updater and it even may or may not include a desktop file which is basically a shortcut in the application menu some app images will also give you the ability to create a desktop shortcut on first launch which is awesome some developers don't follow that now it might seem like there's a lot of downsides here and you shouldn't use it but the truth is app images are still my favorite even despite that because they're completely portable and it's up to me to go ahead and just manage them however i see fit but there is one thing that i do that makes app images somewhat of a killer feature for me which i'll show you right now now i'll close this app right here and now you can see the file manager here now what you don't actually see is the fact that i have this folder this bin folder managed by sync thing i did a video on sync thing recently go ahead and check that one out because if you want to use a utility or you're looking for a utility to synchronize your files across all of your computers that's a great one to use i highly recommend it but what i'm doing here is i'm actually using sync thing to sync this bin folder across all of my computers which means if i was to download let's just say a new version of caden live then i simply replace caden live with the newer version in this folder and what sync thing will do is it'll actually copy that same version to all of my other computers so essentially i just drop an app into this folder and then literally all of my computers will get that version of the app so i only need to update it one time and then it's available pretty much everywhere and for me that's really awesome because i don't have to check each of my computers if they have the most recent version and if i discover a new app that i really want to run that's really cool i want it on all of my computers again i just drop it in this folder and i'm good to go now let's go ahead and actually see what that looks like so i'll just open up a browser here and i already have sync thing installed on this laptop so i'm just navigating to localhost colon and then the port number that sync thing runs on here and here we have sync thing again check out my video if you want to see how this works but right here you can see that i have a bin directory and i have 1.16 gigs of files or so in that directory and we can see right here that it updated the keepassxc app image which was the most recent one that i've downloaded i downloaded the new version that was just made available i basically saw a news article hit my feed that a new version was available and i went ahead and downloaded it i never saw an update message in the app itself but it was pretty easy for me to go ahead and download it and then replace the current one with the new one back here on the file manager i will open the caden live app right here and what version are we currently running 20.04.1 is there a new version available well i don't know let's go ahead and find out so i'll go ahead and just google here for caden live download now click on it here and we have the app image it's the same version as the one that i already have downloaded so i don't need to actually do anything but you know if i was to go ahead and download it you can see that it has an app image extension at the end so if i go ahead and open the folder that the downloads go into you can see that we have the downloaded version right here i should be able to double click on it basically the only requirement like i mentioned is that the permissions are executable and i'm glad i checked because that was not the case i should be able to double click on it and it's already actually coming up on my screen which is pretty cool and there's caden live i didn't have to run apt install i didn't need dependencies i just downloaded market executable and it's good to go so what i'm going to do right now is show you guys the app image hub which is a place you can find a lot of app images that you can run on your system and i'll have a link to this in the description below the video but this is the app image hub which is a place you can go to get a curated list of a lot of app images there will probably be some missing because again there's no rule that mandates that things must be placed here but there is a huge list of apps that are available from this page so if i scroll down let's see what's available so here's arcade manager which is pretty cool i've never heard of that before i always discover new applications when i scroll through this list it's pretty cool but anyway what else do we have it's randomly black chocobo it's a final fantasy vii save game editor i'm a huge final fantasy fan so i'm really happy to see that i don't have any save files right now i don't even know where my ps1 memory cards are but that's pretty cool that that's available there's all kinds of stuff here we also have joplin available as well and i actually have this downloaded already i don't think i've ever run it before we actually have an install button right here i'll go ahead and click on that it takes me to a list of releases so i can go ahead and download this version right here if i'd like and here it is i'll go ahead and wait for that to finish then same thing i'll open my downloads directory and here it is so what i'm going to do and you probably shouldn't do this because again we probably want to keep that app image extension but i'm going to rename it to just basically match the naming scheme that i use on my system and everything is always lower case for me so i will cut that and then here in my bin directory i will paste that in here wow i haven't run this app since i've downloaded it i basically downloaded it and forgot about it so you can see here that i basically have a version from january of 2019 so this is definitely going to be a newer version i'm glad i did this actually so i'm going to replace it and now we have the newer version and if i go ahead and check sync thing we should actually see this sync that joplin app image right here to my sync thing server which will then actually deliver that to all of my other computers and i can see that it's syncing something normally sync thing will actually show a progress bar when it actually does sync something but anyway they went ahead and pushed that up to the server so i know that it did that and if i go back to my bin directory let's go ahead and open it up we do need to make sure that it is executable and here we have joplin so we have joplin installed well kind of it's in my bin directory i downloaded it and now i'm running it maybe i'll check that out later but for now the downside here is that while they do their best to keep this up to date developers don't always help out here and sometimes the developers of app image they actually can go in here and even you can because this is github you can go in here and update something if something is wrong i mean that's the whole point of github but anyway here's caden live and this is actually what i run and this is what this video is going to be edited in the screenshot is currently broken for some reason and we don't actually have an install button so that's what i mean by the inconsistency which is the downside but i love the portability of app images i think they're awesome and even though you have to do a little bit of manual work to keep them going i really like being in full control of the applications on my system and being able to synchronize the app that i download on one machine to all of my others that's pretty cool too now if i go back here to the very beginning have a special app image that i think you should consider downloading if you are going to use this technology app image update this is a utility that you can use to basically search for an update if the developer has update information built into the app image then this will allow you to update that and this app actually expects to find by default a dot app image file so if you've changed the extension as i have well then it's probably not going to see that but this does depend on update information being provided by the developer and when i ran this off camera none of the app images that i use actually had that built in so this utility is actually useless for me but maybe for you for the app images that you run this might actually be something you might want to consider it might be useful for you and if you notice a developer is not including update information then in spirit of the open source community maybe we should actually be contacting them and just letting know letting them know that they really should be doing that now there's more to app images than this i recommend that you go ahead and check them out there's some documentation that you can read to grow your knowledge on this there's utilities you can download that will go ahead and make this easier for you but if nothing else just simply downloading an app image making it executable then being able to run it in place is really awesome so i recommend that you check this out maybe you'll like it as much as i do but either way let me know what you think in the comments down below this video i appreciate you checking out this video and definitely subscribe if you haven't already done so and i'll see you next [Music] time you
Info
Channel: LearnLinuxTV
Views: 8,323
Rating: undefined out of 5
Keywords: LearnLinux, Linux, Tutorial, Review, Howto, Guide, Distribution, Distro, Learn Linux, operating system, os, open-source, open source, gnu/linux, appimage, linux, how to install, package management system (software genre), gnu/linux (operating system), appimage format, ubuntu, how to use appimages, how to install appimages, linux appimages, appimages linux, how to use appimages in linux, appimage desktop, appimage installation, switching to linux, portable apps, linux apps, linux app store
Id: tMqES2pNxYY
Channel Id: undefined
Length: 27min 38sec (1658 seconds)
Published: Mon Jul 27 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.