Gentoo user, migrating to void

The main difference to gentoo is that you have 2 package managers in one, well, more like one split into 2, for binary and for source packages. You'll have a source tree that gets synced just like in gentoo, with template files just like ebuilds, and xbps-src to build and install like portage. The main difference is, that void uses a chroot part of the source repo to build the pkgs, so you don't need to have any packages polluting your host system. If I'm not mistaken that's the recommende way of the arch build system, too. When you build a packagem void chroots into a builddir, pulls in the needed dependencies and compiles it, then puts the the binary in a local package repo on your host or some other location.

Now, say you build firefox and rust is needed, then rust gets installed in the chroot and void can check in your local repo (have you build rust before?) or in the remote void repo (a binary gets downloaded) to find it. No need for rust installed on your system. The build chroot can be used as a tmpfs ( -t flag) which gets immediately deleted after the build, you can build a pkg in steps to make manual changes (download distfile, extract into builddir, patch, compile) and patches or custom (kernel) configs can be put into directories next to the template which gets them automatically applied when you tell xbps-src to make a build.

To build a kernel, use xbps-src to prepare the build chroot, download and configure the source in the chroot, but not compile yet. Then go into the builddir, do make menuconfig, save you config, put it into the directory "files" next to your template, clean the builddir with xbps-src. Do a normal build with xbps-src pkg linux*.

"xbps-src update-sys" updates you system from source. Learn how the pkg manager works, it's the most easy and convenient I personaly know. You will lack use flags, there are a few, but nothing compared to gentoo, that's the downside for having everything as binary available too. If there's a pkg not building, you can just use a binary (general rule, depends on changes you made yourself to your system).

/r/voidlinux Thread