Discussion:
Source only vs Gentoo
(too old to reply)
Phillip Frabott
2024-11-08 18:32:47 UTC
Permalink
So I'm considering a move from my own source-built install of Linux to
something else. Trying to install new versions of KDE have become a
problem and I'm not interested in going the LFS route. I've started to
consider other distros. I looked at Arch/Manjaro which I thought were
close to what I wanted but I didn't like the fact that most things are
still binary. As a source-only type of guy I was hoping to find
something that was more source-only based. A friend recommended I use
Gentoo. I took a quick look at the web site but I wanted to get a few
thoughts from others.

My basic requirements are as follows.

1: Needs to be fully source built. No pre-built binaries or shortcuts.
This includes during initial installation as well. (I'm sure a few core
pre-builts are required for the install disc/USB flash to work. I'll
accept that if I have to, but install to /dev/sda should be built from
source)

2: Needs to be fully configurable. If I want to remove /usr I should be
able to do so (I won't do that but this expresses the amount of config
freedom I want out of it).

3: Needs to support manual building from source without a package
manager should I need to. (I don't mind if the main system uses a
package manager to build from source but I want to be able to have the
option not to use a package manager once the system is up, something
that is hard to do with Arch/Manjaro)

4: I want to be able to use Systemd. I know Gentoo uses OpenRC but I've
heard I can use Systemd instead.

5: I need to be able to use GRUB as a bootloader.

6: I need to still dual-boot Windows 11. I work from home and
unfortunately I need to have access to Windows 11 on the same machine.
Since GRUB would be required, I assume this is a non-issue but I'm
putting it on the list anyways.

Based on all that, would you all recommend Gentoo as a viable option for
my requirements? If not, what would be other options you'd recommend
that fit all these requirements?

[ Please note, I'm not going to discuss alternatives to GRUB, KDE, and
Systemd. I'm sure everyone has their own opinions about these but I'm
just not interested in switching to anything else. ]

Thank you all for your time,
--
Phillip Frabott
----------
- Adam: Is a void really a void if it returns?
- Jack: No, it's just nullspace at that point.
----------
J.O. Aho
2024-11-08 23:34:41 UTC
Permalink
Post by Phillip Frabott
So I'm considering a move from my own source-built install of Linux to
something else. Trying to install new versions of KDE have become a
problem and I'm not interested in going the LFS route. I've started to
consider other distros. I looked at Arch/Manjaro which I thought were
close to what I wanted but I didn't like the fact that most things are
still binary. As a source-only type of guy I was hoping to find
something that was more source-only based. A friend recommended I use
Gentoo. I took a quick look at the web site but I wanted to get a few
thoughts from others.
My basic requirements are as follows.
1: Needs to be fully source built. No pre-built binaries or shortcuts.
This includes during initial installation as well. (I'm sure a few core
pre-builts are required for the install disc/USB flash to work. I'll
accept that if I have to, but install to /dev/sda should be built from
source)
Most people install stage 3, this has the core prebuilt, you are free to
explore stage 1 or stage 2 installation, not as well documented.
Post by Phillip Frabott
2: Needs to be fully configurable. If I want to remove /usr I should be
able to do so (I won't do that but this expresses the amount of config
freedom I want out of it).
As long as you don't use systemd you should have full control of your
setup, for sure some stuff may need you to patch builds yourself if you
stray too far from the "default".
Post by Phillip Frabott
3: Needs to support manual building from source without a package
manager should I need to. (I don't mind if the main system uses a
package manager to build from source but I want to be able to have the
option not to use a package manager once the system is up, something
that is hard to do with Arch/Manjaro)
All distros supports building, just no distro's package manager will be
aware of your manual built stuff

The ebuild is the instruction how to build, so if you know what to do on
the command line, then it will not be too difficult to write a simple
ebuild for it and then things are taken care of. You will have saved
time already if you compile something more than once.

