 One of the coolest things about Linux is that when you do a system update, and this is usually across every Linux distribution, when you do a system update, it updates everything on your system that was downloaded with the package manager, whether you use the GUI or the command line. When you're on Windows, usually you have to update everything piece by piece. So you download an application, you're in charge of keeping that specific application updated. And you have to do that for every application that you install. So there is no way on Windows without using a custom tool to update everything that you've ever downloaded, including the operating system. On Linux it's a little bit different, because you update the operating system and you install your applications usually with the same tool, whether that's something like DNF or APT or Pacman, whatever it is, usually that's the tool that you use to both update your operating system and install your applications. So when you do an update, it does all those things all at once. However, in this new fangled age where you might not necessarily always get your applications through your package manager that comes with your distro, the updating situation is actually a little bit more complicated because your package manager is not going to be responsible for updating things that it didn't install. So if you are using things like snaps or flat packs or app images, or you've installed things through cargo or PIP or whatever, your package manager is not going to touch those things at all, at least in most cases. So what's a guy to do? How do you keep your system completely up to date without having to specifically update everything from every single package manager that you happen to use? Well the answer to that question is going to be an application called Topgrade. Now Topgrade has been around for quite some time, at least a couple years I think, and it is a really interesting application. And it's actually fairly simple to use and install. So basically what happens is that you run it and it will update everything on your system no matter what package manager was used to install it. So that means that if you installed something through cargo or PIP or snaps or flat packs or Pacman or DNF or whatever it is, it will update everything or at least it will attempt to update everything as you'll come to see. So the idea behind the tool is that it means that you don't have to keep track of where things come from and you can still keep everything on your system up to date. And that's really kind of cool. So what I'm going to show you first is my first run of Topgrade because if I run it now nothing would happen because all of my system stuff is up to date because I've already run the tool. So the B-roll you'll see now is my first run of Topgrade. And as you can see the first thing that it does is it updates the system through the systems package manager. In this case I'm running Fedora so you are going to see it update through DNF. And it takes a little while. I'll speed that part up. After it's done is where it gets more interesting because if it just did the system package manager it would be useless because then you just run the system package manager. You'd run DNF or Pacman or APT or whatever happens to be you'd run that and just be done with it. But Topgrade is special because of what happens next. It goes through several different things that you have on your system and then upgrades them. So you'll see it try to update my GitHub repositories. You'll see it try to update Kacuni or however you say the odd-ass text editor that I'm trying out for maybe a video. You'll see it update Flatpak. You'll see it update Pip and Cargo. You'll see it update NeoVim and it will try to update NeoVim plugins which is nuts. So it will try to update pretty much everything on your system including some things that I had no clue it was even going to try to update. So as you'll see in the b-roll it was actually failed a couple of times. So it failed on GitHub repositories if for whatever reason would not take my SSH passphrase. I was typing it right I know I was so I don't know why that failed. It also failed on Kacuni or however the hell you say that that text editor I just hung there for about a minute and it just did nothing so I cancelled that out and it continued on and but everything else it succeeded on perfectly fine. Now the two areas where it failed it was easy enough to hit control C and have it ask me if I wanted to try again or just move past that. It doesn't cancel the entire upgrade which is really nice because you don't that means you don't have to start over. It just moves past that section that it failed on which is good. Now the thing is is there are a few things here that I wouldn't actually want it to be in charge of updating. So I don't want it to be in charge of pulling anything from my Git repose. I want to always make sure what is in my Git repository is locally is what's meant to be there. I don't want to have anything surprise me later on. So the cool thing about top grade is that if you do top grade dash dash help there's no man page so everything is done through dash dash help. You'll see that there's an option here called dash dash disable and you can disable any of the things that is in charge of updating. So the one thing that I wanted to remove is Git repose. So I could do dash dash disable and then Git repose and it would make sure that that wasn't updated at all which is exactly what I'd want. And this also gives you a list of the things that it will update. So everything in this list are things that will update. So ASDF, Adam, brew cask, brew formula, bin, cargo, Chesmoy, Chesmoy. I don't know what that I'm pretty sure that's like a .files manager. I'm not actually sure. Chocolatey which is for Windows. I believe choose choosing them. There's a lot of stuff here that I don't even know what it is composer conda and the list just goes on and on Deb get which is actually fairly new Emacs firmware flat pack flutter fossil G called Gemini just like I said goes on and on and on. Some of the stuff is not for Linux sometimes for Mac and Windows because this is also available on Mac and Windows but you can see that there's quite a few things here that it will attempt to go through and update for you including system firmware which is something that I had no clue it would even do which is kind of cool. Now if you didn't want to use the flags in the command in order to configure your top grade you can have a configuration file on your system for this which will allow you to have much more control over how top grade runs. So you can have top grade refused to ask for confirmation so it will just move through the whole thing without ever asking you whether or not you should carry on which is something that you do have to pay attention to so especially if you're during the portion where it's using your package manager there's almost always a part there where it's asking you to confirm whether or not you want to install the stuff. By default you have to hit yes you can turn that off in the configuration file you can turn off the ask to retry dialog so if you've canceled part of the upgrade it usually asks you if you want to retry you can turn that part off. There's a few arguments here for SSH and Tmux which is interesting if you're going to be using either of those things for this. There are sections here for you to add specific flags to whatever package manager you're using. So if you're using say for example PAMAC or Pacman you can add different flags to that during the top grade process. So for example the PAMAC one is you can add dash dash no develop I'm assuming you can add whatever flags that you want here all you'd have to do is put them within the quotation marks. So that's also kind of cool if you if you use a specific flag for your package manager and you want to still use that during the top grade process you can do so right here in the configuration file. Now I don't have a configuration file on my system you would put this in .config so if you end up doing that you can just create that file and then put this example one here which is on their hub page which I'll link in the video description so you can find all this stuff there and if you run this on Mac and Windows there's obviously several other options you can use as well. So that is the configuration file now the one thing that I didn't cover is that it does use sudo so you will have to enter your password but that shouldn't be a surprise because every update usually requires you to do sudo in some form of fashion so just keep that in mind it's not something that you can schedule via a like cron job or something like that you have to be around to run this if you want to do an automated update you'd have to do something else so the thing about top grade is that it's astonishingly simple it is very very easy to use there's not a lot of options there is one other option that I didn't cover that is actually really cool let me see if I can show you that that is the dash n option or dash dash dry run if you want to run top grade but not have it actually do anything you just want to see what it would do you can use the dash dash dry run option for it to go through the entire upgrade process but not actually make any changes so we'll just show you the output of command so it'd be similar to gentoo that has the pretend option so if you've ever used a merge on gentoo that has a pretend option and it would allow you to I think that's what it's called it would allow you to run the package manager in gentoo it would show you what would happen if you ran it but wouldn't actually make any changes that's what this does here and that's really cool because not every package manager has that and the ability to see what happens with all of your updates but without actually updating anything is cool so that's definitely something that I would make use of in the future so that is top grade and like I said it's an astonishingly simple application and it's definitely one that I'm going to be keeping on my system for a long time to come because I've been using DNF I've been using cargo I've been using pip and I've been using flat pack to install a whole bunch of applications because I don't have they you are anymore right so I've been installing applications for a lot from a lot more different sources than I usually did when I was on arch so top grade is a tool that is really going to help me someone suggested top grade to me in a comment on a YouTube video a couple weeks ago I'm sorry I don't remember your name I did not write it down so whoever you are thank you for suggesting this because this is awesome so again thank you if you have comments on top grade you can leave those in the comment section below just below the like button makes you hit the like button it really does help the channel you can follow me on Twitter at Linuxcast you can follow me on Mastodon or Odyssey both of those links will be in the video description along with all my other social media networks Amazon wishlist all those kind of things those are in the video description you can support me on patreon at patreon.com slash the Linuxcast it's like all these pine people and I still haven't fixed the graphic so I'm going to do that I promise anyways thanks to everybody who supports my patreon YouTube I truly do appreciate it I always just kind of stumble over myself trying to find the words they usually end up on the words thank you so thank you so very much for supporting me I just you guys are all amazing so thank you for watching I'll see you guys next time