The Gentoo Novice

This is a joint topic/post. There are comments from @4dandl4
interleaved with the text.

There is nothing quite like an adventure.
It has to be new, it has to involve some risk,
it has to be intreagueing and there must be some goal.
One of the best Linux adventures you can have is
to try installing and using Gentoo.

I took the plunge into Gentoo over the last 2-3 weeks.
I did have a try once before, in an old 32 bit laptop.
I got as far as getting the CLI running, then gave up.
The old hardware was simply too slow.

It is a different story today. Modern hardware copes
with the demands of compiling Gentoo quite efficiently.
The challenge today is the learning curve. Gentoo does
not have an installer - you install it by hand using Linux
CLI commands. The Gentoo package system ( called portage)
is radically different from what you get with apt or rpm.
Once you get Gentoo working, its usage is just like any
other rolling release Linux - the adventure is over.
What you get is an ultra fast Linux tailored to your usage.

Some words of advice for any Gentoo novice wanting
to try an install

  • use the Gentoo Handbook

(There is a lot information, about on how to install Gentoo, but
the Gentoo Handbook is the best that I have found.)

https://wiki.gentoo.org/wiki/Handbook:AMD64
It contains everything you need. You need it by you
on another computer, while you install. It is at least
as good as the Arch documentation. Follow it closely.

  • get some help. My NoviceMaster was @4dandl4. Even with
    the Handbook, I needed explicit guidance at several critical
    places. The handbook will not rescue you when you make a mistake .
    A real helper is needed for that.
  • allow some time. You need to soak this in, not skip
    thru it learning nothing. Just to get to a bootable Gentoo with
    a CLI meant leaving my computer on for many days, tying it up
    completely. You need a spare computer for other tasks while
    installing Gentoo.
  • be prepared to learn. There is a lot of learning. It is
    not all done for you by a fancy install script. You have to
    drive it, step by step.

What follows is an outline of what happened during my
Gentoo install. This is a story, not a set of install instructions.

  • start with what is referred to as a minimal install CD.
    The one I used was called install-amd64-minimal-20230108T111708Z.iso .
    This is a bootable iso file containing a live Linux which you use to

(If one is installing to real hardware one can use the live gui iso and
boot it using Ventoy or make a bootable usb. You can then copy and
paste commands from the Handbook to your Gentoo install. )

issue Linux commands needed to carry out the install. In the first
stages of the install you are ‘in’ this Linux issueing CLI commands.

  • the live cd will make an internet connection if you have ethernet,
    and it allows you to use Linux to do some fundamental things like
    set a root password, define a swap partition. mount the partition
    to be used for the Gentoo root filesystem, set the date and time.
    I installed to an SSD on which the partitions had already been set up.

You can see I have 7 partitions. Debian is on sda4, and Gentoo is to go onto sda5.

