From Novice to Gentoo

So far my impression of Arch is that it has an elegant / convenient method for anything and everything. But I know that Gentoo still exists for a reason lol. I’ll give it a real earnest go and get back to you on my thoughts.

2 Likes

Wow, I need to read better

But yeah, they’re starting to seem a lot more similar than I originally thought

Oh, also @pantato, Gentoo ships with openrc by default instead of systemd. There are also “profiles” that can simplify the USE flags for you. Like you can switch from a ‘desktop-gnome’ profile to a ‘desktop-plasma’ and it will add something like “-gnome plasma” to the global USE Flags.

Technically, they also have documenation for BSD/Gentoo as well as doing things like using ulibc and busybox for the entire system, but I haven’t tried those out.

they also have documenation for BSD/Gentoo

Wouldn’t recommend it for anything other than curiosity, it’s poorly maintained.

you can edit your universal make flags in /etc/makepkg.conf similar to /etc/portage/make.conf

I was not aware of that, I’ll have to do a comparison.

Gentoo is love. Of all the distros, Gentoo’s design scratches itches that almost no other distros do.

And of everything I’ve used, ZFS on Gentoo is the most stable ZFS on Linux I’ve encountered.

1 Like
2 Likes

Great post OP.

I’ve been tinkering with Funtoo lately, which is a close cousin of Gentoo. I actually think that these distros are easier to install than Arch. For instance, Arch asks what window manager you want to use … which is great, but in the Gentoo and Funtoo handbooks (yes, I’ve been reading both) they actually make recommendations based on compatibility. You don’t have to accept the recommendation, but at least it gives you a starting point, if you’ve never thought deep thoughts on the subject of window managers.

I would say that the concept of use flags is easy to grasp and their power is nothing short of awesome. But, the day to day task of actually managing use flags can take quite a while to master and I still periodically shake my head. Why, for instance, am I getting error messages about Python, when I have clearly configured my Python preferences?

Anywho, these distros are a lot of fun and definitely educational, but I wouldn’t recommend that you install them onto your primary machine, until you become proficient! Compiling can take some time on my antique Ivy Bridge T420 ThinkPad, but configuring a RAM disk for the compiler makes things go surprisingly quickly. Bottom line … don’t let the horror stories scare you away from these distros, particularly if you have a micro-management / control freak sorta personality. You’ll be in heaven!

2 Likes

So, it’s 7:30 AM here and i’ve basically a free Sunday. Going to get myself the current bootable ISO and try to get gentoo going on a spare 500G SSD on my Ryzen System. Which me Luck :wink:

Edit: From my previous installs it seems, that i wouldn’t need a gentoo live iso, correct? I could “just” use something like ubuntu live to install gentoo, so i can have a graphical environment with browser and such?

3 Likes

I seem to recall that you can but you can also install it in a vm and then boot from the sdd.

1 Like

From my previous installs it seems, that i wouldn’t need a gentoo live iso, correct?

There’s no Gentoo special sauce. If you’ve installed Arch, the ‘pacstrap’ step does essentially the same thing. Or debootstrap with the debian-installer.

There’s also a few Gentoo-based LiveCDs if you want to make sure it contains all your needed tools. Calculate Linux has a few different flavors of desktop, and does things in a Gentoo Way (more or less). SystemRescueCD used to be the recommended LiveCD, but they recently rebased to Arch and I’m not sure that is still valid.

But anything with a sane tar version should be fine.

1 Like

Holy Hell, what a ride.
So, i managed to somehow do it. I’m now writing to you from a fresh Gentoo system. Including awesomewm and freakin’ Nvidia drivers.
To get this done, i went with the binary version of firefox, but other than that, stuff just seems to be working:

There’s still a LOT to be done, but i have a working system. I never worked with openrc before, so that’ll be fun. Some x configuration like keyboard layout is on the todo list and such. But really, the big stuff is done. I’ve got Nvidia working with multilib, my system just boots fine and all the peripherals seem to be working.