Keep in mind that Gentoo has USE flags, which enables/disables features
in a package, so you shouldn't build your own version of libpng
manually, but adjust the USE flags to get one that fits you. Otherwise
when you emerge a package that depends on libpng, it will build a libpng
based on the defaults and that application you wanted will use the
gentoo libpng and not the one you built.
Post by Phillip Frabott
4: I want to be able to use Systemd. I know Gentoo uses OpenRC but I've
heard I can use Systemd instead.
Yes, Gentoo allows you to use systemd instead of OpenRC, but that comes
with it's limitations.
Post by Phillip Frabott
5: I need to be able to use GRUB as a bootloader.
Gentoo uses GRUB2, it dropped support for GRUB quite many years ago.
Post by Phillip Frabott
6: I need to still dual-boot Windows 11. I work from home and
unfortunately I need to have access to Windows 11 on the same machine.
Since GRUB would be required, I assume this is a non-issue but I'm
putting it on the list anyways.
lilo works too for dual boot... but default for amd64 installs is GRUB2.
--
//Aho
Lawrence D'Oliveiro
2024-11-08 23:53:01 UTC
Permalink
Post by J.O. Aho
Yes, Gentoo allows you to use systemd instead of OpenRC, but that comes
with it's limitations.
Such as? Gentoo’s own wiki
<https://wiki.gentoo.org/wiki/Comparison_of_init_systems> doesn’t show
any red squares or other caveats for either OpenRC or systemd.
Phillip Frabott
2024-11-09 00:05:03 UTC
Permalink
Post by J.O. Aho
Post by Phillip Frabott
So I'm considering a move from my own source-built install of Linux to
something else. Trying to install new versions of KDE have become a
problem and I'm not interested in going the LFS route. I've started to
consider other distros. I looked at Arch/Manjaro which I thought were
close to what I wanted but I didn't like the fact that most things are
still binary. As a source-only type of guy I was hoping to find
something that was more source-only based. A friend recommended I use
Gentoo. I took a quick look at the web site but I wanted to get a few
thoughts from others.
My basic requirements are as follows.
1: Needs to be fully source built. No pre-built binaries or shortcuts.
This includes during initial installation as well. (I'm sure a few
core pre-builts are required for the install disc/USB flash to work.
I'll accept that if I have to, but install to /dev/sda should be built
from source)
Most people install stage 3, this has the core prebuilt, you are free to
explore stage 1 or stage 2 installation, not as well documented.
Post by Phillip Frabott
2: Needs to be fully configurable. If I want to remove /usr I should
be able to do so (I won't do that but this expresses the amount of
config freedom I want out of it).
As long as you don't use systemd you should have full control of your
setup, for sure some stuff may need you to patch builds yourself if you
stray too far from the "default".
Post by Phillip Frabott
3: Needs to support manual building from source without a package
manager should I need to. (I don't mind if the main system uses a
package manager to build from source but I want to be able to have the
option not to use a package manager once the system is up, something
that is hard to do with Arch/Manjaro)
All distros supports building, just no distro's package manager will be
aware of your manual built stuff
I had some trouble getting it to work. Likely because (in the case of
Arch/Manjaro) they have their own specific directories they put things
in that was outside what I'm used to. Plus their package manager breaks
things every time you run an update since it doesn't keep older versions
it seems. Looking at the Gentoo documents it seems it keeps old
versions, requiring you to run a command to remove them. This is likely
the thing I am looking for.
Post by J.O. Aho
The ebuild is the instruction how to build, so if you know what to do on
the command line, then it will not be too difficult to write a simple
ebuild for it and then things are taken care of. You will have saved
time already if you compile something more than once.
Keep in mind that Gentoo has USE flags, which enables/disables features
in a package, so you shouldn't build your own version of libpng
manually, but adjust the USE flags to get one that fits you. Otherwise
when you emerge a package that depends on libpng, it will build a libpng
based on the defaults and that application you wanted will use the
gentoo libpng and not the one you built.
Makes sense. I'll look into the ebuild thing and writing whatever script
it needs. That might make things easier as well.
Post by J.O. Aho
Post by Phillip Frabott
4: I want to be able to use Systemd. I know Gentoo uses OpenRC but
I've heard I can use Systemd instead.
Yes, Gentoo allows you to use systemd instead of OpenRC, but that comes
with it's limitations.
Post by Phillip Frabott
5: I need to be able to use GRUB as a bootloader.
Gentoo uses GRUB2, it dropped support for GRUB quite many years ago.
Sorry, I meant GRUB2.
Post by J.O. Aho
Post by Phillip Frabott
6: I need to still dual-boot Windows 11. I work from home and
unfortunately I need to have access to Windows 11 on the same machine.
Since GRUB would be required, I assume this is a non-issue but I'm
putting it on the list anyways.
lilo works too for dual boot... but default for amd64 installs is GRUB2.
Thanks for your responses. I'm going to install Gentoo on a VM to test
out before I consider it for replacing my existing setup. Really
appreciate your time.
--
Phillip Frabott
----------
- Adam: Is a void really a void if it returns?
- Jack: No, it's just nullspace at that point.
----------
Grant Taylor
2024-11-11 00:17:34 UTC
Permalink
Post by Phillip Frabott
Makes sense. I'll look into the ebuild thing and writing whatever script
it needs. That might make things easier as well.
I would recommend that you read / familiarize yourself with creating
your own repo that can be used beside the Gentoo repo.