(Concerning filesystems and partitioning> About the only thing I do is use
lsblk to know where I am at and cfdisk to make partitions, just make sure
you partition the correct drive. For the record, although Gentoo can be installed
using one / root partition, it really likes to have /boot for the first
partition on the drive, that is bootable, also it does very little good to set
a /home partition.)

  • the next stage involves downloading what is called a stage 3 tarball.
    Here you get to choose . There is a list of available tarballs here
    AARNet Mirror
    or at any other Gentoo mirror site. I chose
    current-stage3-amd64-desktop-openrc/
    because I wanted OpenRC, not systemd, and I wanted multilib
    capability because I have some 32 bit software.
    The tar file simply downloads straight into your ‘live’ system.
    What it contains is all the basic software needed by Linux,
    except the kernel. Yes Gentoo builds everything except the kernel
    first, then adds a kernel.
  • The tarball contents have to be compiled. Here is where the
    fun starts. The Portage system controls the compiling, and
    has to be configured. The configuration file is `/etc/portage/make.conf’.

(I cannot stress enough the importance of the Gentoo make.conf. It is the
heart and soul of gentoo, yes you can leave it as it is, but I doubt
you will get a working Gentoo. Do some research, know your machine, for the
make.conf controls the tone of what will be compiled.)

Here is an example of a /etc/portage/make.conf file

COMMON_FLAGS="-march=haswell -O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"

# NOTE: This stage was built with the bindist Use flag enabled

# This sets the language of build output to English.
# Please keep this setting intact when reporting bugs.
LC_MESSAGES=C

MAKEOPTS="-j4"
CHOST="x86_64-pc-linux-gnu"
CPU_FLAGS_X86="mmx mmxext sse sse2"
#ACCEPT_LICENCE="*"

ACCEPT_LICENCE="@FREE @BINARY-REDISTRIBUTABLE"

GENTOO_MIRRORS="https://mirror.aarnet.edu.au/pub/gentoo/"

GRUB_PLATFORMS="efi-64 pc"
INPUT_DEVICES="evdev keyboard mouse synaptics libinput"
VIDEO_CARDS="intel"
ACCEPT_KEYWORDS="amd64"
USE="bindist X alsa pulseaudio"

I made a mess of configuring it first try, and had to be rescued by @4dandl4.
The handbook was not sufficient at this point, I needed working
examples of make.conf files.

  • before compiling there is some more configuring, and some mounting
    of filesystems. Then one sets up portage and does a
    build using the emerge command. At this stage one should go to lunch -
    it took about 2 hours in my computer.
  • the next stage is called ‘Chroot’ in the Gentoo handboot.
    It involves setting the root of the filesystem to the ‘/’ directory
    of the newly compiled Gentoo. There are many other details, including
    and update, setting USE variables, timezones, and selecting a ‘profile’ .
    My profile was `default/linux/amd64/17.1/desktop(stable).
  • then we are ready to install firmware ie driver modules) and compile a kernel. I
    fell over at the firmware step and had to be helped setting
    ACCEPT_LICENCE and package.licence.

(ACCEPT_LICENSE=“" that I have
used, is being phased out and replaced with ACCEPT_LICENSE="-
@FREE @BINARY-
REDISTRIBUTABLE” in make.conf, you will then have no license issue
installing sys-kernel/linux-firmware.)

Compiling the kernel though, was easy - I used genkernel, but one can
hand configure it . Compiling took about an hour.

(I can still remember my first manual kernel install, although I got
the machine to boot, it wasn’t after several trips back to the
“make menuconfig”. There are other options also for kernel config.)

  • There follows some tidying up - setting hostname, installing
    dhcpcd so a network would come up when it boots, setting passwords,
    installing grub if wanted . I declined, I already had grub.
  • then I am ready to boot the new Gentoo. Come out of chroot, back
    to the livecd system and do reboot. I get a grub menu and can boot my
    Debian and do update-grub. Then reboot and I get grub menu containing
    Debian and Gentoo, and I can boot Gentoo. It comes up with a CLI
    login prompt - there is no X11 or DM or DE yet.
  • time for a backup
  • final step is installing vi, Xorg-drivers, Xorg-server, xfce4,
    and lightdm. Then I have a Gentoo with graphical login and DE.
    It looks like the following screenshot

It is a conventional Xfce screen with bottom panel popup, top panel withh App Menu, and filesystem icons on left. The terminal window is doing an emerge --search command.

  • Not quite done. I needed Firefox. Gentoo has firefox-bin available so you
    dont need to compile. It does however require some dependencies such as pulseaudio and alsa. When I first tried it said ‘Circular dependencies’ - ie some of the dependencies of firefox depend on each other in a circular fashion. Then followed something like a game of ‘Dungeons and Dragons’ trying to break the dependency cycle. I did succeed, again with some help. I am writing this now in Firefox in Gentoo.