Thank you so much again for posting this and motivating me to finally power through this! I’m sure a lot of my install is unoptimized and all over the place, but it freakin works. So happy :grin:

11 Likes

By the way, i just realized, that gentoo installs a 4.X kernel by default. From those who have been running Gentoo for longer: Is an upgrade to a 5.x Kernel advised? And, would i have to go through the whole kernel configuration again, or would it reuse my initial settings from install?

1 Like

I’m sure a lot of my install is unoptimized

You can’t optimize without a target. Gentoo helped me recognize that.

It’s way more interesting to take to Gentoo users about why they customized their system the way they did. You run into stories about the time they found out their favorite media player supported hardware acceleration, but it was disabled at compile time on nearly every distro. :slight_smile:

I’m running sys-kernel/git-sources on my main desktop and I did have an issue with the jump from 4.20 to 5.0 but it seemed to be something with my machine and I was able to fix it within about a day.

I think you can copy your .config file from a previous kernel source or take your currently running config (if you’ve enabled live viewing of configs) then make oldconfig (or some variation) to get a current config, then run make menuconfig to configure as normal.

As always though, it helps to Read The Fabulous Manual :wink:

1 Like

protip: run emerge with --jobs (# of jobs) and you can have multiple packages building at the same time. It’s dependency aware and everything too so no need to worry about it doing things out of order. Gets larger builds with many deps done much quicker than they otherwise would.

2 Likes

Don’t run with with -j by itself. That runs with unlimited jobs. I did that and everytime I compiled GCC it rebooted my server. Took me forever to figure out. Normally, they say do -j $(( $(nproc) +1 )).

You can also specify that stuff in your /etc/portage/make.conf file. I have MAKEOPTS="-j17" for an 8 core with SMT (so 16 threads). Setting -l will allow you to set a max load. Doing that in conjuction with -j will allow you to use 8 threads, unless it gets to 50% load or something like that, to garauntee that you can do stuff in the background.

I also have EMERGE_DEFAULT_OPTS="-a --with-bdeps=y --autounmask-continue --quiet-build=y" set in that file so whenever I build something with emerge vim, it changes it to emerge -a --with-bdeps=y --autounmask-continue --quiet-build=y vim. Definitely read the options before putting them in the make.conf (especially with autounmask) but it makes life simpler

1 Like

Having tried it before on my old system i had reservations. But those are no longer relevant so i think I’ll give it another go…

Thing that keeps nagging in the back of my head having toyed with other distro’s is optimizations, leaving free performance on the table doesn’t sit right with me. How much difference it makes in benchmarks i don’t know, probably not as much as Clear linux but in use that distro feels quite a bit snappier than others. But it has quirks i don’t want to deal with.

Anyway i also have a spare ssd laying around so I’ll just run it along side Fedora and win10, see how it goes.

1 Like

I’m not talking about makeopts. I’m talking about emerge opts. For example, my EMERGE_DEFAULT_OPTS line in my make.conf:
EMERGE_DEFAULT_OPTS="--jobs 1024 --load-average 24"
This means that emerge will start compilation on a maximum of 1024 packages simultaneously, with a maximum load average of 24. Do know that it will never hit that maximum jobs, but will stop early due to depsolving, and rarely hit the load average. But it does make a large difference.

1 Like

So would you have to balance that with the MAKEOPTS? Like if I have an 8 core / 16 thread cpu, I don’t think I could have MAKEOPTS="-j 17 -l 17" and EMERGE_DEFAULT_OPTS="--jobs 1024 --load-average 16", right?

I have MAKEOPTS="-j16" (the cores+1 is a myth, its actually slower) and it will still manage to emerge 10 things at the same time without hitting the load average. My load average is set to cores*2

2 Likes

changing that now. Thanks! You learn something new everyday!

2 Likes