 Let's talk about XBPS. XBPS is the package manager that's used on Void Linux. It was actually originally written for it, but it's supposed to be also a portable package manager. You could theoretically use somewhere else. I don't know of any other distros that use it yet, but of course I wanted to do this video because a couple days ago I mentioned that I've been using Void Linux again, and that means a bunch of people are going to be memed into using it themselves. So I'm going to talk about some of the basics about XBPS. How do you install, update, all the basic stuff that you might want to know or might need to know. So anyway, one thing about XBPS. Now, first off, it stands for the X binary package system. And X originally stands, it doesn't stand for Xorg or something like that. It originally stands for Xtreme. I think that's how he pronounces it. That's the guy who actually wrote XBPS and started Void Linux. Now one thing you'll notice is there's no XBPS manual. There is actually no individual XBPS binary, because XBPS is actually a couple of different programs, a constellation of programs that are pretty much related. They're similar in structure, but of course they're different commands. So for example, there is XBPS install. You can probably already guess what this is going to do. There's XBPS remove. There's other stuff like that. And so I'll go ahead and say my gripe, my complaint, which is the most superficial thing in the universe, but it legitimately does annoy me. It sort of annoys me that there are a bunch of different binaries, but it really annoys me that they're all a pain to write, because they're all XBPS, which is weird enough to press anyway, hyphen, which is five miles away on your keyboard, and then some other word. So I do recommend people to probably alias all of these. I think most people do, so I alias XI to pseudo XBPS install. That saves me a lot of time, stuff like that. So I alias pretty much all these commands, but that's one minor gripe. Again, it's superficial. It doesn't really matter, but whatever. That's the biggest complaint I have about XBPS, though. So anyway, let's get into how these programs actually work. So first off, how do you install something? So if you want to install something, you just run XBPS install, pseudo of course, if you're installing on your actual system, and run it on some kind of program. Okay, so GVM, which I don't actually know why I have this installed right now, but let's have something I definitely don't have installed. Emacs, okay? And you can install programs in the same way you expect on any other distribution. So let's talk about some of the options. Now, really, you can run just XBPS on a program, but you're recommended to write capital S. And capital S basically updates the package index just to make sure you're getting the most recent version of this. It's sort of equivalent to Y on Arch Linux on Pac-Man. So XBPS S is probably a more recommended way of doing this just to make sure you're getting the most recent stuff. If you run XBPS U, you don't have to give it any kind of arguments here, but this is update, you know, refresh and update all your packages because S is, you know, syncing the repositories and U is the program or the option that actually updates based on those mirrors or whatever. Now, occasionally, you'll see people run a capital SYU, and I think there are some people, I've talked to some people, some people think, oh, they'll see someone run XBPS install SYU because it looks like Pac-Man SYU and they'll think it's the same thing. It's actually a little different Y on XBPS install and in fact Y on pretty much any XBPS command. That's actually like automatically confirm something or, you know, say yes to any option. So it's not going to prompt you if you want to install it. So that's what Y actually means. Don't get it twisted. It doesn't mean like update repos or something like that. So one interesting thing about XBPS is that you can actually choose where to install particular programs. They have this option R. So you can choose another root directory to install programs in. Let's say, you know, you made some environment that you're going to put on a USB or something. You can actually just use XBPS to, you know, install programs there. There are a couple other options. I'll talk about them as we get into them but that are common among all XBPS commands. Like, for example, V does what you expect on pretty much any program. This shows more verbose output. Anyway, let's talk about uninstalling programs. And for that, you use XBPS Remove. So let's say I want to remove GVM. It will, you don't have to give it any other options and it'll just uninstall GVM. But usually what you want is you want, you know, your program to be uninstalled and all the dependencies that it relies on that you don't need anymore. So you should give XBPS Remove the capital R option and that will get rid of all the other programs that, you know, it uses that nothing else is, you know, using here. So let's actually just as an example, let's run this with Y so we auto-confirm it and also V to give us more verbose output just to see what happens. So you can see that's very verbose and it didn't ask us what we were doing because we gave it V and Y. And of course it uninstalled all of those related programs because we gave it capital R. And again, you can use like lowercase R to uninstall from some other repository that's not your root directory or something like that. Also, you can give, let me actually go back to XBPS Install. Let's say I run SNGVM. N is the option that basically it's a dry run if you just want to see what happens when you run something. N is an option you can give to pretty much any command as well. So there's V for verbose, Y for yes, N for dry run, and R for change your root. But all of those are constant across all XBPS programs pretty much. Anyway, so let's talk about the other command that I think is pretty useful is XBPS Query. I use that a lot. Again, I have it alias to XQ. Now usually of course you're not going to need root to run this because you're just like checking your package indexes or stuff like that. So if you just run it, it doesn't do anything by default. But if you give it the L option, for example, that's actually going to list out all of the programs that you have installed on your computer with a description. So you can use that as output for something. Let's actually count out to see how many programs I have installed. 712, okay. Additionally, you can search for remote packages. So let's say I give it the capital R and S options. And this allows us let's look for Emacs-related packages. So everything that has Emacs either in the description or in the name is going to pop up. You could also just give it a kind of a regular expression or glob matching I guess. I think it actually has another reg X option that's more specific. But if we want to see every package, we can just give it an asterisk, which of course has to be escaped because we're passing it as an argument. But if you give it that, it'll actually print out every single package that you can install with XBPS install. So let's actually count those out. I wonder how many there are. Okay, so there are nearly 11,000 packages in Void Linux's repositories right now. Additionally, you can also install other repositories. So I think if you XBPS Void, I want to say, let's probably give it RS. You can actually, so here's the interesting thing about their package system. You can, by default, Void Linux only has free software. And I actually like that. I like that there's a division between free software and non-free software. If you want to install non-free software, you need to install an extra repository. You can see the extra repositories with this command because they all pretty much have Void repo at the beginning. So really all you have to do is install, if you want non-free programs, you can just run sudo xbps install void repo non-free. Let's say you want Chrome or something and you can install that and that is going to allow you to install any other kind of non-free program that happens to be serviced by Void Linux. I really like this divide. I like the ability to install non-free programs if I want, but there is a delineation in the package managing system sort of like on Debian or something like that. And, of course, you'll also see that there's also a multi-lib repository if you want 32-bit packages or something like that or 32-bit and non-free packages. All that kind of stuff is there. So I will go ahead and say something. One thing that xbps doesn't have... Well, they do have it, but it's not exactly the same. One thing you might miss from Arch Linux is the AUR. Now, xbps does have an equivalent called xbps-src. I don't think I have that installed right now. I don't actually use it. I'll go ahead and say first off, Void Linux, in my experience, again, it has 11,000 packages and it's repositories now, even a couple of years ago when I was using it, they always seem to have better stuff than Arch Linux does in their main repos, especially if you watch my channel and you use the kind of programs I use. I've never really been wanting anything in the Void Linux main repositories. Now, they do... You can look up how to get xbps-src. It's sort of an equivalent of the AUR that's actually officially supported by the distribution. It doesn't update... It doesn't update to every commit, basically, so it's not as autistic as, you know, recent, I suppose, as the AUR usually, but it's usually pretty good. I just have no need for it. To say I do install a bunch of programs, but I'll just say Void Linux's repositories, they usually just have everything I need. A couple of the really minor things. I'm going to talk... Let me bring up xbps-remove for a second again. One thing that's really nice about xbps-remove, so you can remove programs with capital R. So let's say I want to uninstall gvm. Okay, it's already done. One other thing you can run is the O option. Basically, it doesn't do anything on my machine, but the O option gets rid of orphaned packages. So let's say, well, let's actually do an example here. Let's install gvm. So it's going to install gvm, and note that it installs two other packages. And let's say when I uninstall gvm, I don't give it the capital R option, meaning those other packages that were installed when I installed gvm, they're still on my machine. Now, if you run xbps-remove with the O option, that actually gets rid of orphaned packages. So that will get rid of those packages that were installed with gvm, but not uninstalled with it, because we didn't give it the capital R option. So you can get rid of those, and that's how you get rid of them. Additionally, you can run capital O, excuse me, capital O, and this will get rid of your cached packages. This is like the equivalent of Pac-Man, capital SC, where you get rid of old versions of packages that are still on your computer. So that's a nice thing if you want to clear up your system, or whatever. But I think that's pretty much it. These are the xbps commands that I use pretty much daily, or more or less daily. Again, it's easy to search for packages. It's nice that there's a difference in void Linux between non-free and free packages. You can use xbps-source. I might do a video on that separately on it. And it's generally pretty much the same as Pac-Man. It does all the stuff that Pac-Man can do, but it has some extra features, and really just the only thing I don't like, again, is the fact that all the commands are really long, but you can get over that. You can get over that, but that's about it for this video. Hopefully that's been a good enough introduction, and I'll see you guys next time.