Summary:
The whole business took more than a week (not full time by me,
but it tied up a machine for a week). I learnt a lot, I needed help,
I like the result and I think next install I may graduate to Novice
Grade 2 and get by with minimal coaching.
Here are some impressions

  • Compiling is the least worry. On a modern machine compile times
    are reasonable. Downloads of source code are smaller and faster than binaries.
  • following the Gentoo Handbook steps is like a game of
    ‘Snakes and Ladders’ . I had to go back several times and
    correct things
  • Gentoo boot is lightning fast - faster than Void. Something less
    than 10 sec in my machine. - When you finally get a running Gentoo system,
    it looks like any other Linux. You can have your familiar DE, it has
    all the options.
  • Portage is a big learning curve. You have to use it. It controls
    downloading and compiling and installation of updates.
  • Gentoo is rolling release - you need regular upgrades.
  • What you get is a system containing exactly what apps you asked for,
    and very little more. The apps and kernel will be optimised for
    your machine. That is the advantage over binary installs.
    Time will tell whether it is worth the effort.

(Is it worth the effort? I believe this answer lies within the user whom may
want to give Gentoo a try. If you like pre-built software, then hell, you
might as well be running Windows. I started my adventure with Gentoo over 5yrs
ago, using an old hand-me-down 32bit PC that took a week just to compile
Gentoo to a CLI. Now I will not set here and blow smoke up your xxxxx, but
learning just the basics of Gentoo takes time and for some, even a lifetime.
Does that make Gentoo any better than any other Linux Distro or even
Windows? In two words, hell no, but it is different and fun and sometimes
even impossible, to work with.
I want to thank @nevj for the acknowledgment and for the confidence in my
advice. You had me thinking on a couple of issues. I feel like I have made
a friend, through Gentoo, so the pleasure has been all mine.)

I would like to conclude with a thank you to @4dandl4 for his
patience and guidance.

5 Likes

Welcome to the Gentoo Community!!! BTW I run Gentoo!!!

1 Like

Decided to take the plunge…

Currently installing Gentoo in a VirtualBox VM - then I’ll install it alongside Win10 on my spare laptop (Dell Latitude 7270, which is the 4th fastest laptop I have access too [1 and 2 = my MacBook Pros, 3 = Ryzen 5 ThinkPad]).

I read somewhere that Slackware sits somewhere between Arch and Gentoo, right now it’s feeling MUCH more like my memories of Slackware 3.0 circa 1995… For shits n giggles, I have installed Arch in the past, but didn’t see the point.

I DO see the point of Gentoo… It’s a great exercise, but still not as low level as LFS…

Unlike @nevj I’m going with SystemD…

This install guide : Installing the Gentoo base system - Gentoo Wiki reminds me a lot of Patrick Volkerding’s Slackware Install Guide (which I printed out, all 150-200+ pages, on a Laser printer at work - I may even still have it somewhere - it was a precious “tome” at one stage, to me).

I like the way you can fire up SSHD and do the install remotely (I LOATHE being unable to paste stuff into a console!).

I HATE the way the chroot doesn’t have vi / vim !!! WTF? Tried to install it (per an online article) into the chroot with “emerge vim” and I think it screwed with all the things I’d done in the chroot earlier (e.g. it couldn’t find bzip2 or grep or even nano!). Pretty unforgiving of the unwary.

So - anyway - I rebooted will go through it again… Interesting stuff…

Hmmm - this line (I know what it does) :
source /etc/profile
second time around screws up my profile - so - because the chroot was the same one as before…

So it’s back to square 1.1 or 1.2, i.e. create a new root on /dev/sda2…

Still keeping me interested anyway :smiley:


Hmmm - doesn’t seem to like Ventoy (attempting install on the Dell at the same time as VirtualBox - not to worry - will try direct to USB with dd) - also “emerge --sync” seems to get a time-out somewhere near the end, so that “eselect profile list” doesn’t work (it did work on my first attempt, but after that I screwed up my profile by trying to install vim with “emerge vim” in the install chroot).


The thing to watch out for at the end of “emerge --sync” is this :
Action: sync for repo: gentoo, returned code = 0
Last 2 times I got “code = 1”…


Well I think you will enjoy the exercise and the end product will run like a Deere.

I dont get that… you should be able to emerge things into any running system. It might be that the chroot environment is very early days and lacking something.
Its an idea to get a minimal system going, come out of the chroot, and backup. Then you can start from there.

