 Do you use Arch Linux or Arch Linux-based distribution like Manjaro, Endeavor, Arco? If you do, probably the biggest reason you use an Arch-based system is because of the AUR, the Arch User Repository. It's this gigantic repository of user-submitted software, and it makes Arch and all these Arch-based distributions have the biggest availability of software of any of the GNU slash Linux distributions. One of the problems with especially mainline Arch is out of the box, you can't really install AUR packages, or they make it a little more difficult. You actually have to physically go and grab the package builds from the internet, you know, download them to your machine, and then install them, side load them essentially with Pac-Man. So Pac-Man knows about these packages, these third-party packages that you're installing. But there are these programs called AUR helpers, and two of the most popular are Yeh and Paru. As a matter of fact, most Arch-based systems already have a AUR helper installed. Manjaro, Arco, Endeavor, most of them already have Yeh and or Paru already installed to make installing AUR packages much easier. But today I wanted to show you an alternative AUR helper called Aura. Now, what is Aura? Aura is a AUR helper that is written in Haskell. And I know some people have a real problem with Haskell programs because Haskell's got all these dependencies on the Haskell programming language and the Haskell compiler. But every programming language has these kinds of dependencies, right? Your C programs have dependencies on C libraries and the C compiler. And same thing with Python and Lua and all these other programs that you have no problem installing on your system. Don't be scared of Haskell. It won't hurt you. You can have Haskell on the system. Matter of fact, if you're already using things like X-Monad, X-Mobar, Pandoc, Shell Check, those are all Haskell programs, fantastic Haskell programs you probably need to know about anyway. So just quit trying to avoid Haskell. It's inevitable. You're going to have to install some Haskell at some point on your system. So the source code for Aura is hosted over on GitHub. And it looks like it's a very active project with a lot of contributors. It's actually got a really nice documentation here on GitHub. So what is Aura? Aura is a package manager for Arch Linux. So they claim to be more than just an AUR helper. They're taking the moniker package manager. And the reason they're doing this is because Aura actually does do more than just install packages from the AUR. If I go down here to some of the sample usage, this is just a list of some of the basic commands with Aura. There are snapshot commands. So Aura has the ability to store every installed package. It gets a list of all your installed packages. It stores that in a JSON record. And then if you wanted to, you could always restore from that saved record. Something goes wrong and you want to go back to the previous snapshot that you had of those particular pieces of software. You can actually do that with Aura. And that's really cool. You can also downgrade packages very easily with Aura. That is something very useful because I sometimes have run into the need to downgrade packages. Not too often, but occasionally, especially doing, you know, like production work here, making videos, like my version of Kaden Live, they'll have a big update. And the new version is kind of buggy or doesn't quite work right, you know, the way the old version did. So I'll just downgrade to the old version of Kaden Live, at least for a little while, before finally moving on to the next version. Once they get the bugs worked out, then I'll go ahead and make the upgrade. But for a while, a lot of times I just stay on the old versions. Aura also makes it very easy to search through the Pac-Man logs. You can also manage orphan packages, orphans, or these packages that are no longer needed on your system. They were installed as dependencies for other programs, but you already uninstalled that program. So now you have these unneeded programs just sitting on the system. Aura can get rid of those orphaned packages for you. Aura also allows you to analyze the package builds. Most AUR helpers typically have you read the package build anyway, but Aura has some neat stuff in it. And Aura has the ability to let you do a hot edit on a package build, meaning I can edit the package build before the installation, which is a really neat feature. So let me switch over to my desktop and let's play around a little bit with Aura. So I'm going to open a terminal and let me go ahead and zoom in here so you guys can see everything. So upfront, we should talk about how Aura handles the differences between standard packages and the standard repos and AUR packages, because you have two sets of flags, which really makes it nice because you never get confused exactly where the package is coming from. Is it in the standard repos? Is it in the arch user repository? So if you do sudo Aura and Aura needs sudo privileges, unlike Ye and Paru, which don't make you type sudo, but later when you actually do need sudo privileges, when the package gets installed on the system, Ye and Paru ask you for a root password. For Aura, you do this upfront, just like you do with Pacman. So do sudo Aura dash s to install from the standard repositories. So just like Pacman dash capital S or a dash capital S, and I know htop is in the standard repository. So let me give it my root password. Of course, I already have htop installed, but that's the way that would work. Now, let me rerun that command. And this time instead of dash capital S, do dash capital A for install from the AUR. Now, htop is not in the AUR, so this fails. But htm, which is a htop alternative, is in the AUR. So now sudo Aura dash capital Htm will find htm in the AUR. And it will, of course, build it for me. I have no idea how long this installation will take. It complains that htm and htop are in conflict. So I've got to remove htop. So I will give it permission to remove htop. And now htm is installed. But if I wanted to install htm with Aura dash capital S, remember, that's standard repository packages, htm is not in there. So again, target not found. So you do have different commands depending on which repo you want to grab packages from. And of course, all your standard Pac-Man flags work. For example, if I did a sudo Aura dash capital S lowercase y, lowercase u, this, of course, is going to sync the repositories and then update all the packages on the system from the standard repositories, not from the arch user repository. I'm going to decline taking that system update. Now if I wanted to do this by upgrading all the AUR packages, I would do a similar command. I would do sudo instead of dash S, do dash capital A for the AUR packages, not the standard repo packages. I also don't need the y, because the y syncs the repositories. There's nothing to sync with the AUR, right? It's not, you don't sync AUR repositories. And then you to update those packages. So it's basically what this command does. And it's saying Aura update available. Do we want to update Aura first? So Aura is a AUR package. So we should update it. And then once it updates itself, it should then allow us to update all the AUR packages on my system. I don't know how many AUR packages I actually have installed on my system. Probably not that many, even though I love the AUR. I don't find myself needing it that much, because honestly, Arch Linux, the standard repos, they're starting to move a lot of the more popular AUR packages over to the standard repositories. Now it's one of the things with the AUR, if you go to that AUR website and look up packages, you do have the ability to vote, upvote packages. So you get very popular packages in there, like the Brave browser that I use. That is a AUR package. And it's probably the most popular AUR package in the AUR. So eventually the Arch guys will probably get around to moving that thing to the standard repos, where honestly it belongs. Now it took a couple of minutes to build Aura there, so being an AUR package and being Haskell, you know, it does have to rebuild and then recompile, but it really just took like two minutes. It wasn't a very long compilation there for Aura. So now that we've updated Aura itself, let's rerun sudo Aura dash capital A lowercase u to update the AUR packages. And yeah, I've got actually a lot of AUR packages on here. So I'm going to decline that update there. Some of the other Pac-Man flags that work with Aura, I could do a search of all the packages installed on my system. I don't need sudo privileges, of course, to do this, because these packages are already installed. It's just giving me a list of them. So I do a dash capital Q lowercase q, and it spits out all the programs that are installed on my system. I could pipe that through wc, which is the word count program, and do dash l for line count. And I have a very, very bloated system at 1,882 packages on my system. That's because I have like, you know, 12, 15 different window managers installed in various programming languages. So I've got a lot installed on this machine. Now another useful AUR flag that you can use is you could do sudo Aura dash capital A and lowercase i for information. I want some information about Brave Bin, I believe is the AUR package for Brave, and that should give me, yeah, it gives me all the information about Brave, including dependencies, popularity, 458 people have voted for it, and that gives me a description and all of that. Now, if we get back into the documentation a little bit, one of the most interesting things about Aura is the snapshotting feature where it takes a snapshot. Basically throws all of your installed packages, it gets a list, puts them in a JSON file, and then later if you wanted to restore those packages, restore from that snapshot, you do have the ability. So what I've done off camera, I've actually run this command a few times now just to have more than one snapshot saved. So sudo Aura dash capital B says saved package state, and because I've run it, I don't know, six or seven times off camera, now if I do sudo Aura dash capital B lowercase r for restore, hey, which snapshot do you want to restore from? And it looks like other than the ones I've played around with today, I actually installed Aura way back in January. I didn't do a video about it, but I played around with it. It looked like I took a snapshot way back in January. I can only imagine what would happen if I tried to do that. I'm going to choose the most recent one, number seven, which there probably isn't any changes. So it probably, yeah, no packages need changing. Yeah, I don't want to restore from way back in January. That would be kind of crazy. A matter of fact, what I should do is get rid of the old backups because that could be a problem if I accidentally restore from one of the old backups. So you can do sudo Aura dash capital B lowercase c, and then give it a number, and it will only save the last, however many number of records you want saved, for example, three. And now that I've done that, three package states will be kept, and the rest of them will be removed, yes or no, by default, yes is the answer. So just hit enter. And now when I do sudo Aura dash capital B L to list the JSON files, the backups, there are only three now, and it got rid of that ancient one from way back in January. We also mentioned that Aura can handle orphaned files. So if I wanted to get a list of the orphans on the system, do sudo Aura dash capital O, and there's actually quite a number of orphans on here. Now, do I really want them to get rid of these orphans? I'm just looking at the list to see if there's anything. And you should do this too, because sometimes when you try to remove orphaned packages, sometimes you'll be surprised what shows up in there, things like, I don't know, the Linux kernel or system D, things that you really don't want to remove, you'd be surprised, but none of this looks like it's really important. Rust is here, but that's only really needed if I've got something installed that needs to compile. I don't think I compile any Rust programs that are installed. Electron is here, Electron 12. I don't think I really need that. That's a make dependency. I'm not too worried about that. I think I can get rid of these. So what I would do to uninstall all the orphaned packages, do sudo Aura dash capital O, lowercase J. And then it's going to ask for confirmation, do I really want to get rid of these? It's going to get rid of URXVT, which is a terminal emulator. That is not, I wonder why it found that as an orphaned package, because that's not really a dependency on anything, but it's a terminal emulator. I don't use URXVT though. So I'll go ahead and get rid of it. If I find that I need it later, I can always reinstall it. Now, other than this very short cursory video I did and the GitHub documentation over on GitHub, if you need more documentation for Aura, they have taken the time to write a really nice man page. Anything you want to know about Aura can be found in the man page. It gives you all the flags, all the options, including some stuff that's not over on the GitHub page for example, dash dash hot edit. Even though I didn't play with this, that would allow you, when you're viewing the package build, you could actually do an edit of the package build, you know, before you actually install the program. That's really interesting, especially in Aura packages, a lot of times you will find some that are broken. They just will not install and the reason they won't install, sometimes it's their mistakes in the package build and the ability for you to just go in there and fix the mistake so it'll actually build correctly is a very nice feature. So I think I'm going to start using Aura as my AUR helper, just package manager in general because most of the backman commands I'll also work in Aura too. So AUR helpers, I've used so many over the years. Way back in the day, of course, I started with Yawart. Like most people, Yawart was the AUR helper, but it died, right? It eventually became Yay, yet another Yawart, which then became Paru. Paru's a fork of Yay. Yay's still there, but you get two competing projects essentially and then I've also tried Triesen. I've also tried many AUR helpers that are now dead. Pack AUR I think was one way back in the day, but Aura, I really like it because it's unique. That snapshotting feature, very unique. I love that. I love the removal of the orphan packages. It makes that a lot easier than using the standard packman commands to remove orphans, which involves quite a bit of code actually to make that happen. So if you're looking to try out a new AUR helper, give Aura a try and don't be afraid of the Haskell dependencies. Now, before I go, let me thank a few special people. I need to thank the producers of this episode. Ebsi gave James Mitchell, Paul, Scott, Wes, Iconi, Allen, Chuck, Kurt, David, Dylan, Gregory, Heiko, Mike, Erion, Alexander, Peace, Archon, Fator, Polytech, Raver, Red Prophet, Stephen, and Willie, these guys. They're my highest tier patrons over on Patreon. Without these guys, this quick look at the Aura package manager would not be possible. The show's also brought to you by each and every one of these ladies and gentlemen as well. All these names you're seeing on the screen, these are all my supporters over on Patreon because I don't have any corporate sponsors. I'm sponsored by you guys, the community. If you like my work and want to help me out, consider supporting DistroTube over on Patreon. All right, guys. Peace. And if you're going to install Haskell for Aura, might as well install X-Monehead.