Screenshot of QEMU VM showing an ASCII Gentoo Logo + system info
I followed Mental Outlaw’s 2019 guide and followed the official handbook to get up-to-date instructions and tailored instructions for my system, the process took about 4 hours however I did go out for a nice walk while my kernel was compiling. Overall I enjoyed the process and learnt a lot about the Linux kernel while doing it.
I’m planning on installing it to my hardware soon, this was to get a feel for the process in a non-destructive way.
Everyone should do this at least once
Agreed. It’s such a great learning process. I ultimately gave up on Gentoo but learned a lot by using it for about 2 years way back in around 2005.
Linux From Scratch brings a huge leap in understanding too.
Back in like 2011 I was living out of state for college. Had decided to drop out at the time so had limitless free time for a bit. I definitely used that time to compile my own kernel and setup gentoo lol. I haven’t played with gentoo since but it was fun and helped my appreciation for Linux.
Linux from Scratch is also an immensely powerful tool for deployment of secure software. Rebuilding the entire infrastructure between releases ensures threat actors can’t stay resident for long if the compromise production systems.
I found Gentoo more helpful than LFS because with LFS you compile about 80 packages from source one at a time but you don’t learn too much about the packages.
LFS gave me much more awareness of what packages actually come with a Linux install but Gentoo taught me more about configuring and booting a Linux system.
Although I’d definitely recommend both to anyone wanting to learn. I’d do Gentoo first then LFS.
Edit: LFS is also a masterclass in cross compiling so if that’s something you’re curious about LFS is the way to go.
I had considered trying it at one point. Unfortunately one specific user on discord kept telling me to install it to the point of dming me “gentoo” almost every day, at which point I blocked them and vowed never to install gentoo
Fuck that guy. Don’t let him influence you. Install gentoo or don’t, for your own reasons.
It is good fun if you’re really into Linux, I practically jumped out my seat when I crossed my fingers, rebooted and GRUB came up with Gentoo listed.
Arch teaches you the most important stuff without wasting too much on time… Not a Gentoo fan
Speaking from personal experience, see you on your old distro in a couple of days!
I’m putting it on my hardware as we speak, we’ll see :D
Compiling… Compiling… Compiling…
Congrats! I bet you learned a lot along the way…
I installed Gentoo once. ever. I use Ubuntu now.
This was in the mid 2000’s and I went so far as to compile the kernel myself and build out all the packages. I was so exhausted at the end of it all, that I’m pretty sure I put away that system and never looked back. It’s quite the achievement, but I don’t wish to repeat that experience.
Congrats!
Once you get it set just so, remember it’s ok to … leave it!
Ha
Hahahaha
Hahahhahahhahahahhaha!
Mwha Ha Haaaa!
This is the way
System boots, runs flawlessly.
Hmm
# emerge -deep world
One of us!
You can join our tiny community at !gentoo@lemm.ee
How much maintenance does Gentoo need once installed? I don’t mind a complicated install but it’s the constant tinkering I can’t deal with.
If you’ve done arch, it’s like long arch
Gentoo probably doesn’t have all packages. One of the reasons I love Arch is because it almost always has any package in the AUR. It’s a lot more work to try and get something installed on Ubuntu related distros. They try to keep up by using snaps and stuff but it’s still no comparison. Arch has everything.
Still it’s gets a bit boring now since I know it so well, so want to try Gentoo at some point also.
Nix has entered the chat.
And one day I’ll figure out how to use it.
one of the reasons I love gentoo is how easy it is to package things for it.
You know how for pkgbuilds you have to explictly write out the whole configure make make install stuff that pretty much every package uses some variation on? Gentoo abstracts that out to libraries (eclasses) that handle that sort of thing for each build system so you can focus down on anything unique to the package, like build system options.
Also sounds really cool.
Heres an example, ebuilds are named package-version.ebuild and that version in the filename is used to define variables (such as $P here which is the name-version) to make new versions as simple as copying the ebuild with the new version in the filename.
use_enable is used to generate the --enable-(option) or --disable-(option) as set by the user.
For more info, see the devmanual. They’re nice relatively straightforward bash like PKGBUILDs, but with the repetitious stuff taken out.
# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DESCRIPTION="GNU charset conversion library for libc which doesn't implement it" HOMEPAGE="https://www.gnu.org/software/libiconv/" SRC_URI="ftp://ftp.gnu.org/pub/gnu/libiconv/${P}.tar.gz" LICENSE="LGPL-2+ GPL-3+" SLOT="0" KEYWORDS="~amd64 ~ppc ~sparc ~x86" IUSE="nls" RDEPEND="!sys-libs/glibc" DEPEND="${RDEPEND}" src_configure() { econf $(use_enable nls) }
Gentoo has overlays which are similar to AUR, I haven’t felt like I’m missing packages compared to when I ran arch
Ok cool, even more interested in trying it now.
Try lfs
Yeah I did when I was new to Linux, several times. It was an awesome learning experience.
It’s pretty maintenance free.
The following will make the experience a bit more seamless:
- use stable packages
- use sys-kernel/gentoo-kernel or syskernel/gentoo-kernel-bin
- use sys-boot/grub or better yet sys-boot/refind which auto-recognizes the latest kernel in your boot directory
I don’t mind a complicated install
After you have “installed” Gentoo there will be quite lot of installing of different programs to build your own customized distro. However if you yse systemd you’d get quite a lot in one strike, since systemd contains a whole lot of the central core components, like system logger (journald). The other route is to use OpenRC and with it sysvinit or openrc-init and choose the rest of the components.
Asking your question (the one I’m replying to) at the Gentoo forums may give you better answers and tips how to build maintenance free setup.
Not much. Updates take a bit longer because you’re compiling, although Gentoo now has an official binary package host if you want to skip that step - you’ll only compile things that you’ve changed compile-time features to the extent that they don’t match the binhost now!
You don’t need to constantly tinker to keep the system running, at least, news is good for major changes, and we have a good ‘config file changed’ system.
Gentoo now has an official binary package host
With some limitations:
The binhost packages have the USE flags set as in an unmodified 17.1/desktop/plasma/systemd profile (with the exception of USE=bindist). The packages can be used on all amd64 profiles that differ from desktop/plasma/systemd only by USE flag settings. This includes 17.1, 17.1/desktop/*, 17.1/no-multilib, 17.1/systemd, but not anything containing selinux, hardened, developer, musl, or a different profile version such as 17.0.
Oh, I’m not talking about the experimental one. Keep an eye on news.
Haven’t seen any news about it.
I don’t have anything concrete to point you at, only conversations with developers, but the binhost project seems to have produced an official binhost that is just pending documentation and the formal announcement. :)
It’s official now. ;)
I remember how rewarding and satisfying it was when I finally installed Gentoo for the first time
Same. Gentoo taught me so much. Wouldn’t run it today, though. Ain’t got time for that.
I remember printing out the Gentoo installation manual in the compsci lab way back in 2004. It was my first Linux distro and have fond memories of tinkering around on it. I remember leaving it a few years later for a cool new distro that was on the rise called Ubuntu. I still think portage is one of the better approaches to package management though.
My first Gentoo install took like a week to get X running. It was my first foray into Linux (Ok, I briefly tried mkLinux).
I learnt the hard way, but I learnt. And I’m still on that same path: Gentoo. Why I don’t bother switching? Because I can customize Gentoo to whatever I like, so instead of doing distro hop I just reconfigure things.
Because I can customize Gentoo to whatever I like
Can you customise it to support AAA videogames?
Yeah. Install steam.
Why not?
I don’t have much experience on those games. I’ve bought around ten games from gog. And I specifically selected those which provided Linux native binaries. But there are AAA gamers among Gentoo users.
Not everyone is a gamer.
I did it from stage 1 once… wasn’t a fast computer either. You have to compile the tools to compile the tools. Then compile the base packages, then everything else…
Alas you can’t do that any more. Pity as it was fun.
Mazel tov!
Hehe… I installed Gentoo last year and I was thrown in the deepest of deep ends after having to set up a custom initramfs for my LUKS setup… took about a week to get it running…
I created a bash script which creates a custom initramfs for me every time kernel is updated. 😜 I know, I reinvented the wheel… kinda. My script actually only takes a list of files, directories, modules, firmware files and packs them into a cpio archive. The actual init scripts inside initramfs (for example) are not provided, but left for the user to write or copy from somewhere.
What is the value proposition of Gentoo over, say, something like NixOS?
Actual USE flags I guess? If you ultimately want these is a different question though
USE flags and profiles.
I have one old laptop where I decided to test some more obscure Gentoo setups. I chose musl as libc and took llvm toolchain to compile stuff. (All experimental)
It’s honestly cool stuff, but I don’t think a lot of people actually actively want that.
I tried something similar with Exherbo once but couldn’t get it to boot after installation, I don’t remember the specifics but I tried using libressl instead of openssl.
Interesting, looked at the Gentoo docs to understand USE flags. Nix has similar capabilities, where some packages expose configuration options that apply to the build, but it’s not a overtly named feature consistently applies across all packages. It seems that something like USE flags could be implemented rather easily by Nix but was either deemed not necessary or was an oversight. You can still change the build for any package but it might involve introspecting the package definition to figure out what to change so not meant as a first class mechanism like USE flags.
Edit: found this: https://github.com/NixOS/nixpkgs/issues/12877
USE flags have some inherent “issues” or rather downsides that make them non-options for some distributions.
First, they create a much larger number of package variants, simplified 2^(number of USE flags applicable to package). This is fine if you don’t want to supply binaries to your users. Second, the gain they bring to the average workstation is rather insignificant today. Users usually want all functionality available and not save 30 kb of RAM and then suddenly have to rebuild world because they find out they’re missing a USE flag that they suddenly need. Also, providing any kind of support for a system where the user doesn’t run the binaries you provided and maybe even changed dependencies (e.g. libressl instead of openssl) is probably impossible.
It’s very cool stuff if you want to build a system very specific to your needs and hardware, and I do believe that NixOS could have profited in some parts from it, but I don’t have specific ideas.
Yeah that thread i linked does talk about combinatorial explosion that would result in either a unmaintainable cache size or basically no caching at all of binaries. Your point about premature optimization is good. It makes me think that the seeming ignorance of USE flags by Nix was intentional.
I did it once on the first intel MacBook. It compiled for like 14 hours.