What profile did you choose?

Slackware sits somewhere between Arch and Gentoo, right now it’s feeling MUCH more like my memories of Slackware 3.0 circa 1995
I reckon portage is like the BSD ports system, with a bit of automation.
Once you get a window system, it is much like any other distro to use. Just sync and update world ideally weekly.

@daniel.m.tripp
Get Gentoo to the CLI and you can then you can work with it. What does your nano /mnt/gentoo/etc/portage/make.conf look like?

1 Like


I compiled Gentoo into VirtualBox in about 4hrs tonight, If you need help ask!!!

OK - I gave up about 2 hours ago… kept hitting the same snag…

This :

(chroot) livecd / # emerge --ask sys-kernel/linux-firmware

These are the packages that would be merged, in order:

Calculating dependencies... done!
Dependency resolution took 0.55 s.


!!! All ebuilds that could satisfy "sys-kernel/linux-firmware" have been masked.
!!! One of the following masked packages is required to complete your request:
- sys-kernel/linux-firmware-99999999::gentoo (masked by: || ( ) linux-fw-redistributable license(s), missing keyword)
A copy of the 'linux-fw-redistributable' license is located at '/var/db/repos/gentoo/licenses/linux-fw-redistributable'.

- sys-kernel/linux-firmware-20230515::gentoo (masked by: || ( ) linux-fw-redistributable license(s))
- sys-kernel/linux-firmware-20230404::gentoo (masked by: || ( ) linux-fw-redistributable license(s))
- sys-kernel/linux-firmware-20230310-r2::gentoo (masked by: || ( ) linux-fw-redistributable license(s), ~amd64 keyword)
- sys-kernel/linux-firmware-20230310-r1::gentoo (masked by: || ( ) linux-fw-redistributable license(s))
- sys-kernel/linux-firmware-20230310::gentoo (masked by: || ( ) linux-fw-redistributable license(s), ~amd64 keyword)
- sys-kernel/linux-firmware-20230210::gentoo (masked by: || ( ) linux-fw-redistributable license(s))
- sys-kernel/linux-firmware-20230117::gentoo (masked by: || ( ) linux-fw-redistributable license(s))
- sys-kernel/linux-firmware-20221214::gentoo (masked by: || ( ) linux-fw-redistributable license(s))
- sys-kernel/linux-firmware-20221109::gentoo (masked by: || ( ) linux-fw-redistributable license(s))
- sys-kernel/linux-firmware-20221012-r1::gentoo (masked by: || ( ) linux-fw-redistributable license(s), ~amd64 keyword)
- sys-kernel/linux-firmware-20221012::gentoo (masked by: || ( ) linux-fw-redistributable license(s))
- sys-kernel/linux-firmware-20220913-r2::gentoo (masked by: || ( ) linux-fw-redistributable license(s))
- sys-kernel/linux-firmware-20220815::gentoo (masked by: || ( ) linux-fw-redistributable license(s))
- sys-kernel/linux-firmware-20220708::gentoo (masked by: || ( ) linux-fw-redistributable license(s))
- sys-kernel/linux-firmware-20220610::gentoo (masked by: || ( ) linux-fw-redistributable license(s))

For more information, see the MASKED PACKAGES section in the emerge
man page or refer to the Gentoo Handbook.

(chroot) livecd / #

Went back and verified everything again - same error… I’d already installed linux-firmware with emerge… So no idea what I was doing wrong.

Here’s the list of commands I ran after setting up filesystems :