That way you can integrate your own packages into the Gentoo emerge
ecosystem via your own repo.

You can also copy ebuilds for versions of things that you want from the
Gentoo repo to your repo as oldest things do eventually get cleaned up
out of the Gentoo repo. But if you have a copy of the desired ebuild in
your own repo, you'll always have it.
--
Grant. . . .
Phillip Frabott
2024-11-12 21:34:57 UTC
Permalink
Post by Grant Taylor
Post by Phillip Frabott
Makes sense. I'll look into the ebuild thing and writing whatever
script it needs. That might make things easier as well.
I would recommend that you read / familiarize yourself with creating
your own repo that can be used beside the Gentoo repo.
That way you can integrate your own packages into the Gentoo emerge
ecosystem via your own repo.
You can also copy ebuilds for versions of things that you want from the
Gentoo repo to your repo as oldest things do eventually get cleaned up
out of the Gentoo repo.  But if you have a copy of the desired ebuild in
your own repo, you'll always have it.
I just finished getting a base system up and running with X-KDE going on
it. Not much else yet though. I'm still working through how the systems
of Gentoo work and what world profiles are. While documented well, the
world profile system isn't explained very well. It says what it does,
but not how or why. My best guess is it just sets a bunch of different
USE statements for each package one by one but that's just my guess.
I'll have to look into the files myself to understand what exactly the
@world does. However, the functionality of the system and how it builds
is pretty neat. I will look more into the ebuild system soon. It is
likely I'll still be manually building things for a little while (old
habits die hard) but as I get more time with it, I'll eventually figure
everything out and likely will try to integrate source code with the
ebuild system. I'm sure it's not too hard to do. It'll be interesting to
figure it out with SMAUG or ROM mud servers. Not sure if it can be, but
it'll be a good project to try once I figure everything out.
--
Phillip Frabott
----------
- Adam: Is a void really a void if it returns?
- Jack: No, it's just nullspace at that point.
----------
Tom
2024-11-15 08:42:53 UTC
Permalink
Hello Phillip,

Gentoo would likely be a suitable option for your requirements. It is
fully source-based and highly configurable, allowing for custom builds
and modifications. You can choose to use Systemd instead of OpenRC, and
GRUB can be used as the bootloader. Gentoo also supports dual-booting
with Windows 11. Given your emphasis on source-only builds and manual
building flexibility, Gentoo aligns well with your preferences.

Regards,

Tom
Post by Phillip Frabott
So I'm considering a move from my own source-built install of Linux to
something else. Trying to install new versions of KDE have become a
problem and I'm not interested in going the LFS route. I've started to
consider other distros. I looked at Arch/Manjaro which I thought were
close to what I wanted but I didn't like the fact that most things are
still binary. As a source-only type of guy I was hoping to find
something that was more source-only based. A friend recommended I use
Gentoo. I took a quick look at the web site but I wanted to get a few
thoughts from others.
My basic requirements are as follows.
1: Needs to be fully source built. No pre-built binaries or shortcuts.
This includes during initial installation as well. (I'm sure a few
core pre-builts are required for the install disc/USB flash to work.
I'll accept that if I have to, but install to /dev/sda should be built
from source)
2: Needs to be fully configurable. If I want to remove /usr I should
be able to do so (I won't do that but this expresses the amount of
config freedom I want out of it).
3: Needs to support manual building from source without a package
manager should I need to. (I don't mind if the main system uses a
package manager to build from source but I want to be able to have the
option not to use a package manager once the system is up, something
that is hard to do with Arch/Manjaro)
4: I want to be able to use Systemd. I know Gentoo uses OpenRC but
I've heard I can use Systemd instead.
5: I need to be able to use GRUB as a bootloader.
6: I need to still dual-boot Windows 11. I work from home and
unfortunately I need to have access to Windows 11 on the same machine.
Since GRUB would be required, I assume this is a non-issue but I'm
putting it on the list anyways.
Based on all that, would you all recommend Gentoo as a viable option
for my requirements? If not, what would be other options you'd
recommend that fit all these requirements?
[ Please note, I'm not going to discuss alternatives to GRUB, KDE, and
Systemd. I'm sure everyone has their own opinions about these but I'm
just not interested in switching to anything else. ]
Thank you all for your time,
Tom
2024-11-15 09:02:17 UTC
Permalink
Hello Phillip,

