It is January of
2019 Lets see how easy it has become to install Linux on a PC. Does
it still require complicated hands on hacking to get it up and
running? Well it depends on a flavor you choose, but most of the
mainstream distributions wont need more than few clicks and couple of
text boxes to fill. I could say that it takes even less of an effort
than the first boot of an sysprepped stock windows 10 next, next,
next, no, no no, no… setup. So lets see how easy it really is.
To begin with we
need an installation media from which we can install the
distribution. My go-to flavor for desktop/graphical environment is
Fedora (specifically
KDE spin) and for servers CentOS
. I have used other distributions like Debian, Ubuntu, SUSE Linux
Enterprise Server, Oracle Linux and Red Hat Enterprise Linux, but
Oracle, SUSE and Red Hat are subscription based services so are less
used on services that do not require to be certified on specific
distribution. With Debian/Ubuntu… I can use them, but have never
mastered the software packaging so I don’t use them much…
So today’s
subject is installing basic CentOS machine called bazaar (well I have
installed it and it is installed on physical hardware so to get the
screenshots I’m just creating an virtual machine under KVM). This
will become headless “server” for RPM cache to begin with and
possibly acquire some more roles in the future.
So why do I need an
rpm cache? Well – I have 4 Fedora machines, 3 CentOS machines and
about 40 CentOS VM (no they are not online 24/7 – I boot them
up/patch them as needed) for different projects and to play with. I
patch them regularly and well my internet connection is not great
(12Mbit down/1Mbit up) so when I have to upgrade Fedora 28 to Fedora
29 (which means downloading about 1..2GB of rpm-s for 4 times…
taking an hour or two each time… well I’m tiered of waiting). I’m
planning to do this upgrade in a week or two so I need an rpm caching
server. This is not an issue with Fedora only – CentOS also
releases major updates that may be as bit as 1GB (depends on how many
packages are installed) and doing it 40 times… well… it takes a
lot of time just to download everything again and again.
So how powerful the
hardware needs to be? The answer is – I don’t know yet. I had an
ASUS Eee Box EB1012P lying around with 4GB RAM, 250GB 2.5’’ WD
SATA drive and a gigabit LAN adapter. The CPU is not fast, RAM is
not fast, HDD is not fast, but it has 2 core 4 thread 13W TDP CPU. So
average power consumption is low - it should stay around 5..20W so it
is perfect for 24/7 operation. Yes an SoC like an Raspberry Pi would
be more power efficient but I have had bad experience with SD cards
dying on heavy IO and I don’t currently have a plan to start making
backups of the rpm cache so Eee it is...
To start with I
downloaded an CentOS 7 IOS and transferred it to an USB stick. Boot
the machine and pressing F8 select the removable media as a boot
device. The screen should look like this:
If the Install
option is not highlighted then just press the up arrow on the
keyboard an select it and press enter. The screen should look similar
to this:
It should boot and
ask for an language selection:
I like the language
to stay English so it is easier to search for problems when they
occur but it is up to the administrator to use the language they
want. When done click continue and you should be arriving at a screen
like this:
I’m hoping, that
setting the timezone and keyboard layout is self explanatory so I
wont go into that. Also leaving software installation source as local
media is recommended (there is possibility to add external
repositories, but relying on experience, it is easier to add them
after the installation has completed). Since it will become headless
“server” minimal install is sufficient.
On a production
server I would leave kdump enabled as it will create kernel dumps
that can help debug hardware issues, but when creating VM’s for
testing I usually disable it as VM’s dont have direct hardware
connected to them. I also like to disable the security policy as the
policies are not included with CentOS and are available only on
official Red Hat Enterprise Linux. This does not mean that CentOS is
less secure than RHEL – it just means it is not certified under the
example policies. Under network configuration… well it should be
self explanatory… I’ll use dhcp in this example, but servers
should be configured with static IP.
The hing that needs
a little attention is the installation destination:
This VM has a 20GB
virtual disk attached to it and since it has no partitions on it it
is automatically selected and it should be good enough for basic
installation (it is easier to make changes afterwards to change
partitioning as it uses LVM by default than try to make a custom
partitioning beforehand). So all that is left is click done and then
“Begin Installation”. We are on the final stretch…
This should be the
screen we are on now. Setting root password is like setting local
administrator password in windows. The user root is the superuser
that can do anything in the machine so its password should be strong.
The user creation tab is optional but recommended as root user should
be used only on an emergency's and not for day to day operation.
This screen is
similar to setting the root user password with exception of adding
username to it AND “Make this user administrator” option.
Checking this box grants this use an option to run commands as a root
without knowing the root password using "sudo" command. If this is done
all that is left to do is wait for the installation to complete and
reboot the machine when the option appears.
Now, if everything
went well we should be greeted with a boot screen like this:
That means that the
installation was successful and we have a brand new Linux machine
available.
This should be
sufficient for an example on how to install Linux in 2019 and in the
near future we’ll configure it.