swapon /dev/sda2
mount /dev/sda3 /mnt/gentoo
tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner
mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
mkdir --parents /mnt/gentoo/etc/portage/repos.conf
cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
cp --dereference /etc/resolv.conf /mnt/gentoo/etc/
mount --types proc /proc /mnt/gentoo/proc ; mount --rbind /sys /mnt/gentoo/sys ; mount --make-rslave /mnt/gentoo/sys ; mount --rbind /dev /mnt/gentoo/dev ; mount --make-rslave /mnt/gentoo/dev ; mount --bind /run /mnt/gentoo/run ; mount --make-slave /mnt/gentoo/run
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) ${PS1}"
mount /dev/sda1 /boot
emerge --sync
eselect profile list
# eselect profile set #N - e.g. 8
emerge --info | grep ^USE
# A full description on the available USE flags can be found on the system in /var/db/repos/gentoo/profiles/use.desc.
less /var/db/repos/gentoo/profiles/use.desc
nano -w /etc/portage/make.conf
emerge --ask app-portage/cpuid2cpuflags
cpuid2cpuflags
echo "*/* $(cpuid2cpuflags)" > /etc/portage/package.use/00cpu-flags
ls /usr/share/zoneinfo
echo "Australia/Perth" > /etc/timezone
emerge --config sys-libs/timezone-data
ln -sf ../usr/share/zoneinfo/Europe/Brussels /etc/localtime
nano -w /etc/locale.gen
locale-gen
eselect locale list
eselect locale set 5
env-update && source /etc/profile && export PS1="(chroot) ${PS1}"
# Installing the kernel sources :
emerge --ask sys-kernel/gentoo-sources
eselect kernel list
# eselect kernel set #N
mkdir /etc/portage/package.license
emerge --ask sys-kernel/linux-firmware
emerge --ask sys-kernel/installkernel-systemd-boot
emerge --ask sys-kernel/gentoo-kernel
emerge --depclean
emerge --prune sys-kernel/gentoo-kernel sys-kernel/gentoo-kernel-bin
emerge --ask @module-rebuild
emerge --ask sys-kernel/genkernel

I’m not giving up completely, but probably won’t touch it again for a few days…
I’ll probably start again, all over from scratch - and maybe use this instead of that Gentoo Guide (which has far too much information, and too many choices) :
https://www.unixmen.com/a-beginners-guide-to-install-gentoo/

I think its that - ie a licence problem.
What I have in /etc/portage/make.conf at moment is

ACCEPT_LICENCE="@FREE @BINARY-REDISTRIBUTABLE"

Note the minus not underscore, just for inconsistency.
I spent days on that issue, with lots of messages to @4dandl4 .
I think @4dandl4 now has a better setting for ACCEPT_LICENCE… ask him.

I would stick with the Gentoo guide.
That link does not even have an ACCEPT_LICENCE setting in make.conf.

Dont give up.

@daniel.m.tripp


This is my make.conf for the virtualbox install, using Ubuntu as a host. Use the gentoo hanbook for a guide, do not take shortcuts, use openrc profile for virtualbox. I can walk you through this install, if you would like? Message me.

Can you explain the -* in ACCEPT_LICENCE?

The -* gives full permissions for the licenses that are entered in the make.conf file. Some license will not fully work without this. It is actually a fallback to the old “*” that, sometimes still works. Hope this helps or explains.
The most important setting for a gentoo virtuabox compile is the -march=, I have found that just leaving it at -02 -pipe gives a much better compile with virtualbox.
You can forget quickgui for a Gentoo install.
Do you think @daniel.m.tripp will reach out for help?

1 Like

I think Daniels problem is finding time.

I can certainly understand that!!!

The “nice” thing about a gentoo install, is that you can leave it - shut it down / power off - and come back later after you’ve booted (and in my case, set a root password and started sshd) and loaded the chroot…

My /etc/portage/make.conf looks nothing like either of yours :

  GNU nano 7.2                                             /etc/portage/make.conf                                                        
# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
COMMON_FLAGS="-O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"

# NOTE: This stage was built with the bindist Use flag enabled

# This sets the language of build output to English.
# Please keep this setting intact when reporting bugs.
LC_MESSAGES=C.utf8

GENTOO_MIRRORS="https://mirror.aarnet.edu.au/pub/gentoo/ \
    http://mirror.aarnet.edu.au/pub/gentoo/ \
    rsync://mirror.aarnet.edu.au/pub/gentoo/"

I don’t have “-march=” in my make.conf, but I do have this :
COMMON_FLAGS="-O2 -pipe"