Gentoo would likely be a suitable option for your requirements. It is
fully source-based and highly configurable, allowing for custom builds
and modifications. You can choose to use Systemd instead of OpenRC, and
GRUB can be used as the bootloader. Gentoo also supports dual-booting
with Windows 11. Given your emphasis on source-only builds and manual
building flexibility, Gentoo aligns well with your preferences.

Regards,

Tom
Post by Phillip Frabott
So I'm considering a move from my own source-built install of Linux to
something else. Trying to install new versions of KDE have become a
problem and I'm not interested in going the LFS route. I've started to
consider other distros. I looked at Arch/Manjaro which I thought were
close to what I wanted but I didn't like the fact that most things are
still binary. As a source-only type of guy I was hoping to find
something that was more source-only based. A friend recommended I use
Gentoo. I took a quick look at the web site but I wanted to get a few
thoughts from others.
My basic requirements are as follows.
1: Needs to be fully source built. No pre-built binaries or shortcuts.
This includes during initial installation as well. (I'm sure a few core
pre-builts are required for the install disc/USB flash to work. I'll
accept that if I have to, but install to /dev/sda should be built from
source)
2: Needs to be fully configurable. If I want to remove /usr I should be
able to do so (I won't do that but this expresses the amount of config
freedom I want out of it).
3: Needs to support manual building from source without a package
manager should I need to. (I don't mind if the main system uses a
package manager to build from source but I want to be able to have the
option not to use a package manager once the system is up, something
that is hard to do with Arch/Manjaro)
4: I want to be able to use Systemd. I know Gentoo uses OpenRC but I've
heard I can use Systemd instead.
5: I need to be able to use GRUB as a bootloader.
6: I need to still dual-boot Windows 11. I work from home and
unfortunately I need to have access to Windows 11 on the same machine.
Since GRUB would be required, I assume this is a non-issue but I'm
putting it on the list anyways.
Based on all that, would you all recommend Gentoo as a viable option for
my requirements? If not, what would be other options you'd recommend
that fit all these requirements?
[ Please note, I'm not going to discuss alternatives to GRUB, KDE, and
Systemd. I'm sure everyone has their own opinions about these but I'm
just not interested in switching to anything else. ]
Thank you all for your time,
Sophie Hamilton
2024-12-16 17:51:58 UTC
Permalink
Hi there,

As a Gentoo user myself, I believe I can answer your questions.

On Fri, 8 Nov 2024 13:32:47 -0500
Post by Phillip Frabott
1: Needs to be fully source built. No pre-built binaries or
shortcuts. This includes during initial installation as well. (I'm
sure a few core pre-builts are required for the install disc/USB
flash to work. I'll accept that if I have to, but install to /dev/sda
should be built from source)
Gentoo installations are started using what's called a "stage3
tarball", which is a set of prebuilt packages corresponding to, I
believe, the system profile set (including some you might consider
optional, such as nano). After Gentoo is installed, of course, you can
recompile all of these yourself, but to start with, the supported
install procedure requires these prebuilt packages.

It's called a "stage3" because it's technically stage 3 of a
multi-stage process of creating base files for the installation of a
new Gentoo system - you can see the details at
<https://wiki.gentoo.org/wiki/Stage_file>. It's technically possible to
start from stage 1 (ie. compiling the system set yourself), but this is
both unsupported by Gentoo and also requires an existing Gentoo system
in order to do so. There are instructions at
<https://wiki.gentoo.org/wiki/Catalyst/Stage_Creation> but be aware
that this information is intended for Gentoo developers, and as such
assumes knowledge of the inner workings of Gentoo and is somewhat
sparse.