But I want systemd, I’m perfectly happy with systemd, and grown accustomed to it (I agree the old SysV init style was less complex). What I most like about systemd, is running user services, e.g. with Resilio Sync I do this :

sudo sed -i -e 's/'multi-user.target'/'default.target'/g' /usr/lib/systemd/user/resilio-sync.service
sudo loginctl enable-linger x
systemctl --user enable resilio-sync
systemctl --user start resilio-sync && systemctl --user stop resilio-sync
sudo systemctl stop resilio-sync

Tried doing that on a non SystemD Linux in last couple of years (can’t remember which one) - and remembered, I needed rc or rc.local scripts - but I don’t want root running them - I’m sure it’s possible to run rc scripts for a particular user, but I’ve zero interest in learning how to do that on legacy infrastructure, nobody, BUT NOBODY, running Linux workloads in corporate environments, bypasses or eschews systemd… Damn - there I go, I’ve started a rant about systemd :smiley:

I’m going to plonk :
ACCEPT_LICENCE="-* @FREE @BINARY-REDISTRIBUTABLE"

Not sure I fully understand about using a Ubuntu host to load a Gentoo chroot and install there, I understand the concept, but the Gentoo install guide doesn’t really cover that - and being a newbie, I don’t want to further muddy the waters.

Also - my make.conf seems to be missing a bunch of stuff (like more “ACCEPT” arguments). I don’t recall reading anything about how to populate those in the install guide (the “official” one from https://wiki.gentoo.org/ ) - my issue with that install guide, is the formatting - it’s not formatted logically, so if you read the whole thing as a text dump, you miss some of the if, then, else caveats… Hence why I wanted more of a dummy’ or n00bs guide to gentoo…

Note : just found a whole other page (linked to from the install guide) about licensing :
https://wiki.gentoo.org/wiki/Handbook:AMD64/Working/Portage#Licenses

Anyway - I’ve plagiarised some of @4dandl4’s make.conf file :

# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
COMMON_FLAGS="-O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"
# from Daniel Phillips
CHOST="x86_64-pc-linux-gnu"
MAKEOPTS="-j4"
# end
GENTOO_MIRRORS="https://mirror.aarnet.edu.au/pub/gentoo/ \
    http://mirror.aarnet.edu.au/pub/gentoo/ \
    rsync://mirror.aarnet.edu.au/pub/gentoo/"
# from DanP
VIDEO_CARDS="virtualbox"
INPUT_DEVICES="evdev keyboard mouse synaptics libinput"
CPU_FLAGS_X86="aes avx mmx mmxext pclmul popcnt rdrand sse sse2 sse4 sse4_1 sse4_2 ssse3"
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="-* @FREE @BINARY-REDISTRIBUTABLE"
GRUB_PLATFORMS="efi-64 pc"
USE="bindist mount xorg X"
# end 
# NOTE: This stage was built with the bindist Use flag enabled

# This sets the language of build output to English.
# Please keep this setting intact when reporting bugs.
LC_MESSAGES=C.utf8

and will try this… Cheers for the assist mate!

Because of the sheer bulk of the documentation, I think I might be mixing up kernel source, and genkernel installs?


Anyway - my hybrid / plagiarised / mongrel of a make.conf let me progress further - but - I didn’t really learn anything…

I reckon I might save what I’ve done so far… and use that… e.g. when I build on my Dell Laptop (alongside / dual boot with Windows 10 [I hardly ever use it]).

Who knows? In six months time I could be running Gentoo nearly everywhere :smiley: (unlikely though!)

You are right. The guide is deficient in decent examples of make.conf. Use @4dandl4 's make.conf, as you said plaguerize it. I had same trouble.

Try genkernel first. A manual kernel config is more difficult.

@daniel.m.tripp
daniel I can help you install Gentoo, but I think you are trying with a misleading conception of what really makes Gentoo, Gentoo is an adventure, not just some click and install scenario, and installing in VirtualBox, can be even more frustrating. Their is no telling on how many VB VM’s I have deleted, simply because I made an error or the VM just would not boot
Now the first thing that is in need of discussing is VirtualBox and your settings for VB. The only way I can get VB to work with Gentoo is to use the VBOXVGA settings and use the VIDEO_CARDS=“virtualbox”, not sure the SystemD profile will work with VB.
My make.conf may not work on your machine, so some info on your machines specs would be something to work with. Does your laptop have a Ethernet port, or just wifi? I know daniel, that you have far more knowledge of Linux than I, but I believe you need to forget the ssh part and just fire up an Gentoo ISO or CD and do a manual install.

1 Like

Duly noted : but I think I already understood that… Remembering spending hours compiling kernels for Slackware to use ethernet NICs (kernel 1.2.13 was even more monolithic than it is today i.e. before modules! [I think modules were experimental in kernel 1.3.x tree, which became kernel 2.x]) - only to have if barf out near the end, or refuse to load ethernet support, or SuperVGA, or Soundblaster, for me to have to do it all again (on a 386DX with a piddling 8 MB of RAM - that was the first time I had an extra PC alongside my regular 486 - which I mostly ran Windows 95 on).

With your assistance (make.conf) I’ve progressed onto the next step after :

* Kernel compiled successfully!

I’m now ready, I think (hopefully) to edit the chroot /etc/fstab with actual partitions (not the ramdisk ones)

Also - I’m going to continue using SSH to do the installs, because that’s how I like to work, I spent countless hours once to ensure that iLOMs supported serial on Linux (Oracle VM for x86) only to have a shonky cowboy colleague break it all!

That’s what I love about UTM (“friendlier” MacOS frontend to QEMU) - I can set a VM console to serial - I wish that was easier in VirtualBox… But being able to SSH into a running install is nearly as good…

2 Likes

About the only kernel I compile now is the sys-kernel/gentoo-kernel-bin. I have manually compiled, a few times, on a couple of 32bit machines.

1 Like

OK - significant progress :


Couple things I DETEST - e.g. the doco mentions setting the root password, and it has a HIDEOUS ENFORCED password complexity that I didn’t invest the time trying to get around (so I basically just used same string twice - which defeats the purpose of enforced password complexity!) - and it fails to mention the default sshd_config disables root access over SSH… I’m usually fine leaving this set as default on Ubuntu / Debian systems - 'cause I always have a user with sudo privileges… But so far I only have root on this system.

So - once I (MAN I LOATHE using nano - I don’t understand it at all - Ctrl+U to paste sure - but WTF is “M-6 Copy” ??? Tried meta (super)… Tried Alt… Nada… And somehow f–king VIM is “Masked” :

gentoo-mungrel00 ~ # emerge --ask app-editors/vim

 * IMPORTANT: 1 news items need reading for repository 'gentoo'.
-- snip snip --
!!! The following installed packages are masked:
- app-admin/eselect-1.4.22::gentoo (masked by: package.mask)
/var/db/repos/gentoo/profiles/package.mask
-- snip snip --

So I have to use nano to unmask it??? in /var/db/repos/gentoo/profiles/package.mask ? How do I do that?

Tried this (per above output) :
emerge --ask app-admin/eselect

And now I get less errors with
emerge --ask app-editors/vim

But it’s STILL NOT THERE! vim is obviously more obtuse than nano (to me anyway) you’d a thunk an obtuse system like gentoo would have “vim” by default… About 10 years ago I was distro hopping, and tried Sabayon, which didn’t have “vi / vim” so I trashed it and went elsewhere…

If I can’t get past being able to install vim, that’s a showstopper for me and I won’t proceed with Gentoo either…

Note - there are dependancies listed - but THEY’RE all for media codecs and audio alsa et cetera, which at this stage, I don’t NEED nor do I even give a f–k about :

-- snip snip --
Total: 10 packages (10 new), Size of downloads: 28,532 KiB

 * Error: circular dependencies:

(media-libs/libsndfile-1.2.0:0/0::gentoo, ebuild scheduled for merge) depends on
 (media-sound/mpg123-1.31.3:0/0::gentoo, ebuild scheduled for merge) (buildtime_slot_op)
  (media-sound/pulseaudio-16.1:0/0::gentoo, ebuild scheduled for merge) (buildtime)
   (media-libs/libpulse-16.1-r2:0/0::gentoo, ebuild scheduled for merge) (buildtime)
    (media-libs/libsndfile-1.2.0:0/0::gentoo, ebuild scheduled for merge) (buildtime)

It might be possible to break this cycle
by applying any of the following changes:
- media-libs/libsndfile-1.2.0 (Change USE: +minimal)
- media-sound/mpg123-1.31.3 (Change USE: -pulseaudio)
-- snip snip -- 

Why should it care about those when I install vim? Admittedly - I will probably WANT those when I go to install on actual hardware (a laptop) - but not right now - I JUST WANT VI / VIM so I can stop using nano!
It’s probably this line (i.e. and I can probably ignore the stuff about audio):
[nomerge ] app-editors/vim-9.0.1503::gentoo USE="X acl crypt gpm nls sound -cscope -debug -lua -minimal -perl -python -racket -ruby (-selinux) -tcl -terminal -vim-pager" LUA_SINGLE_TARGET="lua5-1 -lua5-3 -lua5-4 -luajit" PYTHON_SINGLE_TARGET="python3_11 -python3_10"
in the output - so it seems maybe I need to install Python BEFORE I can install vim ??? WTF? Or LUA?
None of the python entries in the mask file seem relevant to my situation :

gentoo-mungrel00 ~ # grep -i python /var/db/repos/gentoo/profiles/package.mask
# Renamed to dev-python/pypdf.  No revdeps left.
dev-python/PyPDF2
# Requires dev-python/nose.  Last activity in 2013.  No reverse
dev-python/doctest-ignore-unicode
# Obsoleted by dev-python/pyspnego.  No revdeps left.
dev-python/ntlm-auth
# Unmaintained.  Last commit in 2020.  Does not work with Python 3.12.
dev-python/http-parser
# Replaced by dev-python/pyproject-hooks.  No revdeps left.
dev-python/pep517
# and layman, use app-crypt/gpgme[python] as a proper upstream
dev-python/pyGPG
# Alternatives include built-in tomllib module (Python 3.11+),
# dev-python/tomli along with dev-python/tomli-w, dev-python/tomlkit.
dev-python/toml
# ported to Python 3.11.  They are hard to keep working, and there
dev-python/pynest2d
dev-python/uranium
# Breaks dev-python/scipy build. See bug #905396 and https://github.com/serge-sans-paille/gast/issues/74.
=dev-python/pythran-0.13.0
=dev-python/gast-0.5.4
>=dev-python/cython-3
# This old Kodi version requires vulnerable dev-python/pillow

Help me Obi-Wan! I’m sure @nevj was able to get vim installed…

FUDGEBAR!

I just read a whole Gentoo forum post, seems at build, later versions of vim NEED sound support!

WTF? I have to build in sound libraries to get vim compiled?

I saw something about setting “USE=”-sound" - but I wouldn’t have a clue where to plonk that. Which file? Where?

In the “ebuild” files in :

/var/db/repos/gentoo/app-editors/vim

BTW - I’m not shy of doing some hard yakka now and then, in 2020, I spent over 48 hours (cumulative) trying to get POVRay (v3) raytracer compiled on Solaris 10 (sparc on a dual CPU Sunblade 2500), had to give in, in the end… Disappointing… My first UNIX experience with raytracing, was building the POVRay (v1) binaries from source on a DG-UX system (1992)…

Not ready to admit defeat just yet… If I can just get vim, I’ll be happy! I don’t want to use, or learn, nano… it’s incredibly cumbersome when I use muscle memory to move the cursor, and end up with “j” and “k” all through a text file! And searching for strings? I figured that out - but in nano it STOPS at the first occurrence (in vi, I’d just hit “n” to find the next occurrence)…

Note : I still call it vi, and run “vi” (hardly ever have to alias vi=vim - even though I know deep down, “vi” is either an alias to vim, or a symlink).