As you note, however, even with a stage1 file you're always going to
have to have *some* binaries to start with, compilers included. In
addition, as stated, it should be noted that it's always possible to
recompile the whole system after installation, which includes
automatically downloading the original upstream tarballs.
Post by Phillip Frabott
2: Needs to be fully configurable. If I want to remove /usr I should
be able to do so (I won't do that but this expresses the amount of
config freedom I want out of it).
You won't be able to remove /usr with Gentoo. The Package Manager
Specification
(<https://wiki.gentoo.org/wiki/Package_Manager_Specification>) defines
the installation offset as ${EPREFIX}/usr , where $EPREFIX is
essentially the place where Gentoo is being installed. (It's only
intended to allow you to install Gentoo on other OSes - see
<https://wiki.gentoo.org/wiki/Project:Prefix>, so won't be useful in
your case.)

It should be noted that this will be true of *any* widely-supported
package manager on Linux. This is because /usr is a major part of the
Filesystem Hierarchy Standard
(<https://refspecs.linuxfoundation.org/fhs.shtml>), which defines what
the hierarchy is and how each directory within it is to be used.
Removing /usr on a Linux system would be akin to renaming C:\Windows on
a Windows system - while probably technically possible if you tinker
enough, it won't be a good idea without the resources to make sure you
can maintain it.

Of course, it *is* technically possible. Android devices (which runs on
a Linux kernel) don't have a /usr. In fact, the closest equivalent to a
FHS root directory on an Android device would be the /system directory
(and it should be noted that this *does* have directories like bin/,
etc/, lib/, and usr/), but even so it's very different. This does,
however, come at a cost: Google have to maintain this directory
structure themselves, including making sure that all packages on the
system work with it - not an easy task!
Post by Phillip Frabott
3: Needs to support manual building from source without a package
manager should I need to. (I don't mind if the main system uses a
package manager to build from source but I want to be able to have
the option not to use a package manager once the system is up,
something that is hard to do with Arch/Manjaro)
Gentoo does indeed have its own package manager called Portage
(<https://wiki.gentoo.org/wiki/Portage>). It's technically not required
in order to use Gentoo, but if you don't use Portage, you're expected
to use another package manager that conforms to the Package Manager
Specification (linked in the previous answer). As of right now, the
only alternative supported package manager to do this is pkgcore
(<https://wiki.gentoo.org/wiki/Pkgcore>), I believe.

That said, even when using Portage, you are able to see the ebuild
files used to compile packages (similar in concept to Arch's PKGBUILD
files) and even create your own repositories (or "overlays") that you
can use to compile your own packages
(<https://wiki.gentoo.org/wiki/Basic_guide_to_write_Gentoo_Ebuilds>).

However, it sounds like even this might be too much for your needs?
Post by Phillip Frabott
4: I want to be able to use Systemd. I know Gentoo uses OpenRC but
I've heard I can use Systemd instead.
Yes, you can use systemd with Gentoo, and the installation guide
(<https://wiki.gentoo.org/wiki/Handbook:AMD64/Full/Installation>,
assuming you're installing on an amd64 architecture) takes you through
the steps needed to use and configure it, which involves using a
different stage3 file and selecting a systemd profile.
Post by Phillip Frabott
5: I need to be able to use GRUB as a bootloader.
This is possible and covered in the installation guide.
Post by Phillip Frabott
6: I need to still dual-boot Windows 11. I work from home and
unfortunately I need to have access to Windows 11 on the same
machine. Since GRUB would be required, I assume this is a non-issue
but I'm putting it on the list anyways.
I've never tried to dual-boot Windows 11 with Gentoo myself. I believe
it should be possible, though you may have some woes with setting it up
if you need Secure Boot, due to Gentoo's nature as a self-compiled OS.
(Of course, this would also be true of other self-compiled OSes, such
as Linux From Scratch.)
Post by Phillip Frabott
Based on all that, would you all recommend Gentoo as a viable option
for my requirements? If not, what would be other options you'd
recommend that fit all these requirements?
Given your needs, I'd probably say that as highly customisable as
Gentoo is (and it really is *very* customisable), it probably doesn't
meet your needs. I actually doubt that anything other than Linux From
Scratch is going to meet your needs, but Gentoo certainly comes the
closest.

Linux From Scratch (<https://www.linuxfromscratch.org/>) is likely the
experience you're looking for, but be warned as it's a lot to get
through, being mostly intended for educational purposes rather than as
a viable operating system (although people have managed to make it
such). You may also have problems if you require Secure Boot, though
I'm not well-versed in this myself.

In general, every package manager out there is going to assume certain
things about your system (such as the presence of /usr and its layout,
as stated previously). If you were to want to not have a /usr, you're
almost certainly going to have to roll your own package manager. (Or
just not have one at all, but treading that path will cause you to very
quickly learn why even the most basic package managers exist -
dependency hell is not fun!)

Hopefully this answers the questions you had! Good luck on finding an
appropriate distribution for your needs.

- Sophie.

Loading...